Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché 2012.2

この章では、Caché 2012.2 の以下の項目について説明します。

Caché 2012.2 の新機能と強化機能

今回のリリースでは、Caché に次の主な新機能が加わりました。

さらに、このバージョンの Caché では、次の分野の機能が向上しています。

さらに、これ以外にも、さまざまな点で機能強化や改善がなされています。特に既存のインストール環境をアップグレードする場合は、“Caché 2012.2 アップグレードのチェックリスト” で詳細な変更内容を確認してください。

主な新機能

分析での構造化されていないデータの使用

DeepSee での構造化されていないデータのサポート

DeepSee で構造化されていないデータがサポートされるようになりました。DeepSee キューブでは、ディメンションおよびメジャーのソースとしてフリー・テキストを使用できます。iKnow テクノロジを使用して、このテキストが分析され、その分析の結果 (テキストからの "概念") がディメンションのメンバとして使用可能になります。

キューブには、構造化データと構造化されていないデータに基づくディメンションの組み合わせを含めることができます。あらゆる DeepSee キューブと同様に、これらのキューブに対しても、DeepSee アナライザ、ダッシュボード、および MDX クエリによるプログラムを使用して、クエリを実行できます。

条件リスト

DeepSee に、新しい条件リスト機能が追加されました。条件リストとは、検索と変換に使用できる一連のキーと値のペアです。条件リストは、キューブの構築時に使用できるだけでなく、%TERMLIST 関数を使用して MDX でも使用できます。条件リストを定義するために、管理ポータルの DeepSee メニューに条件リスト・マネージャー・オプションが用意されています。

ビジネス・ルール

Ensemble のビジネス・ルールは、キューブの構築時に使用できます。sourceExpression で新しい %Rule メソッドを使用すると、ビジネス・ルールを呼び出すことが可能です。ビジネス・ルールに現在のソース・オブジェクトのインスタンスが渡され、ビジネス・ルールの結果が返されます。

DeepSee ビジュアル・レポーティング

このリリースでは、Caché、Ensemble、および HealthShare の各ユーザが、ドラッグ・アンド・ドロップのブラウザ・インタフェースを使用してレポートをインタラクティブに定義できる新しい機能が導入されました。この DeepSee ビジュアル・レポーティングと呼ばれる新しいテクノロジは、次の 3 つの部分で構成されます。

  • レポートのデータ定義

    DeepSee には、レポートのデータ定義を作成するためのブラウザベースの UI が用意されています。これは、レポートのデータを収集するためのクエリを作成し、データが表示される際のデータの形式を指定することと似ています。定義を作成するユーザは、基本となるソース・データとその相互関係について理解している必要があります。

  • レポートの形式定義

    データの定義を完了したら、データを任意の数の形式で表示できます。それらのレイアウトも、ブラウザベースのインタフェースを使用して定義します。このインタフェースでは、選択した実際のデータを使用して出力をプレビューすることが可能です。

  • レポートの実行

    データ形式および出力形式の定義を完了すると、作成者または作成者とレポートを共有しているユーザは、レポートをいつでも実行できます。

Note:

2012.2 では、DeepSee ビジュアル・レポーティングのレポートのデータ定義およびレポートの形式定義の各コンポーネントを評価用に使用できますが、実環境用にはサポートしていません。これらのコンポーネントは、将来のリリースで完全にサポートされる予定です。

DeepSee ビジュアル・レポーティングを使用して作成されたレポートは、2012.2 で実環境用にサポートされています。

迅速なアプリケーション開発

iKnow の強化

このリリースでは、iKnow API が新しいセマンティック優位性によって拡張されました。このパッケージには、2 つの主な新機能セットが含まれています。

セマンティック優位性

セマンティック優位性とは、特定のテキストのコンテキストにおいて、また、テキスト内のその他の情報に関して、特定の要素 (単語、概念、一連の概念、文など) の重要性を示すために使用される用語です。セマンティック優位性 API によって、アプリケーションでは次の内容を識別できます。

  • 1 つのソース内の意味的に最も優位性の高い要素 (つまり、ドメインまたはドメインのサブセットで最も優位性の高い要素)

  • 異なるテキスト (ドメインで最も一般的なソースと、ドメインで最も例外的なソース) による、優位性の高い要素の共有方法

セマンティック優位性 API の独自性と付加価値は、主に 2 つの要素にあります。まず 1 つ目は、実装されているアルゴリズムが、1 つのソースのコンテキストにのみ基づいて機能し、テキスト要素のベース・ラインの重要性を識別するために参照コーパスを必要としないことです。2 つ目は、アルゴリズムが、異なるテキスト間および異なるテキスト要素間で比較可能な値を生成することです。例えば、1 つの概念のセマンティック優位性の値は、複数の概念および関係で構成される経路のセマンティック優位性の値と比較できます。

セマンティック優位性 API を使用すると、一連のテキストの重要な共通コンテンツを簡単に調べることや、指定された一連のテキストの最も一般的なテキストを調べることができます。また、テキスト内の重要な新情報をすばやく調べることも可能です。

近似

近似 API の新機能によって、選択した参照概念のコンテキスト内にどの概念があるかを簡単に調べることができます。この API 内の関数を使用すると、参照概念に関連付けられている概念や、その関連付けの強さを調べることが可能です。語義的な近似の計算対象となるドメインのコンテンツに基づいて、“ベーカリー” という概念の語義的な近似プロファイルには、“マフィン”、“ベルギー・ワッフル”、“ケーキ”、“パイ”などの概念が含まれ、これらはそれぞれベーカリーとの関連付けの強さを表す異なる値を持つことになります。

HTML5 の既定化

このリリース以降、HTML 5 および CSS 3 をサポートするブラウザに対して、すべての Zen ページの既定 DOCTYPE が HTML 5 になります。また、Caché で HTML 5 対応ブラウザが検出され、出力に CSS 3 構文が含まれる場合にのみ処理される、新しく生成された css ファイルも含まれます。この動作は、%OnDetermineCSSLevel() コールバックを 3 ではなく 2 を返すように変更するか、マネージャ・データベース内のグローバル・ノードを変更することによってオーバーライドできます。この変更に伴って、IE 9 以降のネイティブ SVG レンダラの使用も開始します。

レポートでのアラビア語のレンダリングの向上

このバージョン以降、Caché では Apache FOP を使用した Zen レポートでのアラビア語出力が正式にサポートされます。

正規表現

2012.2 では、ObjectScript のパターン・マッチングに代わる機能豊富な正規表現が導入されました。正規表現を使用することで、複合パターンが存在するかどうかを検出できるだけでなく、完全に一致した場合の場所と結果が得られます。これにより、より少ないコードで文字列のより複雑な操作を行うことが可能になります。使用法の詳細は、 %Regex.MatcherOpens in a new tab のクラス・ドキュメントを参照してください。

Node.js のサポート

このリリースでは、Node.js のサポートが追加されました。 Node.js は、Google Chrome の JavaScript ランタイム上に構築されたプラットフォームです。Web アプリケーションやデータ量の多いアプリケーションを構築するために、イベント駆動型で非ブロック型の入力/出力モデルが使用されます。Node.js と Caché との統合はネイティブであり、Caché グローバルに直接アクセスできます。Node.js の詳細は、nodejs.orgOpens in a new tab を参照してください。

無制限のローカル配列

バージョン 2012.2 の一部として、アプリケーション開発者が実行時にプロセスのメモリ割り当てを動的に変更したり、プロセスの開始時に大規模なメモリ割り当てを定義するための簡単な方法が提供されます。メモリ内の配列を維持することによって、使用可能なシステム・メモリを十分に利用して、複雑で高パフォーマンスの処理を実行することができます。

この機能は 64 ビットのオペレーティング・システム上で最も役立ちますが、32 ビット環境でプロセス・プライベート・メモリを変更することもできます。この機能の使用によってオペレーティング・システムで予期しないパフォーマンス・プロファイル (過度のスワッピングなど) がトリガされないことを確認する必要があります。

.NET eXtreme

このリリースには、グローバル API に対する .NET のサポートが含まれています。これにより、直接グローバル・アクセスと、 .NET からのグローバルの操作が可能になります。また、この API によって、.NET および Caché を、高速データ・アクセスを提供する同じコンピュータ上のプロセス内で実行できるようになります。

TCP 経由での Java eXtreme

このバージョンの Caché では、XEP を TCP 経由で実行できます。XEP は、Caché 用の軽量 Java オブジェクト永続性テクノロジです。当初、XEP は、Java 用のグローバル API 上にのみ構築されていたため、プロセス内で実行されていました。引き続き、グローバル API の概念を多くの点で利用しながらも、TCP を使用できることで、プロセス内での実行はオプションになりました。

オブジェクト・プロバイダおよび .NET ゲートウェイ用の .NET 4.0 コンポーネント

このリリースでは、Caché のオブジェクト・プロバイダおよび .NET ゲートウェイの .NET 4.0 コンパイル・バージョンを提供します。以前のリリースは .NET 4.0 に対応していましたが、このリリースでは、アプリケーションで .NET 4.0 コンポーネントのみを使用するオプションが用意されています。

長い文字列の既定化

2012.2 以降では、アップグレードおよび新しいインストールで、長い文字列が既定でサポートされています。

パフォーマンスとスケーラビリティ

ECP ロールバック

このリリース以降、ECP アプリケーション・サーバ上でプロセスによって発行されたロールバック処理は、データベース・サーバによって非同期的に処理されます。このアプローチによって、他の要求の継続的な並行処理が可能になります。従来、ロールバック処理は同期的に処理されており、データベース・サーバでは、特定の ECP アプリケーション・サーバからの他の要求の処理に進む前に、ロールバック全体が連続的に処理されていました。新しい方法では、長いロールバック処理が特定の ECP アプリケーション・サーバの他のアプリケーション操作に影響を与えないようになります。

AES ハードウェア暗号化の使用 (使用可能な場合)

多くのプロセッサ・ベンダでは、暗号化アルゴリズムをハードウェアで直接サポートするようになりました。このリリース以降、Caché では、AES (Advanced Encryption Standard) の計算でこの機能を利用します (使用可能な場合)。その際、プロセッサの命令セットを使用することによって、パフォーマンスの向上を実現します。

このオプションは、Intel 64 ビット・プロセッサ (Intel® Xeon® Processor X5680 (Westmere) 以降) で最初に使用されることになります。Caché では、このようなシステム上で、ハードウェア命令を直接使用して AES 暗号化を実行します。これに該当するシステムには、Microsoft (x86-64)、Red Hat Enterprise Linux (x86-64)、SuSE Linux Enterprise Server (x86-64) などがあります。

信頼性、可用性、保守性、監視

災害復旧フェイルオーバーおよびフェイルバックの簡素化

以前のリリースでは、Caché のデータベース・ミラーリングによって、災害復旧の目的で非同期ミラー構成が提供されていました。このリリースでは、災害時の (またはテスト目的での) 非同期 DR ミラー・ノードへの切り替え方法を簡素化すると同時に、後でメインのプロダクション・フェイルオーバー・ミラーに戻す方法を簡素化しました。

構成可能な UNIX® インストール

このリリースでは、コマンド行オプションを使用する Windows インストールと同様の方法で、UNIX® インストールを実行できるようになりました。新しい構成パラメータが新しい cinstall_silent インストール・スクリプトで使用可能であり、インスタンス名、インストール・ディレクトリ、およびインストールするパッケージを指定できます。

