InterSystems Documentation 
Caché メンテナンス・キットのリリース・ノート


リリース・ノートは、インストール先の \Docs サブディレクトリにあります。

このドキュメントでは、Caché 2008.1.1 と Caché 2008.1.2 の違いについて説明します。

トピックは以下のとおりです。


全般的なお知らせ
以前にリリースされたバージョンからのアップグレード
以前のバージョンの Caché を実行しているお客様は、インストール時にこのバージョンの Caché にアップグレードできます。複数のバージョンにまたがってアップグレードするときは、中間リリースの互換性要件に応じて、段階的なアップグレード・ステップが必要となる場合があります。必要な情報は、中間段階の各リリースのリリース・ノートに記載されています。

各アップグレード・ステップの終了後に適用される条件は以下のとおりです。

ECP 構成のアップグレード
ECP 構成のアップグレード・プロセスに適用されるガイドラインは以下のとおりです。
ECP 構成のアップグレード方法について疑問や質問がある場合は、インターシステムズのサポートセンターまでお問い合わせください。

Restricted Rights Legend
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.
InterSystems Corporation
One Memorial Drive
Cambridge, MA 02142
When acquired by the Government, commercial computer software and related documentation bearing this legend are subject to the following:

  1. Title to and ownership of the software and documentation shall remain with the Contractor.
  2. Use of the software and documentation shall be limited to the facility for which it is acquired.
  3. The Government shall not provide or otherwise make available the software or documentation, or any portion thereof, in any form, to any third party without the prior written approval of the Contractor.Third parties do not include prime contractors, subcontractors and agents of the Government who have the Government's permission to use the licensed software and documentation at the facility, and who have agreed to use the licensed software and documentation only in accordance with these restrictions.This provision does not limit the right of the Government to use software, documentation, or information therein, which the Government has or may obtain without restrictions.
  4. The Government shall have the right to use the computer software and documentation with the computer for which it is acquired at any other facility to which that computer may be transferred; to use the computer software and documentation with a backup computer when the primary computer is inoperative; to copy computer programs for safekeeping (archives) or backup purposes; and to modify the software and documentation or combine it with other software.Provided that the unmodified portions shall remain subject to these restrictions.
END OF LEGEND

インターシステムズのニュース、アラート、アドバイザリ
インターシステムズは、当社のソフトウェアをお使いのユーザに対し、早急に必要となる重要な情報を随時発表しています。この中には、警告、不可避の問題点、重要な更新、修正、リリースの発表などがあります。

最新のリストは、インターシステムズの Web サイトから取得できます。

ユーザはこのリストを定期的にチェックし、使用するアプリケーションの処理に関連する問題がある場合は、その最新情報を確認してください。


オンライン・ドキュメント
インターシステムズは、ユーザの利便性を考慮し、当社の Web サイトで最新バージョンの製品のドキュメントにオンライン・アクセスできるようにしています。ホームページで [サポート&教育サービス] タブを選択し、該当する製品のサポート・メニュー (例えば [Caché サポート]) を選択します。サポート・ページには、利用可能なドキュメントへのリンクが製品ごとに掲載されています。

変更レポートの説明
このメンテナンス・キットがアプリケーションに与える影響を判断できるよう、このドキュメントの以下のトピックでは、それぞれの修正点について詳しく説明しています。
アプリケーションやシステム、あるいは関連性のある計画に与える影響を評価する上でサポートが必要な場合は、インターシステムズのサポートセンターまでお問い合わせください。


このメンテナンス・キットの変更レポート

カテゴリ : CSP
プラットフォーム : すべて
DevKey : MAK2346
要約 : 各 CSP ページの後にジャーナル状態をリストアする

説明 :

CSP ページが DISABLE^%SYS.NOJRN の呼び出しによってジャーナル化を無効にし、CSP サーバがこれをリセットしなかった場合、この同じプロセスによって提供される次の CSP ページは、ジャーナル化が無効にされた状態で実行されていました。今回の変更により、ジャーナルが、その状態を判断して各 CSP ページの後でリストアされるようになりました。

カテゴリ : CSP
プラットフォーム : すべて
DevKey : MAK2374
要約 :javascript リンクに対する、CSP リンク書き換え操作の内部のチェックを復元する

説明 :

