Caché ドキュメント
Caché 5.0.19 リリース・ノート


ポスト・リレーショナル・データベース Caché をご利用いただき、ありがとうございます。このドキュメントでは、Caché 5.0.18 と Caché 5.0.19 の違いを説明します。

ご利用になる前に、Caché 5.0 リリース・ノート (Caché インストール・ディレクトリの Docs/GCRN/GCRN.html ファイルにある) を参照してください。以前の 5.0 メンテナンス・キットに関する詳細は、このファイルと同じディレクトリにある prenotes.htm を参照してください。

このドキュメントには、以下のセクションが含まれています。
インターシステムズでは、アップグレード・プロセスの一部としてご使用のアプリケーションを再コンパイルするようにお勧めします。これにより、今回のリリースで向上しているパフォーマンスや部分的な変更内容をすべて反映させることができます。
新たに判明した機能的な問題
今回のリリースでは次の機能的な問題が新たに判明しており、アプリケーションに悪影響を及ぼす可能性があります。これらの問題に対して早急に対処する必要がある場合は、インターシステムズのサポート窓口に連絡してください。

これらの問題は、今後のメンテナンス・リリースで修正されます。


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

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

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


オンライン・ドキュメント
インターシステムズは、ユーザの利便性を考慮し、当社 Web サイト で最新バージョンの Caché ドキュメントにオンライン・アクセスできます。

当社ホームページで [Caché] タブをクリックし、[製品情報] メニューの [技術資料とカタログ] を選択してください。あるいはこのリンクをたどってください。


変更レポートの説明
今回の変更による影響をお使いのアプリケーションで認識するため、各変更の解説では、修正点を詳細に説明しています。
すべての変更に対し、問題発生の可能性、変更による影響、実運用しているシステムで製品が問題なく動作しているかなど、関連情報を示したテーブルがあります。テーブルでは 1 つまたは 2 つのキーワードと値のみ使用し、情報を簡単に認識できるようにしています。キーワードの意味は、以下の通りです。
今回のリリースで重要な変更

 



カテゴリ : CHUI
プラットフォーム : すべて
DevKey : LFT1250
要約 : CHUI でのルーチン検索時間を短縮

説明 :

今回の変更により、キャラクタ指向ユーティリティを使用したルーチン検索の処理速度が遅くなる問題が修正されました。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : 言語 : Caché Basic
プラットフォーム : すべて
DevKey : DAS801
要約 : CacheBasic の Replace() 関数を修正

説明 :

Caché Basic の Replace() 関数が 32K より大きい文字列になる場合、正しく処理されていませんでしたが、今回の変更でこの問題が修正されました。以前は、<SYSTEM> エラーやアクセス違反になっていましたが、今回の変更で <MAXSTRING> エラーが正しく報告されるようになりました。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : 言語 : Cache Basic
プラットフォーム : すべて
DevKey : JN325
要約 : CacheCOM における AIX のバグの回避策

説明 :

CacheCOM では、ロードした共有ライブラリ・ハンドルのキャッシュが保持されます。AIX の一部のバージョンのバグにより、複数回ライブラリのアンロードの呼び出しをすると、ライブラリがロードされたままになっていても、存在しないと表示されることがありました。

今回の変更により、無限ループが発生しないよう、AIX でこれらのライブラリ・ハンドルをキャッシュしないようにします。


可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : ネットワーキング
プラットフォーム : すべて
DevKey : GK435
要約 : マウント解除されたクラスタ・データベースを ECP クラスタが処理

説明 :

ECP クラスタで、クラスタ・データベースをいったんマウント解除してクラスタ・マスタに再マウントすると、クラスタ・スレーブからの後続の $INCREMENT は、<Directory> エラーが発生して失敗する場合がありました。今回の変更により、この問題が解決され、エラーは発生しなくなりました。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey : GK438
要約 : 64 ビット・プラットフォームで、システム数の ECP 処理を修正

説明 :

64 ビットのプラットフォームの中には (alpha VMS など)、ECP 接続数が 32 を超えると、さまざまな内部状態 (保留トランザクションやクライアント・キャッシュなど) を正しく処理しないものがありました。今回のリリースで、この問題は修正されています。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : AK611
要約 : 定数/変数の NULL 解析を修正

説明 :

今回の変更により、WHERE 句の中に次のいずれかが含まれる場合、コンパイル時に <SUBSCRIPT> エラーが発生していた問題が修正されました。


可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : PVA063
要約 : 右のオペランド・テーブルで複雑な条件によって外部結合したとき、誤った応答が返されることがある

説明 :

今回の変更により、OUTER JOIN で誤った応答が返されるような状況が修正されました。LEFT OUTER JOIN の右側のテーブルの列に複雑な条件 (OR 条件など) があり、添え字としてこの列が含まれるインデックスがオプティマイザで選択された場合は、不正確な結果が返される可能性があります。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS674
要約 : ^ROUTINE からソース行の数を取得