セキュリティ

公開鍵のインフラストラクチャ

多数の業界での情報セキュリティに関する懸念事項の増加に伴って、X.509 証明書によるドキュメントの暗号化と署名に対するニーズも高まっています。しかし、X.509 鍵および証明書の生成、保護、および配布は、複雑で時間のかかるプロセスです。

このリリースで、インターシステムズのユーザは、サーバを認証機関として機能するように定義することによって、証明書生成プロセスを自動化できます。クライアントは認証機関から証明書を要求するだけでなく、ローカルでの使用目的で証明書を自動的に受け取ることもできます。

Caché 2012.2 アップグレードのチェックリスト

目的

このセクションでは、Caché 2012.2 の機能のうち、今回のバージョンで変更されたために、既存のシステムの管理、運用、または開発の作業に影響を及ぼすものを取り上げます。

前回リリースよりも前のリリースからアプリケーションをアップグレードする場合は、その中間に存在するリリースのアップグレード・チェックリストにも目を通すことを強くお勧めします。このドキュメントでは、2012.1 と 2012.2 の違いのみを取り上げています。

このドキュメントの冒頭に記載したアップグレードの説明は、このバージョンに適用されます。

管理者

このセクションでは、以前のバージョンの Caché の管理作業を熟知しているユーザを対象に、バージョン 2012.2 の管理に関する新機能と変更点を説明します。ここでは、各項目について簡単に説明します。ほとんどの場合は、ドキュメントの別の箇所に詳しい説明があります。

バージョン間の相互運用性

前回リリースとの相互運用性を示すテーブルが、サポート対象プラットフォームのドキュメントに掲載されています。

管理ポータルの変更

今回のリリースでは、新機能に対応し、また、既存マテリアルを使用しやすく構成し直すため、管理ポータルに多数の変更が加えられています。主な変更点の 1 つは、データベース・ミラーリングおよびロールの使い分けに役立つページが追加されたことです。

操作上の変更

ここでは、システムによる処理方法に影響を与える変更について説明します。

拡張メモリ

これまでのリリースでは、Caché プロセスが消費できる拡張メモリのサイズには上限がありました。この上限は、既定では 16 MB で、49 MB まで増やすことができました。

このリリースから、上限が引き上げられます。現在の上限は 2 TB です。ただし、プラットフォームやオペレーティング・システムにより課せられた制限に左右されます。例えば、大半の 32 ビット・システムは、2 GB 以下に制限されます。また、Caché パーティションのサイズが大きければ大きいほど、基盤となるプラットフォームで必要とされるスワップ領域の割り当ても大きくなる可能性があります。

管理者は、以下の変更点に留意してください。

  • bbsiz : このパラメータの名前は変更され、“プロセス・プライベート・メモリ” となりました。

  • インストールの既定値 : 新しいインストールでは、プロセス・プライベート・メモリの値は 256 MB に設定されます。従来のリリースからのアップグレードについては、この値は変更されません。

  • 管理ポータル : プロセス・プライベート・メモリの値は、“プロセスあたりの最大メモリ” の項目で設定されます。

開発者は、そのときに使用可能なプロセス・プライベート・メモリの量とその最大値を判断するために、システム変数 $STORAGE$ZSTORAGE の 2 つを使用できます。プロセスでは、最初、これら両方のシステム変数に、プロセス・プライベート・メモリの設定と同じ値が設定されています。アプリケーション開発者は、既定の割り当てよりも多くのプロセス・プライベート・メモリを必要とするプロセスの実行中、いつでも $ZSTORAGE の値を増やすことができます。さらに、プロセス・プライベート・メモリが消費しつくされると、<STORE> エラーとなり、プロセスが終了しなくなります。ここで、アプリケーション開発者は、このケースの処理方法を選択できます。

  • $ZSTORAGE の値を大きくして、メモリを増やし、処理を続行する。

  • エラー/スタック情報を取得するためにメモリを増やし、プロセスを HALT する。

  • プロセスを HALT する。

Note:

エラー情報を取得するためのインターシステムズのユーティリティは、$ZSTORAGE の値を自動的に増やし、エラーおよびスタック情報の記録を可能にしてから、プロセスを HALT します。

拡張メモリ — プラットフォームの詳細

Windows および OpenVMS システムでは、仮想メモリの構成は制御できません。UNIX® プラットフォームには、このような構成パラメータが 2 種類あります。

  • データ領域 : これは “ulimit –d” コマンドにより制御されます。

  • 仮想メモリ (またはプロセス) 領域 : 値は “unlimit –v” コマンドで設定します。

特定の UNIX® バージョンにおける変更は次のとおりです。

  • HPUX (32 および 64 ビット)、IBM AIX

    これまでのバージョンでは、アプリケーション・データ領域の制御には、“ulimit -d” コマンドが使用されていました。今回のバージョンから、このコマンドには何の効果もなくなりました。制御は、Caché $ZSTORAGE 値で行う必要があります。

  • Linux (Red Hat および SUSE)

    変更ありません。データ領域と仮想メモリ領域は両方とも、オペレーティング・システムにより、“ulimit -v” コマンドを使って制御されます。

  • Mac OS X

    変更ありません。データ領域および仮想メモリ領域とも、コマンドによる制御は受けません。

  • Solaris

    これまでのバージョンでは、データ領域の制御には、“ulimit -d” コマンドが使用されていました。このバージョン以降、アプリケーション・メモリは仮想メモリ空間から取得され、“ulimit -v” コマンドにより制御されます。

コレクション・インデックスの再構築が必要な可能性がある

このバージョン以前は、あるアプリケーションが EXACT 以外の照合 (例えば MVR) を使ったコレクションを使用し、NULL 要素を許可していた場合、このコレクションの SQL INSERT または UPDATE により、インデックスに誤った値が格納されることがありました。これは、collection(ELEMENT) または collection(KEYS) 値にインデックスを持つアプリケーションにも当てはまり、コレクションの値は NULL である可能性もあります。

既存の NULL コレクション値を適切にインデックスするには、このようなインデックスを持つアプリケーションを、このバージョンで再構築する必要があります。

ミラーリング関連の変更
  • ミラーリング .CPF の変更

    ミラー・メンバはすべて、CPF ファイルの [MapMirrors] セクションで構成されるようになります。CPF ファイルの [MirrorAsyncMemberSources] セクションは廃止され、インスタンスを 2012.2 にアップグレードした後は存在するだけになります。非同期メンバが起動され、フェイルオーバー・メンバに接続されると、[MirrorAsyncMemberSources] セクションは、自動的に、[Mirrors] セクションと [MapMirrors] セクションに変換されます。

    CPF ファイルの [MapMirrors] セクションには、すべてのタイプのミラー・メンバ (フェイルオーバーおよび非同期) が含まれます。フェイルオーバーまたは非同期メンバからの接続がまだ [MapMirrors] セクションにない場合、Caché は、[MapMirrors] セクションにメンバを追加します。

    [MirrorMember] セクションの AsyncMemberGUID は、システムが非同期メンバ (NULL 以外の文字列) か、フェイルオーバー・メンバ (NULL 文字列) かを示します。[MirrorMember] セクションの JoinMirror は、ミラーの構成に MapMirrors/Mirrors を使用する非同期メンバでは 1 になります。これまでは、非同期メンバの構成に [MirrorAsyncMemberSources] セクションを使用している場合、非同期メンバの JoinMirror をゼロにする必要がありました。

    これまで、[MirrorAsyncMemberSources] セクションにあった非同期ミラー・メンバのミラー・セットすべてについて、AsyncMemberType は今バージョンから [MirrorMember] セクションの一部となります。値 1 は、これがレポート非同期メンバで、ミラーリング・データベースの読み取り/書き込みを許可することを示します。値 0 は、これが災害復旧非同期メンバで、ミラーリング・データベースはすべて、読み取り専用であることを暗示しています。

  • プライマリ・ミラーの識別の変更

    従来のバージョンでは、##class(%SYSTEM.Mirror).IsPrimary または $SYSTEM.Mirror.IsPrimary() の結果は、システムがアクティブ・プライマリだった場合のみ TRUE でした。このバージョンでは、システムがプライマリ・ミラー・メンバである場合に TRUE になり、シャットダウンされるまで (つまり、トラブル状態に関係なく)、プライマリ・ミラー・メンバのままになります。$SYSTEM.Mirror.GetInfo() に "PRIMARY" と "ACTIVE" の両方が含まれる場合、$SYSTEM.Mirror.IsPrimary() は TRUE を返します。

    Note:

    $SYSTEM.Mirror.GetInfo() に "PRIMARY" は含まれるが、ACTIVE は含まれない (この時点で、FAILOVER または RECOVERY が含まれる) 場合、プライマリの起動中に、小さなウィンドウが表示されます。この間、$SYSTEM.Mirror.GetInfo() は FALSE を返します。

    プライマリが正常に機能しているかどうかを検知するために、あるアプリケーションが $SYSTEM.Mirror.IsPrimary() を使用している場合、新たな状況に合わせて、関係するロジックを書き直す必要があります。

  • 非同期ミラー・メンバはジャーナルの削除間隔を使用できるようになる

    非同期メンバがジャーナリングを完了した直後ではなく、システム・ジャーナルのファイル削除設定 ([システム]→[構成]→[ジャーナル設定]) に基づいて、ジャーナル・ファイルを削除するように、非同期ミラー・メンバを設定できるようになります。つまり、何らかの事情がある場合、システムでジャーナル・ファイルを長時間、保持するように構成できます。

    2012.2 では、.cpf ファイルから [MirrorMember] DaysBeforePurge パラメータが削除されました。このパラメータが 0 以外のときに、2011.1 非同期メンバを 2012.2 にアップグレードすると、アップグレード・プロセスにより、新しい AsyncUseSystemPurgeInterval パラメータの値が 1 に設定されます。つまり、非同期メンバのミラー・ジャーナル・ファイルは、ジャーナル・ファイルの削除に関するシステム設定に従って、削除されます。

    Important:

    システム設定の時間間隔が DaysBeforePurge パラメータの以前の値よりも小さい場合、ミラー・ジャーナル・ファイルは、システム・マネージャが意図していたほど長くは保持されません。

ジャーナル・リストア・ダイアログの変更

以前のリリースでは、ジャーナル・リストアでデータベースのアップデート・エラーがあった場合、ユーザが意図せずにデータベースにアクセスすることを防ぐため、データベースがディスマウントされていました。今回のリリースでは、エラーのデータベースを自動的にはディスマウントせず、代わりにジャーナル・リストアの最後でディスマウントのためのオプションを提供しています。

Some updates of the following database(s) were skipped during journal restore,
due to errors. The database(s) might be in an inconsistent state.
<list of skipped databases>
Do you want to dismount the above database(s) (yes/no)?

ジャーナル・リストアが上記の状況になった場合にのみ、このプロンプトが表示されます。ジャーナルのターゲット・データベースでないものは考慮せずに、必ずスキップされます。このプロンプトには y (実行する) または n (実行しない) で答える必要があり、既定値はありません。

入力や出力に基づいてジャーナル・リストアのスクリプトを作成する場合は、表示される可能性のあるこのプロンプトにスクリプトが対応している必要があります。 ジャーナル・リストア API (Journal.Restore クラス) のユーザは、スキップされるデータベースがディスマウントされるように、ディスマウントのプロパティを具体的に設定できます。このプロパティの既定値は No です。