CSP アプリケーションから ..Link(url) を呼び出すと、セッション ID などを追加するため、必要に応じて url が書き換えられます。さらにこのコードでは、リンクの先頭にある 'javascript:' がチェックされ、これらのリンクについては書き換え操作がスキップされます。これは、'javascript:' が実際のリンクではなく、JavaScript のコードを実行するためのコマンドであるためです。このようなリンクの書き換え操作を回避するコードは、以前の開発作業時に誤って削除されていましたが、今回の変更で復元されました。

カテゴリ : インストール : Windows
プラットフォーム : Windows
DevKey : ALE1460
要約 : Windows Vista 以降での cbootuser.rsa の読み取りと実行

説明 :

Vista 以降の Windows インストールでは、XP と同様の方法で cbootuser.rsa を読み取って実行します。これにより、中断のないインストール処理が可能になります。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK632
要約 : リモートの DB 照合が異なる場合の gref 変換を修正

説明 :

ECP を介した暗黙の gref (グローバル参照)、ECP を介したマップされたグローバル、あるいは ECP を介したグローバルへの最初の参照では、一貫して gref がリモートの照合に変換されませんでした。この問題は修正されています。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK652
要約 : 長い文字列の設定中に ECP サーバのリカバリで ECP が停止する

説明 :

非常にまれな状況で、32K を超える長い文字列の設定中に ECP サーバまたはネットワークに障害が発生すると、ECP リカバリが停止することがあります。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK653
要約 : cstat アクセス違反を修正

説明 :

これにより、ECP の応答バッファがまれに NULL の pidtab エントリを参照するという状況が修正されました。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK654
要約 : ECP クライアントのハートビート間隔を調整する

説明 :

この変更により、アイドル・システムのネットワーク障害をより正確に検出できるように、ECP アプリケーション・サーバのハートビート間隔が調整されました。データベース・サーバから発信される多数の async パケットは、ハートビートの送信を妨げることがあります。アプリケーション・サーバのハートビート間隔を短くして、データベース・サーバの保留中のハートビート・カウントをより正確に保ちます。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK656
要約 : ECP の要求数を一貫してラップするように修正

説明 :

要求数カウンタでオーバーフローが発生すると、ECP クライアントでは要求数を 1 にラップし、サーバでは 0 にラップしていました。予期しないラッピングは、コンソール・ログへの書き込みを発生させ、通信を切断して、再接続とリカバリを直ちに実行させることがあります。これは ECP リカバリが無効化されているサイトで問題になっていましたが、クライアントとサーバで一貫するように修正されました。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK659
要約 : リモートの DB sfn を更新するために ECP クライアントをリカバリする

説明 :

ごくまれに、ECP サーバのリカバリ中にデータベース・サーバに障害が発生し、リモート・データベースが起動時と同じ順番でマウントされていないと、データベース・サーバの障害時に作成されていた ECP の同期要求 (つまり、$DATA、$GET、$INCREMENT) が誤ったデータベース番号を参照することがありました。この問題は修正されています。

誤ったデータベース番号の参照による結果はさまざまで (Caché のリリースにも依存します)、ECP デーモンがクラッシュしたり、要求が正しいデータベースに送信されないことがあります。後者の場合、予期しないアプリケーション・エラーが発生したり、(まれに) 誤ったデータがフェッチされることがあります。

カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : TR995
要約 : ECP を介して長い文字列を設定すると、ECP クライアントのキャッシュが期限切れのままになることがある

説明 :

今回の修正が行われるまでは、約 64KB を超える文字列がアプリケーション・サーバで変更されると、それ以前の要求の結果としてその文字列を含むブロックが同じクライアントに送信された場合に、アプリケーション・サーバとデータベース・サーバで異なるバージョンのブロックを持つようになっていました。

カテゴリ : オブジェクト : クラス・コンパイラ
プラットフォーム : すべて
DevKey : MAK2391
要約 : %occConvert 内の誤記を修正

説明 :

データベース内のクラス・ディクショナリ・バージョンをアップグレードすると、%occConvert で UNDEFINED エラーが発生することがありました。この問題は修正されています。

カテゴリ : オブジェクト : マクロ・プリプロセッサ
プラットフォーム : すべて
DevKey : DPV3110
要約 : MPP : 再帰的なマクロの展開があった場合の無限ループを修正

説明 :