説明 :

今回の変更以前は、ZLOAD コマンドを実行すると、ルーチンの現在のオブジェクト・コードからソース行の数が取得されていました。スタジオがルーチンを再コンパイルせずに、さらに行を追加して保存した場合、その後に ZLOAD や ZSAVE を実行すると、これらの行は消失しました。行が削除された場合、その後で ZSAVE を実行すると、<NOSOURCE> エラーが発生していました。

今回の変更により、ZLOAD を実行すると、^ROUTINE グローバルの現在の値からソース行の数が取得されるため、現在のソースが正しく使用されます。


可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : システム
プラットフォーム : 1
DevKey : CDS684
要約 : <FRAMESTACK> 後の <ERRTRAP> を修正

説明 :

5.0.16 で導入された修正には、<FRAMESTACK> エラーが発生した後、本来デバッグ・プロンプトに入るべきところ、プロセスが終了してしまうという、意図しない副作用がありました。今回の修正により、<FRAMESTACK> エラー発生後の処理が正しいものになりました。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム
プラットフォーム : 1
DevKey : JO1787
要約 : シャットダウンしない限り、%ROLLBACK の実行時に RESJOB 要求を無視

説明 :

%HALT を終了および実行するプロセス、または %ROLLBACK のようなサブルーチンは、RESJOB に応答しなくなりました。RESJOB を発行するプロセスは、送信先がこれを無視したという通知を受信しません。システムを
ccontrol stop
によってシャット・ダウンすると、これまで通りこれらのプロセスが終了します。

さらに、$ZUtil(4) を直接呼び出すと、Unix でも Windows でもデーモンを終了しなくなりました。これらは、エラー・ステータス 0 を返します。

今回の変更により、$ZUTIL(4) からのエラー・コードとして、-4 という新しい値も追加されました。この値は、送信先で %HALT が実行中のため RESJOB が無視されたことを意味します。

$ZUTIL(4,<pid>,-65) を使用すると、ジョブを強制終了できます。このとき、保護していたロックが解放されても、オープン・トランザクションをロールバックすることはありません。


可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : システム
プラットフォーム : 1
DevKey : JO1948
要約 : 暗黙のネームスペースで nsswitch() にフレームスタック・クリーンアップを追加

説明 :

ルーチンが切り替わり、このルーチン呼び出しスタックに関わる 1 つ以上のネームスペースが暗黙のネームスペース (^^<directory reference>) である場合、プロセス・ダンプが出力されるという問題が稀に発生していましたが、これが解決されました。暗黙のネームスペースをアプリケーションで使用するのは一般的でないため、この問題が発生することはほとんどありません。これが発生するのは、主に開発環境です。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム
プラットフォーム : 1
DevKey : JO1950
要約 : setpath()/initpath() のエラー処理の呼び出し元の修正 ($ZU(45)、$ZU(46)、$ZU(20) および $ZU(39))

説明 :

アクセス違反が発生しなくなるように、ネームスペースを操作する関数のエラー処理が改善されました。影響を受けるコマンドおよび関数は、以下の通りです。

以前は、これらのいずれかに障害が発生すると、一部の内部構造が不整合な状態のままになるため、後でメモリ例外が発生する場合がありました。


可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : JO1952
要約 : データベース拡張エラーを修正

説明 :

セカンダリ・データベース・ボリュームの追加中に、データベースの性能低下が発生するという状況が稀にありましたが、今回の変更で修正されました。データベースの現在のサイズがマップ・ブロックに達し、新しいボリュームの追加には増分のバックアップ・ビットマップ・ビットの設定が必要な場合に、このエラーが発生していました。このエラーが発生すると、書き込みデーモンは前のボリューム・セット・メンバの終端を超えて、新しいビットマップ・ブロックを書き込もうとするため、ディスクの書き込みに重大なエラーが発生していました。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SAP402
要約 : CONTROL デーモンにブロードキャストを送信すると、デーモンが終了する

説明 :
$zu(94,<pid of CONTROL>,"test",2) 
で CONTROL プロセスにブロードキャストを送信すると、コア・ダンプを引き起こすことがありましたが、今回の変更により、この状況が修正されました。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SML440
要約 : ttwrite() でジョブがスタックしたとき、バックアップ操作時に動作が停止するのを防止

説明 :

ジョブがロック・モジュール内にあるとき、Ctrl-S または XOFF によって端末の出力を停止すると、バックアップ障害が発生することがありましたが、今回の修正により、このエラーが修正されました。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべて
DevKey : SML610
要約 : クラスタでのバックアップ停止の問題を修正

説明 :