FileStream を削除するときに削除される一時ファイル

このバージョンでは %IO.FileStreamOpens in a new tab クラスの動作が変更され、このクラスを一時ファイル・インスタンスの作成に使用した場合、ファイル・オブジェクト・インスタンスが強制終了されるか、範囲を逸脱すると、対応する一時ディスク・ファイルが削除されます。

また、この変更により、%IO.FileStreamOpens in a new tab クラスに新しいプロパティ IsTemp が導入されます。IsTemp を 0 に設定すると、これまでのリリースの動作がそのまま保持されます。

ブロードキャストのために必要な %Admin_Manage ロール

%System.Process($ZU(94)) の Broadcast メソッドを使用して、ターミナルやプロセスにメッセージをブロードキャストするには、そのアプリケーションに、%Admin_Manage ロールが必要になります。

Caché 制御プロセスはサービス・ユーザ ID でプロセスを生成

ローカル接続を処理する Caché 制御プロセスは、その他すべての Caché プロセスと同様のユーザ/権限コンテキストでジョブ ($ZF(-1)) を生成するようになっています。つまり、Caché サービスに対して宣言されたユーザ ID が使用されます。

Unicode から Caché ロケールへの NULL 文字変換の統一

これまでのリリースでは、Unicode の NULL 文字列から現在の Caché ロケールの相当するものへの変換は、UNIX® システムと Windows システムでは異なっていました。結果として得られる文字列は、UNIX® では 0 文字でしたが、Windows では NULL 文字 1 つでした。このリリースでは、どちらのプラットフォームでも NULL 文字が 1 つ返されます。

認証なしアクセスと 2 要素認証

認証なしアクセスを許可すると同時に、2 要素認証を要求するようにターミナル、またはバインディング・サービスが構成されているとき、UnknownUser に対して、このユーザが携帯電話番号を指定して構成されている場合を除き、2 つ目の要素 (携帯電話に送信されるセキュリティ・トークン) が実行されることはありません。

ヘルス・モニタおよびアプリケーション・モニタの機能はシステム・モニタの下に移動

このリリースでは、ヘルス・モニタとアプリケーション・モニタは、1 つのエンティティであるシステム・モニタの下に統合されます。システム・モニタに含まれるものは以下のとおりです。

  • 管理ポータル・ダッシュボード (これまでは、%SYS ネームスペースで ^%MONAPP により実行されるアプリケーション・モニタ・クラス %Monitor.System.Dashboard として実装されていたもの)

  • %SYS で実行されているその他すべてのアプリケーション・モニタ・クラス

  • ヘルス・モニタ

また、開始時に、^%MONAPP とヘルス・モニタは起動されなくなり、代わりにこれらのアプリケーションを実行するシステム・モニタが起動されます。

システム・モニタは、新しいユーティリティ ^%SYSMONMGR で構成します。%SYS のアプリケーション・モニタ構成 (%MONAPPMGR)、およびヘルス・モニタ (MONHEALTHMGR) も、このシングル・エントリ・ポイントから実行できます。

システム・ヘルス・コンポーネントは、%SYS でのみ実行できます。この要件は、%Monitor.Health.Period.Create()%Monitor.Health.Period.Modify() に影響を与えます。これらはそれぞれ、SYS.Monitor.Health.Period.Create()SYS.Monitor.Health.Period.Modify() に名前が変更されました。

モニタ・ログの名前および形式変更

このリリースで、ヘルス・モニタのログ・ファイル HealthMonitor.log は SystemMonitor.log と名前が変更されます。このログにアクセスするには、[管理ポータル] で [システム]→[システム・ログ] を使用します。

また、HealthMonitor.log でヘルス・モニタ通知の詳細を調べるときの検索性を向上させるため、cconsole.log ファイルと同じ日時形式が使用されます。

新しいインストールでは長い文字列が既定で有効化されている

今回のリリースから、Caché の新しいインストールでは、既定で長い文字列が有効化されています。

構成パラメータ bbsiz に対する新しい最大サイズと既定の値

CPF ファイルの bbsiz パラメータは、最大 2147483648 KB を許可するようになりました。 新しいインストールの既定値は 262144 KB になります。 アップグレードでは、この値は変更されません。

gmheap の新しい既定サイズ

このリリースでは、既定の構成の一部としてロードされる iKnow のスペイン語および英語言語モデルを考慮して、gmheap の既定のサイズが増やされています。このリリースにアップグレードしたときに既存の gmheap の値が既定値を下回る場合、gmheap の値には既定値が設定されます。既定の値を上回る場合は、そのまま変更されません。

.NET ゲートウェイの待ち受け方法の変更

DotNetGatewaySS.exe プロセスは、port、host、logfile の 3 つの引数を取ります。port 引数は必須ですが、他の引数はオプションです。

以前の host の既定値は 0.0.0.0 で、ゲートウェイはすべての TCP/IP アダプタ上で接続を待ち受けます。このバージョン以降、既定値はループバック・ポート、127.0.0.1 になりました。

これは、DotNetGatewaySS.exe が実行されているマシン以外から、TCP/IP ポートへのアクセスを制限するためです。既定のゲートウェイは、管理ポータルと一致するようになりました。ユーザは、必要に応じて、ファイアウォールに追加の構成を行い、他の IP アドレスを待ち受けるようにホストを構成することもできます。

ジャーナル・ファイル整合性チェックで、ファイル時系列の検証が可能に

%SYS.Journal.FileOpens in a new tabCheckIntegrity() に対するクラス・リファレンスのドキュメントは更新され、配列としてメソッドに渡されるジャーナル・ファイル・パスは作成日時順とすることが明記されました。 また、指定されたジャーナル・ファイルのヘッダをチェックするように、このメソッドも更新されました。ジャーナル・ファイルの指定順序が正しくないことがわかると、値 0 が 1 つ返され、配列の先頭ノードは、違反している要素の数値インデックスに設定されます。

ロケール JPUW の既定を EUC から UTF8 に変更

このリリース以降、ロケール jpuw (日本語/Unix) で実行され、変換テーブルの指定なしに (つまり、ロケールの既定に依存して) ファイルやプリンタを開くアプリケーションは、異なる結果を示すようになります。以前のリリースからの結果を生成するには、アプリケーションは目的のロケールを明示的に設定する必要があります。

チェコのロケールに対して行われた変更

チェコのロケール (csw8csy8、および csyw) では、通貨、曜日、および月名に対してローカライズされた文字列が適切に設定されるようになりました。また、これらは、日付形式 (例 : 23.03.2012) および数値形式 (1 234 567,89) も適切に設定されています。

ジャーナル・リストアの質問順序の変更

フェイルオーバー・ミラー・メンバで ^JRNRESTO を実行すると、ミラーリングされたデータベースとされていないデータベースのどちらをユーザはリストアしたいのかに関する新しい質問がトリガされます。ミラーリングされたデータベースのリストアはキャッチアップにより処理されます。また、ミラーリングされていないデータベースのリストアでは、引き続き、既存の ^JRNRESTO インタフェースが使用されます。このリリースでは、ミラーリングされたデータベースをリストアするためのメニュー・オプションが ^JOURNAL に追加されます。

ジャーナルのリストア・プロセスをスクリプト化している顧客は、フェイルオーバー・ミラー・メンバで ^JRNRESTO/^JOURNAL を実行するときに、この変更を考慮する必要があります。

CACHE データベースは常に読み取り/書き込みである

CACHE データベースは、CACHESYS データベースのように扱われるようになります。^DATABASE、管理ポータル、または SYS.Database オブジェクトを使用して、読み取り/書き込みから読み取り専用に変更しようとしても無視されます。データベースは、常に読み取り/書き込みモードのままです。

ネームスペースのリスト作成でのデリミタ変更

このリリースのフィールド・テスト・バージョンで、メソッド ##class(%SYS.Namespace).ListAll(.x) は、2 つのアットマーク文字 “@” に囲まれたシステム名を使用した暗黙のネームスペース文字列を返していました。一般リリースでは、このデリミタは “^” 文字になります。

パッケージ・マッピングによるルーチン・マッピングのオーバーライド

ルーチン名にピリオド (.) を使用していて、同時にそのピリオドの前にある名前がパッケージ・マッピングで使用している名前と同じ場合、パッケージ・マッピングによってルーチンがオーバーライドされ、そのルーチンは表示されなくなります。ルーチン名は、パッケージ・マッピングで使用しているパッケージ名と競合しないようにする必要があります。

プラットフォーム固有の項目

このセクションでは、特定のプラットフォームに関係する項目について説明します。

Windows
  • アップグレードでデータベースの更新が失敗しても、ロールバックしない

    DatabaseUpdate アクションの実行でエラーが発生した場合、アップグレード中に、Windows インストール・アクティビティにより、ロールバックが開始されることはありません。DatabaseUpdate 中にエラーが発生した場合、エラー・メッセージが表示され、更新は最後のダイアログに進みます。

    この変更により、新しいインストールが影響を受けることはありません。DatabaseUpdate アクションにエラーがあった場合でも、これはロールバックされます。

  • 2 つ目のイーサネット・アドレスは使用できない

    Windows では、基礎となるサポートが得られないため、このリリースでは、Windows のクラス $SYSTEM.INetInfo から EthernetAddress(2) が削除されます。

  • Windows 開始時のタイムアウトの削除

    これまで、Windows でインスタンスを再起動するとき、Caché は、Windows が実行に必要な共有メモリ・セグメントを作成するまで、最大 180 秒間、待機していました。要求されたセグメントが 5 GB を超え、メモリが断片化されていた場合、この上限を超過し、インスタンスが起動できませんでした。このリリースでは、時間制限はすべて削除されます。

  • RoseLink ファイルは今後、インストールされない

    このリリースでは、Caché は RoseLink 関連ファイルのインストールおよび登録を行いません。

Windows および UNIX® / Linux
  • コールインのリンク

    今回のリリースから、一部の Caché カーネル・コンポーネントは C++ で実装されます。したがって、Caché 静的ライブラリ/オブジェクト (cache.o) とリンクしているコールイン・モジュールはすべて、リンク・コマンドにプラットフォーム標準の C++ lib をインクルードする必要があります(Caché の動的ライブラリ libisccache.dylib とリンクするときにはこの必要はありません)。

  • OpenSSL バージョン

    このリリースでは、Windows および Unix について、openssl ライブラリのバージョンがバージョン 1.0.0e に更新されました。また、配布には、International Data Encryption Algorithm (IDEA) 暗号も含まれます。openssl に依存するすべての InterSystems プロジェクトは新しいバージョンを使用するように変更されました。新しいバージョンでの変更による影響を受けるアプリケーションも更新する必要があります。

Linux RedHat 32 ビットおよび 64 ビット

このバージョンでは、32 ビットおよび 64 ビット・プラットフォーム用 httpd が再構築され、libexpat.so.0 ライブラリに依存しなくなりました。このライブラリは、以前、標準インストールの一部としてインストールされましたが、最初のシステム構成によっては、今後は存在しない可能性があります。

MacOS 64

MacOS 64 ビット・インストールをアップグレードすると、次の LDAP ライブラリが削除されます。

  • libldap-2.4.2.dylib

  • libldap-2.4.2.1.0.dylib

  • libldap.dylib

  • liblber-2.4.2.1.0.dylib

  • liblber-2.4.2.dylib

  • liblber.dylib