マクロ参照の展開が再帰的なループである場合にコンパイラが無限ループに陥るという、マクロ・プリプロセッサの問題が修正されました。このような再帰の例を以下に示します。
#define ABC $$$ABC
$$$ABC
または
#define ABC $$$DEF
#define DEF $$$ABC
set j=$$$ABC
今回の修正では、このようなコードのコンパイルを試行すると、以下のようなエラーが表示されるようになりました。
ERROR:MyRoutine.MAC(14) :MPP5649 :Too many (65535) macros referenced on this line.
This might indicate recursion in the macro definitions.

カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey : JN675
要約 : %XML.SAX.Utils.Sequencer の誤った文字列長の計算を修正

説明 :

%XML.SAX.Utils.Sequencer の誤った文字列長の計算が修正されました。

カテゴリ : セキュリティ
プラットフォーム : OpenVMS
DevKey : RJW1569
要約 : OpenVMS の Kerberos 接続を受け入れられない問題を修正

説明 :

この変更により、Caché の Unicode システムで OpenVMS プラットフォームの Kerberos 接続を受け入れられない問題が修正されました。

カテゴリ : セキュリティ
プラットフォーム : すべて
DevKey : SML1045
要約 : クラスタのノードに対する $Incr() のセキュリティ・ホールを修正

説明 :

この変更により、$INCREMENT() 関数および $BIT() 関数のセキュリティ・ホールが解決されました。ユーザに対して読み取り専用に構成されている、クラスタ化されたデータベースに対して SET または KILL を試行すると、<PROTECT> エラーが発生します。しかし、$INCREMENT では発生させるべきエラーがトリガされず、データベースでインクリメントが発生していました。これは、クラスタのスレーブ・ノードでのみ発生していた問題です。

カテゴリ : セキュリティ
プラットフォーム : すべて
DevKey : STC1423
要約 : 未処理のエラーの後に $SYSTEM.Security.AddRoles() を呼び出すことができない

説明 :

$SYSTEM.Security.AddRoles は以下のように更新されました。 デバッグ・プロンプトから $SYSTEM.Security.AddRoles() を呼び出せなくなり、自身のロールをアプリケーションのスコープ外にエスカレートできなくなりました。

$SYSTEM.Security.AddRoles() を呼び出すプロシージャ内のすべてのルーチンまたはクラスでエラー処理を使用することをお勧めします。


カテゴリ : セキュリティ
プラットフォーム : すべて
DevKey : STC1430
要約 : ユーザ定義の "Z" 関数から $SYSTEM.Security.AddRoles() を呼び出すことができる

説明 :

この変更により、ユーザ定義の "Z" 関数からも $SYSTEM.Security.AddRoles() を呼び出せるようになりました。これらの関数は COS 言語に対するユーザ定義の拡張です。COS 言語には、"Z" で始まるコマンド、関数、および特殊変数を追加できます。

カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS1385
要約 : DisableJournaling メソッドの <UNDEFINED> を修正

説明 :

SYS.Database クラスの DisableJournaling メソッドを実行しようとすると、<UNDEFINED> エラーが発生していました。この問題は修正されています。

カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS1395
要約 : 長い文字列が $SYSTEM 関数から正しく返されていなかった

説明 :

今回の変更により、$SYSTEM.Encryption.Base64Decode などの関数が長い文字列を返すとメモリ・アクセス違反が発生する問題が修正されました。

カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS1396
要約 : 暗号化関数によるバッファ・オーバーランを防止

説明 :

Base64Decode の出力が 32K 文字を超過すると、内部バッファ長の計算に誤りが生じてバッファ・オーバーランが誘発されることがありました。

カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS1409
要約 : <STORE> エラー後に発生するアクセス違反を修正

説明 :

<STORE> エラーの発生後にエラー・トラップを実行すると、状況によっては、そのトラップ・ルーチンが正しくロードされず、メモリ・アクセス違反が発生することがありました。この問題は修正されています。

カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS1409
要約 : パーティションが一杯のときに排他的 NEW を発行すると発生するループまたはアクセス違反を修正

説明 :

パーティションで使用可能なメモリ量が少ないときに排他的 NEW コマンドを発行すると、メモリのキューが破壊される可能性があります。これにより、その後のある時点で CPU のループやアクセス違反が発生します。この脆弱性は修正されています。

カテゴリ : システム
プラットフォーム : すべて
DevKey : JO2231
要約 : COM2 の後に argstack 上位エントリを取得する x64 AL コードの訂正