今回の変更により、クラスタ・プラットフォームで発生するオンライン・バックアップ停止の問題が、ECP チャンネルを使用して修正されました。スレーブ・システムに、マスタからの応答を待つジョブがある場合、クラスタ・システムを停止するとオンライン・バックアップに障害が発生していました。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : システム : クラスタ固有
プラットフォーム : すべて
DevKey : JO1956
要約 : キュー ENQDMN のクリアを修正して、起動コールの失敗を回避

説明 :

VMS で Caché クラスタが停止することがごく稀にありましたが、これが解決されました。これは、ENQDMN の起動呼び出しに失敗して、キューにジョブがあるにもかかわらず休止したままになるという症状です。この症状が発生すると、クラスタ全体が停止します。

この停止は、

cstat -"E"4
からの出力を調べ、ENQDMN を待つジョブのリストを探すことによって診断できます。
cstat -p2
では、ENQDMN がアイドルであることを示します (ジョブ番号 6)。
cstat -"P"6 
を実行すると、ENQDMN に起動呼び出しが送信され、停止の問題が解決されます。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム : ジャーナリング
プラットフォーム : すべて
DevKey : HYY1041
要約 : ジャーナル・リストアで %UI を "CHUI" に設定して、ジョブ起動ジョブの停止を防止

説明 :

Windows でマルチジョブのジャーナル・リストアを行ったとき、JOBbed でリストアされたジョブが (^JOBEXAM のように) ^%Wprim または ^%CDCalBk で停止するという問題がありましたが、今回の変更により解決されました。%UI が設定されていない場合に、JOBbed ジョブを GUI モードにするかどうかを決定する方法が異なるため、Windows 以外のプラットフォームには影響がありませんでした。この問題は 5.0.5 で導入されたマルチジョブのリストア機能から主に発生しており、ローカル変数 %UI を明示的に設定しないと、ユーザが実装し、ジョブがなくなったジャーナル・リストアに影響する場合があります。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム : ジャーナリング
プラットフォーム : すべて
DevKey : HYY1125
要約 : ジャーナル・リストアのソートを修正

説明 :

ジャーナル・リストアには、大量の同時グローバル・ソートが OpenVMS でプロセスのページ・ファイル割り当てを使い果たすと、<STORE> エラーが発生していましたが、今回の変更により、この問題が修正されました。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : システム : ロック
プラットフォーム : すべて
DevKey : SML614
要約 : 要求を実行したときに premjobid をクリア
説明 :

今回の変更により、リモート ECP クライアントが所有するロックを対象に、ECP サーバーのロック所有者を特定するときのエラーが修正されました。ECP クライアント・ジョブのトランザクションの中でロックが付与される場合、サーバーには不正なロック所有者が示されていました。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : システム : シャドウイング
プラットフォーム : すべて
DevKey : HYY1086
要約 : 要求に応じて、シャドウ・データベース・アップデータのジャーナリングを無効化

説明 :

"ジャーナルが適用されるトランザクション" プロパティが無効であるにもかかわらず、シャドウ・データベースに適用される SET および KILL がジャーナリングされるという問題が 5.0.13 で発生していましたが、今回の変更で修正されました。

可能性
危険性
パッチ あり
拡張性 なし

 



カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : CFL1345
要約 : %SYS.Namespace クラスに、GetRoutineDest メソッドと GetGlobalDest メソッドを追加

説明 :

%SYS.Namespace に 2 つの新しいクラス・メソッドが 追加されました。GetRoutineDest と GetGlobalDest です。

GetGlobalDest
^[Namespace]Global(Subscript) がマップされている system^directory を返します。Subscript がない場合は、^[Namespace]Global の場所を返します。Global がない場合は、Namespace の既定のグローバルの場所を返します。

GetRoutineDest
この Namespace で Routine がマップされている system^directory を返します。Routine がない場合は、Namespace の既定のルーチンの場所を返します。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : LFT1187
要約 : BAS 拡張子の NEXT^%R を修正

説明 :

今回の変更により、CHUI ユーティリティを使用して Basic ルーチンを検索するときのエラーが修正されました。このバグの影響を受けるのは、ドットが含まれるルーチン名だけでした。その中でも、ドットに続く 2 番目の部分が、ソートすると "BAS" の前に来る文字で始まる名前だけが影響を受けていました。この変更前は、x.ABC、x.999、x.1.y などの Basic ルーチンは検索できませんでした。

可能性
危険性
パッチ なし
拡張性 なし

 



カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : LRS972
要約 : 大規模データベースの FREECNT レポートを修正

説明 :

%FREECNT ユーティリティの空き領域の計算が、大規模なデータベースに対して正しく行われていませんでした。その結果、%FREECNT は空き領域として、領域の 100% を超える値を報告することもありました。

この問題は、修正されています。


可能性
危険性
パッチ なし
拡張性 なし