OpenVMS

OpenVMS で HPSWS を使用しているサイトでは、管理ポータルのすべての応答で Content-Length が生成されるように CSP ゲートウェイを構成する必要があります。これを設定するには、CSP ゲートウェイのシステム・ポータル・ページで、/csp に対して [アプリケーション/アクセス] を選択し、[応答サイズの通知] が [Content-Length] に設定されていることを確認します。

開発者

このセクションでは、以前のバージョンの Caché 上で実行されているアプリケーションの設計者、開発者、および保守担当者に関係する情報を示します。

ここでは、各項目について簡単に説明します。ほとんどの場合は、ドキュメントの別の箇所に詳しい説明があります。

ルーチン・コンパイラの変更

TRY ブロック内に $ZTRAP は許可されない

エラー処理順序があいまいであるため、TRY ブロック内での $ZTRAP の使用はいかなる場合でも不正でしたが、今回のバージョンまで、TRY がプロシージャ内で発生しても、ルーチン・コンパイラでは検知されませんでした。今回のバージョンから、コンパイラはこのような使用をエラーとして報告します。

ルーチンの変更

$COMPILE により生成されたオブジェクト・コードは、ルーチン・パス設定を使用しない

$SYSTEM.Process.UserRoutinePath() (これまでは $ZU(20)) を設定している場合、バージョン 2011.1 とは動作が変化していることに気づくでしょう。この変更は、バージョン 2010.2 以前の動作を再度採用したものです。

2011.1 以前、$SYSTEM.OBJ.Load() などのルーチン・ユーティリティは、現在のネームスペースにコンパイル後のオブジェクト・コードを保存していました。2011.1 以降、UserRoutinePath が設定されている場合、コンパイル後のオブジェクト・コードは、現在のネームスペースではなく、ルーチン・パス・ネームスペースに保存されています。このバージョンでは、以前の動作がリストアされたため、ルーチン・ユーティリティでは UserRoutinePath は無視されます。

不正なグローバル参照に対するチェックの強化

以前のリリースの 1 つでは、グローバル名の末尾にピリオドは使用できないというルールが強制されていました。しかし、チェック機能では、添え字を使った間接参照を検査していませんでした。このリリースでは、このケースもチェックされ、

Set name = "^zzz.(3)"
Set @name=99

<SYNTAX> エラーになります。

クラスの変更

クエリ・クラスに Func() メソッドを追加

新しいクエリ・メンバ・メソッド Func が使用できます。Func()は、クエリにより定義された仮パラメータに対応する実際の値を受け入れます。%SQL.StatementResult のインスタンスを返します。Func メソッドが正常に実行された場合は、%SQL.StatementResult の該当するインスタンスが結果セットになります。

あるアプリケーションに、クエリ名と "Func" を連結した名前を持つメソッドを使用するクラスがある場合、コンパイル時に、メンバ・メソッド名の競合が報告されます。詳細は、%Library.QueryOpens in a new tab クラスを参照してください。

永続クラス・インデックス・メンテナンスのために、コールバックを追加

永続クラスで、4 つの新しいコールバック・メソッド %OnBeforeBuildIndices%OnAfterBuildIndices%OnBeforePurgeIndices および %OnAfterPurgeIndices を使用できるようになりました。これらのコールバックは、コールバックの実装が実行可能であるときに、%BuildIndices および %PurgeIndices により呼び出されます。

“Before” コールバックは、何らかの削除または構築作業を行う前、検証、インデックス・リスト処理、および拡張ロックの後に呼び出されます。“After” コールバックは、すべての作業の完了後、拡張ロックの解放前に呼び出されます。“Before” コールバックが不正なステータス値を返した場合、Build/Purge メソッドは即座に終了され、構築/削除処理はいっさい実行されず、Build/Purge メソッドの呼び出し元に、不正なステータス値が返されます。詳細は、%Library.PersistentOpens in a new tab のクラス・ドキュメントを参照してください。

%ResultSet.*クラスの置き換え

%ResultSet パッケージの %ResultSet.SQLOpens in a new tab などのクラスは、Caché Dynamic SQL 実装により置き換えられました。詳細は、%SQL.StatementOpens in a new tab のクラス・ドキュメントと Caché ドキュメントのダイナミック SQL セクションを参照してください。

Note:

%Library.ResultSetOpens in a new tab は、多数の Caché 機能により、引き続き使用されますが、Objectscript には %SQL.StatementOpens in a new tab の使用をお勧めします。

エクステント・マネージャは、存在しないエクステントの削除をエラーとして報告する

このバージョンでは、%ExtentManager.UtilDeleteExtentDefinition(<extentname>) を使用してクラス・エクステントを削除しようとしたときに、エクステント名が存在しなかった場合、無効なステータスのエラーが返されます。従来の動作に依存するアプリケーションは、エクステントの削除を試みる前に、エクステントが存在するかどうかのチェックを追加する必要があります。

グローバル・ストリーム・クラスがステータスを適切に報告するようになる

従来のグローバル・ストリーム・クラスの %SaveData メソッド (例えば、%Library.GlobalBinaryStreamOpens in a new tab%Library.GlobalCharacterStreamOpens in a new tab) は、保存中にエラーが発生した場合、エラー・ステータスを適切に返しませんでした。この不具合は解決され、%SaveData は、成功または失敗を表す正確なステータス値を返すようになりました。

%Exception.AbstractException — DisplayString メソッドは %Library.String を返す必要がある

%Exception.AbstractExceptionOpens in a new tab クラスの DisplayString メソッドは、この例外を表示するための文字列を返す必要があります。しかし、これまでは、メソッドのシグニチャでは返り値の型はまったく定義されていませんでした。このメソッドは、%LibraryString のインスタンスを返すように定義されました。

DisplayString をオーバーライドした例外クラスのサブクラスを持つアプリケーションは、これらのクラスを変更し、返り値の型として %StringOpens in a new tab を追加する必要があります。

エクスポートとインポートの選択性に対する変更

これまでのリリースでは、Caché には、呼び出し元が /exportselectivity 修飾子で渡さない限り、クラス・エクスポートの一部として、選択性情報は含まれていませんでした。その結果、あるネームスペースからクラスをエクスポートし、別のネームスペースにインポートしても、既定では、選択性情報は移動されません。SQL クエリの問題を解析するには、この選択性情報が必要であるため、問題が発生していました。この情報がなければ、クエリのコンパイルは、次善のクエリ計画を選択する結果となる可能性があります。

このリリース以降、Caché の使用する既定値が変わります。エクスポートされたクラスには、データベースに格納されたクラスが必ず完全に反映されるため、エクスポートでは、既定で、Caché により選択性情報がエクスポートされます。インポートでは、既定で、Caché により /importselectivity=2 が使用されます。つまり、このクラスに既に何らかの選択値がある場合は、既存の選択値がすべて保存されますが、プロパティに既存の値が存在しない場合は、インポート XML ファイルから選択的に使用されます。

Note:

このテストは、プロパティごとに行われます。

クラスの削除

以前のバージョンに存在していた以下のクラスは、今回のディストリビューションで除外されています。

  • %Library.Storage — %SQLDelete

  • %Monitor.Health — AbstractCallback、AbstractSensor、Chart、Control、HealthAlert、Period、Rule、SensorClass、SensorReadings、SystemSensors、Test

  • %Net.Remote.Java — ReentrancyTest

  • %ResultSet — SQLQuery

  • %cspapp.exp — utilexpclasscompile、utilexpclassdelete、utilexpclassexport、utilexpclassimport、utilexpclasslist、utilexproutinecompile、utilexproutinedelete、utilexproutineexport、utilexproutinefind、utilexproutineimport、utilexproutinelist、utilexpviewroutine %cspapp.op utilcspsessions、utilensembledashboard、utilopaction

  • %cspapp.sec — utilsysresource、utilsysresources、utilsysssl、utilsysssllist

  • %iKnow.UI.Zen — extendedDataCombo、iKnowSuggestBox

  • %iKnow.Utils.MaintenanceWSAPI — AddEntity

  • %template — soapclientwizarddone、webservicepolicy、webservicepolicycreate、webservicepolicydone、xmlschemawizarddone、xsltwizard、xsltwizarddone

  • Config — Mirror、MirrorSetMembers

  • SYS.DataCheck — LocalDatabasePath

  • Security — Authentication、BooleanYN、Password、Permission

クラス・コンポーネントの削除

このバージョンでは、以下のクラス・コンポーネントが、以前に存在していたクラスから移動または削除されています。