説明 :

今回の変更では、スタック規則からの逸脱を修正することで、Caché が突発的にクラッシュするソースが修正されました。

カテゴリ : システム
プラットフォーム : Windows
DevKey : JO2233
要約 : 64 ビット版 Windows x86 ビルドの LTCG の無効化

説明 :

多数の XML ファイルをロードすると例外が発生してターミナル・ウィンドウが終了することがある、64 ビット版 Windows マシンに対する問題が解決されました。

カテゴリ : システム
プラットフォーム : すべて
DevKey : JO2234
要約 : 実行スタックのポップ操作の一部としてオブジェクトの Destruct メソッドを呼び出すことによるアクセス違反の修正

説明 :

特定の状況下で QUIT、ZQUIT、および HALT コマンドを実行すると、Caché が内部実行スタックの "ポップ操作" の一部としてスコープ外オブジェクトのクリーンアップを試行するときに、例外がトリガされることがありました。今回、この問題は修正されました。

カテゴリ : システム
プラットフォーム : OpenVMS
DevKey : SML1036
要約 : OpenVMS で主デバイスへの書き込み中にジョブが異常終了すると発生するループ状態を修正

説明 :

OpenVMS で主デバイスへの書き込み中にジョブが異常終了すると、ループ状態が発生することがありましたが、今回の変更で修正されました。

カテゴリ : システム : ライセンス
プラットフォーム : すべて
DevKey : RJW1576
要約 : ライセンス・サーバが無限ループに陥り、膨大な量のライセンス・レポート・ファイルを書き出す

説明 :

非常にまれな状況下で、ライセンス・サーバによってライセンスの循環リンク・リストが作成されることがありました。循環リンク・リストが作成されると、ライセンス・サーバはリストを繰り返し処理するか、膨大な量のライセンス・レポート・ファイルを書き出そうとします。

今回の変更では、処理対象の要素をカウントし、そのカウント数が許容できる構造体の最大数を超過した場合にライセンス・サーバを終了することで、このような問題の発生を軽減しています。この状況が発生すると、ライセンス・サーバは自動的に再起動されます。この間のユーザ・ログインおよびログアウトは中断されることなく処理されます。

ライセンス・サーバの再起動により、リストは適切に再構築されます。


カテゴリ : システム : NWDS
プラットフォーム : すべて
DevKey : SML1037
要約 : NWDS マスタで構成の再有効化に時間がかかる問題を修正

説明 :

NWDS を構成すると、マスタ・ノードでの構成の再有効化に時間がかかり、SMP がタイム・アウトになることがありました。この問題は修正されました。

カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : STC1301
要約 : ZN コマンドのパフォーマンスを改善

説明 :

これまでの ZN コマンドでは、ネームスペースの切り替え中に大量の ObjectScript 行を実行していました。これが原因で、ネームスペースの切り替えに ZN コマンドを使用するアプリケーションにおいてサーバ・パフォーマンスの低下が発生することがありました。この問題は修正されました。

カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : STC1377
要約 : ユーザのインポート時のパスワード検証エラーを修正 (ユーザのより迅速な削除)

説明 :

^SECURITY を使用して Caché の新しいインスタンスに別のインスタンスからユーザをインポートしようとしたときに、そのユーザが両方のインスタンスに存在し、それぞれのインスタンスで異なるパスワードを所有している場合、新しいインスタンスのパスワードが検証に失敗します。今回、このようなユーザは、レコードをインポートする前に新しいシステムから削除されるようになりました。これには、新しいユーザの SQL テーブルの特権をすべて削除するという付加的な効果があります (これまで新しいインスタンスのユーザには、別のインスタンスのユーザからテーブルの特権が継承されていました)。

また、パフォーマンスも改善されています。

カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : STC1407
要約 : マッピングが存在しない暗黙のネームスペースで ZN コマンドが機能する

説明 :

これまでは、暗黙のネームスペースに対して $ZU(5,namespace) コマンドをプロセスで実行すると、保護エラーをテストするルーチンが利用できませんでした。そのため、$ZU(5,namespace) が使用できても、元に戻すために ZN を使用することはできませんでした。ネームスペース参照によるチェック・ルーチンを明示的に呼び出すように修正したことで、ZN コマンドが実行できるようになりました。