クラス タイプ 名前
%CPT.CalloutIndex メソッド ModuleDirectory
%CPT.CalloutShell メソッド StandardLanguage
%CPT.CalloutTypeIndex メソッド ShowChild
%CPT.HPT.LoadingState プロパティ NodeIndex
%CPT.Tree.Fragment メソッド MatchPlaceholder、Root
プロパティ RootNodeIndex
%CSP.Util.SMTitlePane メソッド DrawQuickJumpList
%CSP.UI.Portal.About パラメータ APPLICATION、CSPURL
%CSP.UI.Portal.Dialog.ChangePassword プロパティ UserRoles
%CSP.UI.Portal.Dialog.ZenReportServerAction メソッド ondialogFinish
%CSP.UI.Portal.NLS メソッド DrawHelpText
%CSP.UI.Portal.ObjectGateway プロパティ HasModified
%CSP.UI.Portal.TaskInfo メソッド GetPIDOBJ
%CSP.UI.Portal.ZenReportServer プロパティ IsModified
%DeepSee.Component.chartLegend メソッド onloadHandler
%DeepSee.KPI メソッド %OnGetFilterMembers
%DeepSee.Query.query メソッド %ProcessFilterSpec
プロパティ %filterIncludes、%slicerIncludes
%DeepSee.Report.UI.chartInfoWizard プロパティ seriesTxt
%DeepSee.UI.Analyzer パラメータ CSPURL
%DeepSee.UI.Architect パラメータ CSPURL
%DeepSee.UI.ArchitectSA パラメータ CSPURL
%DeepSee.UI.Dialog.WidgetBuilder メソッド ChangeWidget、adjustWidgetSize
%DeepSee.UI.Dialog.WidgetCatalog メソッド %OnDrawHTMLHead、adjustWidgetSize、dashboardEventHandler
%DeepSee.UI.FolderManager パラメータ CSPURL
%DeepSee.UI.LogViewer パラメータ CSPURL
%DeepSee.UI.MDXQuery メソッド setQuery
パラメータ CSPURL
%DeepSee.UI.Settings パラメータ CSPURL
%DeepSee.UI.WorksheetBuilder メソッド getColorsPopup、getColorsWidget
パラメータ CSPURL
%Dictionary.ClassDefinition メソッド ClassTypeIsValid、LanguageIsValid
%Dictionary.MethodDefinition メソッド LanguageIsValid
%Exception.AbstractException プロパティ Code、Data、InnerException、Location、Name
%Library.CacheLiteral メソッド IsModified、SetModified
%Library.DynamicQuery メソッド SQLClose
%Library.EnsembleMgr メソッド setupHealthShare
%Library.Storage メソッド %SQLLogicalToOdbcFields、%SQLOdbcToLogicalFields
%Net.Remote.Gateway メソッド %CallServer
プロパティ Proxies
%Net.Remote.Java.JavaGateway メソッド %JavaBindingAttach、%JavaBindingDetach
パラメータ JAVABINDINGATTACH、JAVABINDINGDETACH
%SQL.Statement メソッド %MetadataGet、%MetadataSet
%SQL.Statement プロパティ %StatementClass
%SYNC.Transporter メソッド OpenFile、TimeTransport
%SYS.Task.DiagnosticReport メソッド AuthPassDecode、AuthPassEncode
%SYSTEM.Help メソッド %ClassName
%Stream.GlobalCharacter メソッド %Exists、%GetLockReference、%IsModified、%LogicalToStorage、%NormalizeObject、%ObjectModified、%OnClose、%OnConstructClone、%OnNew、%OnRollBack、%StorageToLogical、%ValidateObject、BuildValueArray、Clear、CopyFrom、Flush、IsNull、LastModifiedGet、MoveToEnd、OutputToDevice、Read、ReadIntoBuffer、ReadLine、ReadLineIntoStream、Rewind、SizeGet、Write、WriteLine
パラメータ BUFFERLEN
プロパティ Buffer、IOSize、LineTerminator、MaxNodeNo、Mode、NodeNo、Position、RemoveOnClose、TempGbl、mLastModified、rollback
%Stream.TmpCharacter メソッド CopyFromAndSave
%TSQL.ResultSet メソッド %Execute、Execute
%UnitTest.Result.TestAssert メソッド SaveIndices
%UnitTest.Result.TestCase メソッド SaveIndices
%UnitTest.Result.TestInstance メソッド SaveIndices
%UnitTest.Result.TestMethod メソッド SaveIndices
%UnitTest.Result.TestSuite メソッド SaveIndices
%WebStress.Scripts メソッド ShowProgress
%XML.ImportHandler プロパティ HandlerType
%ZEN.Dialog.routineSelect メソッド DrawRoutineItem
%ZEN.Report.Display.controller パラメータ NAMESPACE、XMLFORMAT
%ZEN.Report.Display.node メソッド %GenerateCode、%QuoteValue、%QuoteValueEmbedded、%QuoteValueL10N
プロパティ composite、id、parent
%ZEN.Report.Display.pagefooter プロパティ orientation
%ZEN.Report.Display.pageheader プロパティ orientation
%cspapp.op.utilsysjobinfo メソッド GetTitlePane
パラメータ PARENTPAGE
%iKnow.DirectInputDO プロパティ IKSCRC、IKSENT、IKSPATH、IKSTYPE
%iKnow.Matching.MatchingWSAPI.GetDictionaryMatches プロパティ profileId
%iKnow.Matching.MatchingWSAPI.GetDictionaryMatchesById プロパティ profileId
%iKnow.Objects.DictionaryElement プロパティ MinMatchType、Position、Role
%iKnow.UI.AbstractPortal メソッド BuildFilterForm、StoreFilter、onChangeOperatorClient、onToggleFilterClient
%iKnow.UI.IndexingResults メソッド DeleteCurrentVirtualSource、ProcessInput、displayInputScreen、realTimeInputClient
プロパティ ローダ
%iKnow.UI.MatchingResults メソッド DoMatching
%iKnow.Utils.MaintenanceQAPI メソッド AddEntity
%iKnow.Utils.MaintenanceWSAPI メソッド AddEntity
Config.CommonMapMethods メソッド Download、UploadClose、UploadExecute、UploadFetch、Upload
クエリ Upload
Config.CommonMultipleMethods メソッド Download、UploadClose、UploadExecute、UploadFetch
  クエリ Upload
Config.CommonMapMethods メソッド Download、Upload
Config.MirrorAsyncMemberSources メソッド UpdateDatabasesForRWAsyncMember
Config.MirrorMember メソッド DaysBeforePurgeSet
プロパティ DaysBeforePurgePresent
Security.System プロパティ BypassSecurity
メソッド返り値の変更

今回のバージョンの Caché では、以下のメソッド返り値が変更されました。

  • %CPT.CalloutCommon — NodeLineRange

  • %DeepSee.Query.scalarFunction — %EvaluateScalar、%IsScalarFunction

  • %Exception.AbstractException — DisplayString

  • %Exception.SQL — SQLMessageString

  • %Exception.StatusException — DisplayString

  • %Library.CacheLiteral — SQLCompute

  • %SQL — DynamicStatement

  • %XSQL.Log — logSQLCODE

  • SYS.DataCheck.Destination — Connect

  • SYS.MirrorConfiguration — GetOtherFailoverSystemConfig、RetrieveMirrorMemberConfig

  • SYS.Mirroring.GetMirroringInformationSoap — GetFailoverMemberInformation

  • SYS.Mirroring.GetMirroringInformationSoap.GetFailoverMemberInformation — Invoke

  • SYS.Mirroring.MirroringWebServices — GetFailoverMemberInformation

メソッド・シグニチャの変更

今回のバージョンの Caché では、以下のメソッドのシグニチャが変更されました。

クラス名 メソッド名
%CPT.CalloutCommon BuildAllIndices
%CPT.CalloutTesting SetupSettingsString
%CPT.SQLCallout Compile
%CPT.Tree.Fragment %OnNew、IndexTree
%CSP.StudioTemplateMgr AddTemplate
%CSP.UI.Portal.ZenReportServer SaveData
%CSP.UI.SQL.UserPrivPane LoadPriv、LoadRole、LoadUserRole
%Collection.ListOfDT LogicalToOdbc、OdbcToLogical
%Compiler.COS.Refactor ChangeClassNameExecute、oneClass
%Compiler.XML.Generator.Adaptor GenLiteralImport、GetSimpleExport
%DeepSee.AbstractKPI %GetFilterMembers、%GetKPIValue、%OnGetFilterMembers
%DeepSee.Component.pivotController getIconHTML、updateState
%DeepSee.Component.pivotTable GetQueryStatus、selectCellRange
%DeepSee.ComputedDimension.Base %GetComputedMembers
%DeepSee.ComputedDimension.iKnow %ProcessIKnowFact
%DeepSee.Generator %BuildCubeInfo、%GetSQLFieldExpression
%DeepSee.KPI %GetFilterMembers
%DeepSee.KPIWorksheet %GetKPIValue
%DeepSee.Query.Engine %AggregateEnd、%Consolidate、%GetBranchesForSlicer
%DeepSee.Query.query %RewriteCompoundQuery、%RewriteGroup
%DeepSee.Query.scalarFunction %EvaluateScalar
%DeepSee.Report.UI.dataPickPool setDataTree、setDataTreeFromDSS
%DeepSee.Report.UI.reportPreviewer GenerateDataSet、execute
%DeepSee.Report.dataPresenter CreateOutputStream
%DeepSee.ResultSet %ExecuteListing、GetDefaultFormat、%GetQueryStatus、%GetStatus
%DeepSee.TaskMaster DequeueTask
%DeepSee.UI.Dialog.Analyzer SavePivotTable
%DeepSee.UI.Dialog.WidgetBuilder AddWidgetToDashboard
%DeepSee.UserPortal.Utils %ClearDashboardSettings
%DeepSee.Utils %GetCubeLevels、%GetCubeList、%SaveSubjectAreaDefinition、%SynchronizeCube
%ExtentMgr.GlobalRegistry FindReference、IncompatibleUse、LockUse、RegisterReference、UnLockUse
%ResultSet.Static %OnNew
%Installer.AbstractLogger flushIO
%Library.EnsembleMgr OnSystemStartup
%Library.FilemanTimeStamp LogicalToDisplay
%Library.Persistent %KillExtent
%Library.ProcedureContext Prepare
%Library.RegisteredObject %OnNew
%Library.Routine normalizeName
%Library.SerialObject %Open
%Library.Storage %SQLDelete
%Net.Remote.Gateway %Connect
%SOAP.Security.Policy CheckEncryptedSupportingTokens、FindToken、GetSecurityToken
%SQL.DynamicStatement Prepare、findStatement
%SOAP.WST.RequestSecurityToken CreateIssueResponse()
%SOAP.WebParameters ParseParameters、ParseParametersElement
%SOAP.WebService Fault、ReturnInternalStatusFault
%SYNC.Transporter ExportFile、Import、getTransporter
%SYS.Journal.File GetNext、GetPrev、MirrorByTimeReverseOrderExecute
%SYS.NLS.Locale %OnNew
%SYS.Portal.Resources %SetCustomResource
%SYS.ProcessQuery CONTROLPANELExecute、NextProcess、VariableByJobNumberExecute、VariableByPidExecute
%SYS.Task.History WriteLog
%SYS.TaskSuper DisplayGUID
%SYS.ZENReportExcelExporter ExportToExcel、ExportToXlsx
%SYSTEM.SQL ImportDir
%SYSTEM.Security GetGlobalPermission
%Studio.SourceControl.ItemSet Import、Load、LoadToNS、LoadToOS
%UnitTest.SQLRegression verifyResults
%WebStress.Playback RunStop
%WebStress.Record Run
%WebStress.Scripts CacheRecorder
%XML.Implementation AnalyzeTiming
%XML.ImportHandler %OnNew
%XML.Namespaces PushNodeForExport
%XML.Security.Signature ComputeSha1Digest
%XSQL.DSI.GlobalPrivateTable %OnAfterGenerate
%XSQL.DSI.TempTable %OnAfterGenerate
%ZEN.Generator %DoesXDataExist
%ZEN.Report.Display.bidioverride %DrawToXSLFO
%ZEN.Report.Display.block %DrawToXSLFO
%ZEN.Report.Display.body %DrawToXSLFO
%ZEN.Report.Display.br %DrawToXSLFO
%ZEN.Report.Display.call %DrawToXSLFO
%ZEN.Report.Display.callsvg %DrawToXSLFO
%ZEN.Report.Display.caption %DrawCellFO、%DrawCellFO1
%ZEN.Report.Display.category %DrawToXSLFO
%ZEN.Report.Display.class %DrawToXSLFO
%ZEN.Report.Display.container %DrawToXSLFO
%ZEN.Report.Display.cssinclude %DrawToXSLFO
%ZEN.Report.Display.div %DrawToXSLFO
%ZEN.Report.Display.fo %DrawToXSLFO
%ZEN.Report.Display.foblock %DrawToXSLFO
%ZEN.Report.Display.group %DrawToXSLFO
%ZEN.Report.Display.html %DrawToXSLFO
%ZEN.Report.Display.img %DrawToXSLFO
%ZEN.Report.Display.init %DrawToXSLFO
%ZEN.Report.Display.inline %DrawToXSLFO
%ZEN.Report.Display.inlinecontainer %DrawToXSLFO
%ZEN.Report.Display.item %DrawToXSLFO
%ZEN.Report.Display.line %DrawToXSLFO
%ZEN.Report.Display.link %DrawToXSLFO
%ZEN.Report.Display.masterreference %DrawToXSLFO
%ZEN.Report.Display.node %StyleHTML、%StyleXSLFO
%ZEN.Report.Display.p %DrawToXSLFO
%ZEN.Report.Display.pagefooter %DrawToXSLFO
%ZEN.Report.Display.pageheader %DrawToXSLFO
%ZEN.Report.Display.pagemaster %DrawToXSLFO
%ZEN.Report.Display.section %DrawToXSLFO
%ZEN.Report.Display.smallMultiple %DrawToXSLFO
%ZEN.Report.Display.table %DrawToXSLFO
%ZEN.Report.Display.tableOutput %DrawCellFO、%DrawCellToHTML、%DrawFooterFO、%DrawFooterToHTML、%DrawHeaderFO、%DrawHeaderToHTML
%ZEN.Report.Display.tbody %DrawToXSLFO
%ZEN.Report.Display.td %DrawToXSLFO
%ZEN.Report.Display.th %DrawToXSLFO
%ZEN.Report.Display.thead %DrawToXSLFO
%ZEN.Report.Display.timeline %DrawToXSLFO
%ZEN.Report.Display.tr %DrawToXSLFO
%ZEN.Report.Display.xslinclude %DrawToXSLFO
%ZEN.Report.Ping ping
%ZEN.Report.reportPage %DrawToXSLFO、%GetFileByAbsoluteURL、%GetFileByRelativeURL、%MakeToXSLFOFile、CreateOutputStream
%cspapp.exp.utilexpfindreplace Cleanup、SaveData、SaveRoutine
%iKnow.DirectInput ProcessPath
%iKnow.Filters.GroupFilter %OnNew
%iKnow.Filters.SimpleMetadataFilter %OnNew
%iKnow.KB.Knowledgebase LoadDir
%iKnow.LB.Languagebase LoadDir
%iKnow.Matching.DictionaryAPI CreateDictionaryTerm
%iKnow.Matching.DictionaryQAPI CreateDictionaryTerm
%iKnow.Matching.DictionaryWSAPI CreateDictionaryTerm
%iKnow.Matching.MatchingAPI GetDictionaryMatches、GetDictionaryMatchesById、GetTopItems、GetTotalDictionaryScoresBySource、GetTotalDictionaryScoresBySourceId、GetTotalItemScoresBySource、GetTotalItemScoresBySourceId、ProcessAggregate
%iKnow.Matching.MatchingQAPI GetDictionaryMatchesByIdExecute、GetDictionaryMatchesExecute、GetTopItemsExecute、GetTotalDictionaryScoresBySourceExecute、GetTotalDictionaryScoresBySourceIdExecute、GetTotalItemScoresBySourceExecute、GetTotalItemScoresBySourceIdExecute
%iKnow.Matching.MatchingWSAPI GetDictionaryMatches、GetDictionaryMatchesById、GetTopItems、GetTotalDictionaryScoresBySource、GetTotalDictionaryScoresBySourceId、GetTotalItemScoresBySource、GetTotalItemScoresBySourceId
%iKnow.Queries.EntityAPI GetByFilterInternal
%iKnow.Queries.CrcAPI GetCountByDomain
%iKnow.Queries.CrcQAPI GetCountByDomain
%iKnow.Queries.CrcWSAPI GetCountByDomain
%iKnow.Queries.EntityQAPI GetCountBySource
%iKnow.Queries.EntityWSAPI GetCountBySource
%iKnow.Queries.MetadataAPI AddField、AddListOfValues、GetFieldId、GetValue、GetValueById、UpdateField、UpdateFieldById
%iKnow.Queries.MetadataQAPI UpdateField、UpdateFieldById
%iKnow.Queries.MetadataWSAPI UpdateField、UpdateFieldById
%iKnow.Queries.SentenceAPI GetLanguage
%iKnow.Queries.SentenceQAPI GetLanguage
%iKnow.Queries.SourceAPI GetTopLanguage
%iKnow.Queries.SourceQAPI GetTopLanguage
%iKnow.Source.Lister BuildExtIdFromName
%iKnow.Source.Loader ProcessBuffer、ProcessVirtualBuffer
Config.Journal JournalFilePrefixIsValid
Config.MapShadows ListExecute
Config.NLS.Locales ImportDir
Config.NLS.SubTables ImportDir
Config.NLS.Tables ImportDir
Ens.Adapter OnKeepalive
Ens.Alarm CheckAlarmTasks、RemoveAlarm
Ens.BPL.UI.Diagram GetBPLStream、Open
Ens.Config.Production addSchema、getDTLSchemas、getItemSchema
Ens.Job Launch、RecoverActiveMessage、Start
Ens.Rule.Model.expression parseExpression、parseToken、test
Ens.Util.Documentation BuildURL、CreateDoc
Ens.Util.LookupTable %Import
SYS.DataCheck.Destination %OnNew、Connect、ManagerWorkflow
SYS.DataCheck.Phase %CreateQuery
SYS.DataCheck.Query Answer
SYS.DataCheck.RangeList ListElementsExecute
SYS.DataCheck.System %OnNew
SYS.Database Copy、Defragment
SYS.Mirror CatchupDB、PurgeAsyncMemberJournalFiles
SYS.MirrorConfiguration AddFailoverMember、CheckMemberConnection、CheckNewMirroredDB、CreateNewMirror、CreateNewShadow、JoinExistingMirror、RetrieveMirrorConfig、RetrieveMirrorMemberConfig
Security.Events Create、Set
Security.Resources Create
Security.Roles Import
Security.Users Import、UpdateOne

クラス・コンパイラの変更

今回のバージョンの Caché では、以前のリリースと同様、引き続きクラス・コンパイラの向上を図っていきます。このセクションでは、アプリケーション変更を必要とする可能性のある変更について詳述します。

シグニチャの内部表現の変更

このリリースから、非リテラル仮引数の初期値の内部表現は、“{” と “}” で区切られるようになります。プログラミング・ツールなど、クラス・ディクショナリの解析された形式仕様を独自に解釈するアプリケーションは、この変更に対応するために、書き換えが必要です。

ONDELETE チェックの改善

ONDELETE キーワードを使用できるのは、外部キーで使用する場合、あるいは子テーブルを宣言するときの “親” または “一対多” テーブルを宣言するときの “一” を指定するリレーションシップ宣言で使用する場合のみです。その他すべてのコンテキストでの使用は無効です。

この制約は、以前のリリースでは必須ではありませんでしたが、今回のリリースからは強制されます。不適切に使用した場合、クラス・コンパイラにより以下のようなエラーが報告されます。

ERROR #5331: OnDelete keyword value 'cascade' is only valid for a relationship: XXX

ここで、“XXX” は適切な ONDELETE 値、クラス名、およびプロパティ名で置き換えられます。

言語バインディングの変更

Java XEP の変更
  • Java XEP : イベント・パーシスタ importSchema の削除

    このバージョンでは、複数の引数の 1 つとして、InterfaceResolver を受け取っていたメソッドがすべて削除されます。これらのメソッドを使用するアプリケーションでは、以下を

    persister.importSchema(className,resolver);
    

    以下のブロックと置換します。

    persister.setInterfaceResolver(resolver);
    persister.importSchema(className);
    
  • Java XEP : イベント・パーシスタ・メソッドの変更

    このリリースでは、3 つのイベント・パーシスタ・メソッド、callCOSProcedurecallCOSFunction、および executeUpdate が削除され、次の 2 つのメソッドが新たに追加されました。

    void callProcedure(String procedureName, String routineName, Object ... args)
    Object callFunction(String functionName, String routineName, Object ... args)
    

    メソッド Event getEvent(String className, int indexMode) はこのリリースで初めて導入されたもので、インデックス作成の制御に使用されます。indexMode の既定の設定は Event.INDEX_MODE_ASYNC_ON です。

    メソッド Event.close が条件により stopIndexing を呼び出すことはなくなりました。このバージョンから、この呼び出しがなくなりますので、もしこの動作が必要である場合、以下を呼び出す前に、stopIndexing を明示的に呼び出す必要があります。 Event.close

    最後に、startIndexing および waittForIndexing メソッドは、同期インデックス作成オプションが有効化されているかどうか、有効化されている場合は、例外がスローされるかどうかを確認します。

  • Java XEP : イベント・パーシスタ・オプションの変更

    次のオプションは削除されました。

    • OPTION_INDEXING_GET_EVENT_*

    • OPTION_INDEXING_CLOSE_EVENT_*

    • OPTION_FETCH_LEVEL_*

    • OPTION_REFERENCES_*

    • OPTION_INHERITANCE_*

    オプション INDEX_MODE_ASYNC_ON、INDEX_MODE_ASYNC_OFF、INDEX_MODE_SYNC が追加されました。

    オプションが削除されたため、アプリケーションはメソッド経由で JNI という種類のクエリを選択できます。

    void useJNIQuery(boolean jni_flag);
    

    ここで、jni_flag は、True のときは JNI クエリを、False のときは Java クエリを選択します。

    最後に、イベント FETCH_LEVEL_ALL、FETCH_LEVEL_DATATYPES_ONLY、FETCH_LEVEL_NO_ARRAY_TYPES、FETCH_LEVEL_NO_OBJECT_TYPES、FETCH_LEVEL_NO_COLLECTIONS は、Event Persister から Event に移動されました。

XDO (およびダイナミック LCB) は、サブクラスへのアクセスを禁止

これらのバインディングはサブクラスをサポートしません。しかし、これまでのリリースでは、eXTreme Dynamic Object (XDO) またはダイナミック Light C++ Binding を通じて、別の永続クラス (つまり、サブクラス) から継承したクラスのダイナミック・オブジェクトの作成を試みた場合、これらは例外をスローできず、また、このダイナミック・オブジェクトを経由してデータの格納を禁止することができませんでした。

このリリースでは、サブクラスであるクラスに対して、ダイナミック・オブジェクトを作成しようとした場合、XDOException (XDO の場合) または Db_err (ダイナミック LCB の場合) がスローされ、メッセージ “このバインディングでは、サブクラスはサポートされていません” が表示されます。

Java パッケージへの変更

このリリースでは、CacheClassBuilder はcom.intersys.objects に入っています。以前、これは com.intersys.cache にありました。 パッケージ com.intersys.objects は、アプリケーション開発者向けのパブリック・パッケージと見なされていますが、com.intersys.cache には、インターシステムズのモジュールによる直接使用を意図した内部クラスのみが含まれています。インターシステムズでは、com.intersys.objects のクラスの JavaDoc を提供しています。

クラス CacheClassBuilder は、Java アプリケーションにより、Caché サーバ内で Caché クラスの作成および変更に使用できる API を定義します。これは一部の上級ユーザにより使用されるため、パブリック・パッケージに入っています。

古いクラス com.intersys.cache.CacheClassBuilder は、互換性のためのスタブとして用意されています。現在、これは非推奨ですが、使用は可能です。BuildClass.java は、今バージョンから Java サンプルの一部になり、CacheClassBuilder の使用方法を示します。

Jalapeño スキーマの非互換性

2012.2 よりも前のバージョンの Jalapeño で作成されたアプリケーションには、Jalapeño 2012.2 以降のサーバとの互換性がありません。古いアプリケーションを更新するには、Jalapeño 2012.2 を使用して新規スキーマを生成し、このリリース上でアプリケーションをリコンパイルします。

SQL の変更

TO_CHAR がロケールの小数点区切り文字を遵守するようになった

このリリースでは、関数 TO_CHAR のフォーマット・オプション "D" について、NLS 構成 DecimalSeparator を正しく使用し、数字が文字列に変換されます。

CREATE INDEX のロック動作に対する変更

DDL 文の実行により、編集対象のクラス定義がロックされた場合、ロック・タイムアウトは、プロセスの SQL ロック・タイムアウト設定と同じ値が設定されます。従来の動作では、ロック・タイムアウトに 0 が使用されていました。これは、ロックが使用可能になったかどうかが確認されるまで、ロックは待機しないことを意味します。

また、CREATE INDEX 文の実行では、インデックス・データの生成を含め、文全体の実行が完了するまで、クラス定義はロックされたままになります。これまでのバージョンでは、クラス定義のロックは、インデックスが構築される前に解放されていました。このため、インデックスの構築に失敗して、インデックス作成のロール・バックが必要になった場合、問題が発生しました。

SQL ゲートウェイは、%SQL.JDBCResultSet 内で BINARY および VARBINARY をサポートするようになる

SQL ゲートウェイは、%SQL.JDBCResultSet で使用するために、データ型 BINARY および VARBINARY をサポートするようになりました。このリリース以前は、バイナリとして宣言された列は、16進数の文字列として取得されていました。

SQL シェル Displaymode の変更

displaymode が現在のデバイスに設定されていないとき、SQL シェルが自動的に文の結果を開くことはなくなりました。その代わりに、シェルは、ユーザが文の結果の保管先パスとファイル名を指定することを許可します。ファイル名が指定されなかった場合、ファイル名がランダムに生成され、使用されます。特定の文ので使用されるファイルのリストは、文の実行後に、現在のデバイスに表示されます。

IDENTITY 列での PKEY/UNIQUE 制約の作成を抑制する

これまでのバージョンでは、IDENTITY 列を指定する DDL を通じてテーブルを作成したとき、この列の定義に UNIQUE または PRIMARY KEY 列制約も含まれていた場合、Caché SQL は、クラスの PRIMARY KEY または UNIQUE インデックス定義を抑制していました。これは、IDENTITY 列が既に IDKEY と等しく、テーブルの PRIMARY KEY として投影されていたためです。しかし、PRIMARY KEY または UNIQUE 制約が列制約ではなく、テーブル制約として定義された場合、Caché SQL はクラス内での PRIMARY KEY または UNIQUE インデックス定義を抑制しませんでした。

このリリース以降、これは抑制されます。しかし、またこれは、Caché がこの領域に制限を持つことを意味します。フィールドが IDENTITY フィールドであるために、Caché があらかじめ制約のインデックスを作成していなかったときに、テーブルを変更し、プライマリ・キーまたは一意の制約をドロップしようとすると、キーが見つからないため、エラーが返されます。 インターシステムズでは、将来のバージョンで、クラス定義の制約モデルを強化することにより、この問題を改善する予定です。

Round スカラ関数はスケール係数を丸める

SQL ROUND スカラ関数の 2 つ目の引数は、最も近い整数に丸められるようになりました。次に例を示します。

ROUND(1234.567,2.5)

は、次と同じです。

ROUND(1234.567,3)

この変更により、ROUND 関数と TRUNCATE 関数の動作が一致します。

データ・インポート・ウィザードでの DATETIME の処理の修正

これまでのバージョンでは、データ・インポート・ウィザードが DATETIME 値を “June 24 1947 03:04:05:006PM” のような形式に変換するときに、時刻の秒とミリ秒の間が ":" で区切られていると、ミリ秒の部分が適切に処理されませんでした。このバージョンで、ミリ秒の値が適切に変換されるようになりました。

クエリ・キャッシュのメタデータに対するロック・タイムアウトを延長

これまでのバージョンでは、システムがクエリ・キャッシュをロックしなければならないときに使用していたロック・タイムアウトは、SQL ロック・タイムアウトと同じで、既定値は 10 秒でした。しかし、クエリ・キャッシュのロック・タイムアウトはこれよりも長い方が望ましいことがあります。このリリースでは、クエリ・キャッシュのロック・タイムアウトを変更するためにシステム管理者が呼び出すことができる、新しい API が追加されています。それを、次に示します。

Set StatusReturn = $SYSTEM.SQL.SetCachedQueryLockTimeout(timeout, .oldvalue)

さらに、このリリースでは、クエリ・キャッシュのロック・タイムアウトの既定値が 120 秒に変更されます。

CSP の変更

$SYSTEM.CSP.Show によるヘッダ表示を修正

このリリースまで、$SYSTEM.CSP.Show 関数では showhttp フラグが誤って解釈されていました。今回のバージョンでは、True の場合、HTTP ヘッダが表示され、False の場合、表示されないようになります。

文字セットを持たない javascript 静的ファイルの新しい既定

Caché の動作を、Apache や IIS などの主要な Web ベンダと揃えるために、インターシステムズでは、静的な javascript ファイルの既定のレンダリング方法を変更します。この変更は、*.js ファイルが、Caché により、ストリーム・サーバを使用してレンダリングされる場合のみ有効です。Web サーバから提供される javascript ファイルは影響を受けません。

javascript ファイルはこれまで、text/javascript とマークされていましたが、このリリースでは、 application/javascript の Content-Type とマークされます(application/javascript は、以前のコンテンツ・タイプに取って代わるもので、HTML 標準で定義された正しいタイプです)。 さらに、Caché の既定値では、javascript ファイルの文字セットは送信されません。これは、主要な Web サーバの既定の動作と一致しています。

つまり、ファイルに BOM (バイト・オーダー・マーク) が含まれている場合、ブラウザは自動的にこれを検出し、正しい文字セットを使用します。javascript ファイルに BOM が含まれていない場合、ブラウザは既定で、これを utf-8 で読み込みます。これまでは、既定のファイル変換テーブルに基づいて文字セットが送信されていたため、ファイルに BOM が含まれていた場合、ブラウザではその情報を検出して使用することができませんでした。

アプリケーションでこの新しい動作をオーバーライドするには、グローバル ^%SYS("CSP","MimeFileClassify","JS") をリスト値 $listbuild(contenttype, binary, charset) に設定することにより、javascript ファイルに文字セットを指定できます。以下はその例です。

SET ^%SYS("CSP", "MimeFileClassify", "JS") = $listbuild("text/javascript", 0 ,"ISO-8859-1") 

これは、古いコンテンツ・タイプを設定し、iso-8859-1 文字セットを使用します。また、CSP 変換テーブルが “” 以外になるように定義されている場合、または ^%SYS("CSP","DefaultFileCharset") グローバルに NULL 値が設定されている場合、Caché は javascript ファイル、およびその他のテキスト・ファイルで、この文字セットを使用します。既定では、これらのどちらも設定されていません。

XML の変更

%XML.Writer の完了時に、現在のデバイス変換テーブルをリセット

%XML.WriterOpens in a new tab の呼び出しで、これを呼び出したプロセスとは異なる変換テーブルが使用されている場合、Caché は、%XML.WriterOpens in a new tab が返されたときに、既定でプロセス変換テーブルを再確立します。これまでのバージョンでは、このような処理は行われませんでした。

XMLImport により NULL で終わる空の文字列に対する有効性チェックが行われるようになる

これまでのリリースでは、値 $CHAR(0) で構成されている、インポートされた文字列に対しては、有効性チェックが行われないという不具合がありました。今回のリリースでは、Caché は、値 $CHAR(0) を持つ %String 値の有効性をチェックします。

この変更では、MINLEN と MAXLEN を強制的に比較するために、$CHAR(0) を長さ 0 を持つものとして扱います。これは、VALUELIST にも適用されます。$CHAR(0) を有効な値として含めるには、次のように、VALUELIST にコンマを 2 つ、連続して入力する必要があります。

VALUELIST = ",,a,b,c" 

SOAP の変更

ヘッダ・データの継承を制御

これまでは、パラメータ SOAPMETHODINHERITANCE が 0 に設定されていると、パラメータ XData 内のヘッダがすべて無視されていました。今回のリリースからは、Web サービスまたは Web クライアントのパラメータ SOAPMETHODINHERITANCE が 1 の場合、このパラメータに対する XData のヘッダ情報が常に継承されます。この変更では、SOAPMETHODINHERITANCE が 0 であっても、メソッド (パラメータ要素の直接の子としての要求または応答要素) に固有ではないヘッダ情報も継承されます。

SOAP セキュリティ・ヘッダに追加される新しい単一のメソッド

これまでのリリースでは、SOAP セキュリティ・ヘッダにアイテムを追加するとき、使用するメソッドを AddToken() または AddElement() から選択する必要がありました。このリリースでは、これらのメソッドは非推奨となり、新しいメソッド AddSecurityElement() で置き換えられました。既存の Web サービスやクライアントを変更する必要はありません。これらを更新して、新しいメソッドを使用できるようにすることは簡単です。呼び出しシーケンスを調整する必要はありません。

これまでのリリースでは、追加するアイテムがデータのみを保持していた場合、AddToken() を使用しました。このルールは、アイテム <BinarySecurityToken><DerivedKeyToken><EncryptedKey> (<ReferenceList>含まない場合) の追加に、このメソッドを使用したことを意味します。

追加するアイテムで署名または暗号化が必要な場合、AddElement() を使用します。このルールは、アイテム <Signature><EncryptedKey> (<ReferenceList> を含む場合)、<ReferenceList> の追加に、このメソッドを使用したことを意味します。

WebMethod の引数の順序の修正

これまでのバージョンでは、SOAP ウィザードにより作成された WebMethod の末尾には、必ず、Output 引数がありました。このバージョンでは、WSDL に基づいて ByRef 引数が Output 引数の後に正しく配置されます。

クライアント WebMethod では、XMLSequence=0 が記述子クラスで指定されていたため、誤った順序でも問題ありませんでした。しかし、Web サービスではうまくいきませんでした。 再構築される既存のクライアントでは、この場合、引数が並べ替えられ、呼び出されたルーチンに、呼び出しシーケンスの変更が要求されます。 このウィザードを使用して、クライアントを再構築しなければ、この変更は実行時に何の効果も持ちません。

BASIC と MVBASIC の変更

MVBASIC は多次元配列要素を値で渡すようになる

今回のリリース以前、サブルーチンやメソッドに対する MVBASIC 呼び出しで実際のパラメータとして配列要素変数を使用するためのパラメータ渡し動作には一貫性がありませんでした。MVBASIC アプリケーションが配列を渡すサブルーチン、または関数を呼び出したとき、

  • 明示的な整数ディメンジョンを持つ DIM 文で宣言された MVBASIC 配列の添え字付き配列要素変数は参照で渡されました。

  • 1 つ、または 2 つの添え字を含む COS 多次元配列の配列要素変数を渡そうとすると、ランタイム・エラーになりました。

さらに、MVBASIC アプリケーションがあるメソッドを呼び出すと、添え字付き配列要素変数がすべて値で渡されました。

今回のバージョン以降、MVBASIC アプリケーションがサブルーチン、関数、またはメソッドのいずれかを呼び出すとき、明示的な整数ディメンジョンを持つ DIM 文で宣言された MVBASIC 配列の添え字付き配列要素変数は参照で渡され、Objectscript 多次元配列の添え字付き配列要素変数は値で渡されます。つまり、今後、Objectscript 多次元配列要素変数をパラメータとして渡してもエラーにはなりません。また、配列をメソッドに渡す方法も変わります。

メソッドの仮パラメータを変更しても、対応する実際のパラメータの値は変わらないようなアプリケーションでこれまでの動作をそのまま使用する場合は、このパラメータを括弧で囲む必要があります。これにより、コンパイラは実際の引数を、変数ではなく、式の値として解釈します。

Note:

添え字を含まない変数 (配列またはスカラ) 渡しには変更はありません。

条件にシングルトンが含まれているときの IFS() 定義の変更

このリリースでは、MVBASIC IFS(B, X1, X2) 関数の定義が変更されました。これまでのバージョンでは、この関数は、同じ個数のフィールド、値、サブ値を持つ動的配列を、ブーリアン B の形で常に作成していました。新しい定義は、次の 3 つの状況に対応しています。

  1. 引数 B にシングルトンが含まれている (つまり、フィールド・マーク、値マーク、またはサブ値マークが含まれていない) 場合、B が True か False かに応じて、結果はすべて X1 または X2 になります。

  2. B が、シングルトンであるフィールド・コンポーネントを含む動的配列である場合、結果の対応するフィールドは、シングルトン・ブーリアン・フィールド・コンポーネントが True か False かに応じて、X1 または X2 の対応するフィールドすべて (すべての値およびサブ値を含む) になります。

  3. B が、シングルトンである値コンポーネントを含む動的配列である場合、結果の対応する値は、シングルトン・ブーリアン・フィールド・コンポーネントが True か False かに応じて、X1 または X2 の対応する値すべて (すべてのサブ値を含む) になります。

SUM 関数が動的配列を返すようになる

SUM() 関数は、動的配列文字列を返すように定義されています。 しかし、これまでのリリースでは、コンパイラはこの関数が値を 1 つだけ返すものと誤って処理し、動的配列の最初のコンポーネントのみが返されていました。 この不具合は修正され、SUM() は、動的配列結果のすべてのコンポーネントを返すようになります。

MVBASIC IO ステータス処理の変更

これまで、MVBASIC は、エラーの発生している I/O 文からのエラー・ステータスを @SYSTEM.RETURN.CODE に記録していました。残念ながら、この動作は、これと同じ変数の他の用途と矛盾していたため、MVBASIC I/O 文は、今後、I/O ステータスをこの場所に保存しません。

今回のバージョンから、MVBASIC I/O 文はステータス値をシステム変数 @IO.STATUS に入れます。I/O 文が正常に終了すると、@IO.STATUS に 0 が格納されます。I/O 文がエラーになると、0 以外のエラー・コードが格納されます。 I/O エラー・コードはシステム変数 @IO.ERROR にも格納されますが、この変数は I/O 文が正常終了したときには変更されません。したがって、@IO.STATUS からは、最後に実行された I/O 文のステータスがわかりますが、@IO.ERROR からは、最後にエラーとなった I/O 文のステータスがわかります。

また、中には、@STATUS システム変数にエラー・コードを格納する I/O 文もありますが、この動作は変わりません。 I/O エラー・メッセージ・コードは、ERRMSG ファイル内のアイテムと対応します。

@SYSTEM.RETURN.CODE に格納されている I/O エラー・コードを使用した MVBASIC プログラムは、代わりに、@IO.ERROR (また、場合によっては @IO.STATUS) を使用するように書き直す必要があります。

xDBC の変更

JDBC リンク・プロシージャでのバイナリ値のサポート

このバージョンでは、バイナリとして宣言された出力引数は、バイナリで返されます。これまでのバージョンでは、16 進数値として返されていました。これは、選択リスト内の値でも同様です。

ODBC からの返り値の丸めを回避する

これまでのバージョンでは、C++ アプリケーションは、ODBC から 10 進数値を読み取るために、GetData() を呼び出していました。このメソッドは、値を文字列値としてリクエストし、C++ はこの値をバインディングし、10 進数値に変換していました。この方法で、データを処理した場合、ODBC はこれを数値に変換してから、文字列に戻します。この処理により、精度が多少失われる可能性があります。このリリースでは、文字列への中間変換を回避する方法でデータがリクエストされるため、元の精度が保持されます。

DeepSee の変更

組み合わされたフィルタの解釈の変更

このリリースでは、一部のケースで、DeepSee におけるフィルタの組み合わせ方法が、これまでのリリースとは異なっています。これは MDX の動作の変更ではなく、DeepSee によるピボット・テーブル定義の解釈方法の変更で、MDX クエリとして解釈されるようになりました。

これまでのバージョンでは、同じレベルの複数のメンバをドラッグし、([アナライザ] の) [フィルタ] ボックスにドロップした場合、DeepSee はこれらのメンバを論理 OR で結合していました。今回のバージョンからは、論理 AND で結合するようになります。

メンバを論理 OR で結合するには、次の操作を実行する必要があります。

  1. レベルをドラッグし、[フィルタ] ボックスにドロップします。

    この操作により、フィルタ・テーブルの上のバーにドロップダウン・リストが追加されます。

  2. ドロップダウン・リストから目的のメンバを選択します。

この変更は、既存のピボット・テーブルの作成方法によっては、これらのテーブルに表示されている結果に影響を与える可能性があります。ピボット・テーブルを調査し、必要に応じて調整することをお勧めします。この作業は、アナライザで行います。

また、これをスタジオで行うこともできます。そのためには、[ワークスペース] ウィンドウで [その他] フォルダにある目的の .dfi アイテムを慎重に編集します (または、ピボット・テーブルの保持に使用しているコンテナ・クラスを編集します)。1 つのレベルから複数のメンバをドラッグし、[フィルタ] ボックスにドロップした場合、ピボット・テーブル定義には、同じレベルを参照する複数の <filter> 要素が含まれることになります。以下はその例です。

<pivot ...>
...
  <filter spec="[ColorD].[H1].[Favorite Color].&[Blue]" key="Blue" value="" text="Blue" ...>
  </filter>
  <filter spec="[ColorD].[H1].[Favorite Color].&[Green]" key="Green" value="" text="Green" ...>
  </filter>
</pivot>

これを、論理 OR として解釈される別の形式に変更するには、2 つの <filter> 要素を、key に対する結合された値を持つ 1 つの<filter> 要素に置き換えます。

<pivot ...>
...
  <filter spec="[ColorD].[H1].[Favorite Color].Members" key="{&amp;[Blue],&amp;[Green]}" ...>
  </filter>
</pivot>

このような変更を手作業で行うことに不安がある場合は、アナライザで目的のピボット・テーブルを開き、そこで変更を行います。

これら 2 つの方法を示した例については、"DeepSee アナライザの使用法" の “ピボット・テーブルのフィルタ処理” の章の “DeepSee でフィルタを組み合わせる方法” を参照してください。

ピボット・テーブル定義に対するローカルなオーバーライドの処理の変更

このリリースでは、ダッシュボードからピボット・テーブル定義に対して行われるオーバーライドの処理方法が変わります。

ダッシュボード・ウィジェットには、ミニ・アナライザ・ボタンを含めることができます。ユーザはこのボタンを使って、ピボット・テーブル定義をオーバーライドできます。オーバーライドは、ピボット・テーブルの XML に localDataSource 属性として保存されており、ユーザは誰でも、このオーバーライドを確認できました。DeepSee はグローバル内で、ローカル・オーバーライドをユーザごとに保存するようになります。localDataSource 属性は何も効果を持たなくなります。

Zen の変更

CSS3 スタイルシート向けに生成された名前に対する変更

今回のリリースまで、CSS3 スタイルシート用に生成されたファイル名は、OpenVMS リリースすべてと互換性を持っているわけではありませんでした。これは、ファイル名に余分な “.” 文字が 1 つ含まれているからです。今回のリリースから、Caché が CSS3 スタイルシート用に生成するファイル名は、“.3.css” ではなく、“_3.css” で終わるようになります。

これはほとんどのアプリケーションに対して完全に透過的なものですが、アプリケーションのコードが、以前のファイル名を明示的に参照している可能性もあります。この場合は、新しいファイル名を使用するように、アプリケーションを変更する必要があります。

Zen レポートの変更

Apache FOP を Skynav FOP で置き換える

このリリースでは、Apache FOP が Skynav FOP で置き換えられます。Skynav FOP は、Basic Technologies が出資しているGlenn Adams が開発したものです。 Skynav FOP は Apache FOP の分岐ですが、別のソース・リポジトリの下に存在します。これは Apache ライセンスを持ちます。 インターシステムズが乗り換えを決定したのは、Skynav FOP は、アラビア語やヘブライ語などの言語で複雑なスクリプトをサポートしているからです。

今回の変更で、FOP の管理を変更する必要はありません。構成設定に変更はありません。例えば、複雑なスクリプトのフォントが、アラビア語などサポートされているフォントに含まれている場合に複雑なスクリプトをサポートするようになった点を除き、ソフトウェアは以前と同様に動作します。この変更に関する詳細は、ここOpens in a new tabを参照してください。

SVG 処理の変更

Caché のこのリリースでは、batik trunk のリビジョン 1229814 がインストールされます。これは、ZEN レポート COS グラフと ZEN ページ・グラフが同じ SVG ファイルを使用することを妨げる、batik バージョン 1.7 の不具合に対応するものです。

RenderServer は環境変数を使用するようになる

このリリースから、Java バイナリ・ファイルおよび XEP ライブラリの場所を判断するために、runwithxep.bat は環境変数 JAVA_HOME および XEP_HOME を使用するようになります。

Zen ページは CSS Level 3 を使用する

このリリースでは、基本 Zen ページ・クラスが修正され、ユーザ・エージェントに Mozilla/5.0 以上が含まれるすべてのブラウザ (基本的に、IE9 以上を含む最新ブラウザすべて。IE 8 以前にはあてはまりません) で、CSS レベルの既定値が 3 になります。これは、ブラウザに対して、このページが HTML5 を使用していることを知らせます。一部のページは、HTML5 モードでは (通常、無効な CSS 値のため) うまく動作しない可能性があります。開発者は、これらのページを修正するか、このセクションの説明に従って、cssLevel を 2 に設定する必要があります。

アプリケーションに互換性がないために、CSS レベルを 2 に強制する必要があるアプリケーションでは、ページの %OnDetermineCSSLevel メソッドをオーバーライドして 2 を返すか、^%ISC.ZEN.cssLevel グローバルを 2 に設定して、cssLevel をグローバルに変更します。

GenerateReport は HTML5 を作成する

GenerateReport は、HTML5 準拠の HTML ファイルを生成するようになります。このため、IE 8 など、HTML5 に準拠していないブラウザで GenerateReport の結果を表示した場合に問題が発生する可能性があります。

Note:

HTML 5 ブラウザで開かれる HTML ファイルを生成するには、ファイル拡張子は、".htm" や ".html" ではなく、".xhtml" である必要があります。

要素 bidioverride の変更

これまでのリリースでは、Zen レポートは、HTML の div として、bidioverride を生成しました。このバージョンでは、fo:bidi-override を生成します。Zen レポート要素の方向属性、bidioverride は fo:bidi-override の dir 属性を設定します。 bidioverride の unicode-bidi 属性は無視されます。

要素 <write> および <inline> はスペースを挿入しない

今回のリリースでは、<write> および <inline> 要素の処理が修正され、これらが余分なスペースを生み出すことはなくなりました。これまで、この動作に依存していたアプリケーションの修正が必要です。

セクションは、それを含むレポートから書き込みモードを継承するようになる

あるセクションにより生成された fo:page-sequence は、このセクションに対して書き込みモードが指定されていない場合、それを含むレポートから書き込みモードを継承するようになります。

Orientation 属性の削除

これまでのリリースでは、“orientation” 属性 (ポートレートまたはランドスケープ・モードの設定に使用されるもの) は意味のある方法では使用されていませんでした。レポート定義の pageheader または pagefooter で orientation が使用されている場合、開発者はこれを削除する必要があります。レポートの外観には変化はありません。

FeedbackOpens in a new tab