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


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

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

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

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

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


全般的な強化
インターシステムズは、不可避の問題によって必要となる修正とは別に、Caché の全般的な機能を適宜強化しています。このバージョンには、そのような機能強化が組み込まれています。

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

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


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

 



カテゴリ : 構成マネージャ
プラットフォーム : すべて
DevKey : CFL1145
要約 : ECP サーバのエディションの修正

説明 :

今回の変更により、新しいサーバを追加したときに、サーバ名およびアドレス・フィールドの一意性が保証されるようになりました。

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

 



カテゴリ : コントロール・パネル
プラットフォーム : すべて
DevKey : CFL1136
要約 : コントロール・パネルによる永続的なロック状態の修正

説明 :

今回の変更により、コントロール・パネルの問題が修正されました。変更前は、ローカル・データベースを拡張するたびに、ロック・テーブルに新しいエントリが追加されていました。そして、これらのロック・エントリは、コントロール・パネルを閉じないと削除されませんでした。今回の修正により、拡張を終了すると、ロックが解放されるようになりました。

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

 



カテゴリ : CSP
プラットフォーム : すべて
DevKey : MAK918
要約 : フォーム内の 32 KB を超えるデータが CSP にポストされた場合、情報を保持するストリーム・オブジェクトが作成される

説明 :

Web ページに以下のようなフォームがあるとします。
<form name=form1 method=post action='textarea.csp'>
<textarea name=txt rows=15 cols=100 value="">
</textarea>
<br><input type=submit name="btn" value="Submit">
</form>
このテキスト・エリアに 32 KB を超えるデータが含まれる場合、CSP サーバはクラッシュしていました。今回の修正により、すべてのデータを保持するストリームが作成され、%request.Data("txt",1) にアクセスすると、ストリーム oref が取得されるようになりました。これは、32 KB を超える可能性があるすべてのフィールドに対して、以下のようなコードを記述する必要があることを意味します。
Set value=%request.Data("fieldname",1)
If $isobject(value) {
  ; Treat this as a stream
} Else {
  ; Treat this as a regular string
}

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

 



カテゴリ : CSP
プラットフォーム : すべて
DevKey : MXT561
要約 : #server または #call によって渡されるブーリアン値を適切な Caché 値に調整する

説明 :

今回の変更前は、JavaScript のブーリアン値を #server 引数または #call 引数として渡すと不整合になりました。#call または #server によって渡されるブーリアン値は "true" または "false" ですが、IE の Java アプレット・ベースの #server はこれらの値を -1 または 0 として渡し、Mozilla の Java アプレット・ベースの #server はこれらの値を "true" または "false" として渡します。上位互換ソリューションに整合性がないため、true または false を 1 または 0 として渡すという、最も Caché に近いソリューションを実装しました。

この変更の実装は、ユーザが必要に応じてこの変更をバックアウトするのを大幅に簡略化する目的で設計されました。JavaScript のブーリアン値の調整は、<CacheDirectory>/csp/broker/cspbroker.js. にある JavaScript 関数の cspMakeBoolean を使用して行います。この関数のコメントには、機能を以前の不整合なモデルに戻す方法が説明されています。

#call または #server によってブーリアン値引数を渡す場合、プログラマはアプリケーション・コードを調整する必要があります。この場合は、コードをスキャンして "true"、"false"、または -1 に該当する箇所を調べ、Caché のブーリアン値として 1 または 0 を期待するように変更します。


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

 



カテゴリ : CSP : ゲートウェイ
プラットフォーム : すべて
DevKey : CMT211
要約 : IIS ルートへのパスにピリオドが含まれる場合に、ゲートウェイのシステム管理が動作しない問題を解決

説明 :

今回の変更により、IIS ルートへのパスにピリオドが含まれる場合に、ゲートウェイのシステム管理が動作しない問題が解決されました。例えば、以下のようになります。
C:\Inetpub\www.com\Website
このパスを使用してシステム管理を呼び出すと、'www.com' の箇所がシステム管理フォームに対する要求を識別するゲートウェイのロジックにとって混乱を招くものとなるため、'Invalid Request' エラーがブラウザに返される結果となりました。

一般的に、Web リソースへのファイル・パス (ディレクトリ名の中) にピリオドがある場合、あいまいさと混乱の原因となる可能性があります。このことは、CSP ベースのリソースではよくあることですが、問題のエンティティが仮想である場合に特に当てはまります。


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

 



カテゴリ : CSP : Net
プラットフォーム : すべて
DevKey : MXT529
要約 : ヘッダが不適切な場合の %Net.POP3 による添付ファイルの保存

説明 :

%Net.POP3 の StoreAttachToFile プロパティが true の場合、添付ファイルは AttachDir で指定されているディレクトリに保存されます。添付の有無は、"Content-Disposition=attachment" ヘッダによって示されます。以前は、content-disposition ヘッダに filename 属性が指定されている場合にのみ、ファイルが保存されました。

現在は、%Net.POP3 によってすべての添付ファイルが、次に示すファイル名を使用して保存されるようになりました。

  1. Content-Disposition の filename 属性にファイル名が指定されている場合は、その名前を使用する。
  2. Content-Type の name 属性にファイル名が指定されている場合は、その名前を使用する。
  3. それ以外の場合は、ATTxxxxxx.dat という形式の一時的な名前を生成する。

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

 



カテゴリ : CSPGUI
プラットフォーム : すべて
DevKey : YSD878
要約 : テーブルが空の場合に SQL マネージャのチューニング・テーブルが停止しない

説明 :

今回の変更前は、SQL マネージャを介してチューニング・テーブルを実行すると、エクステント・サイズの計算結果がゼロの場合でも、選択関数が呼び出され更新されました。今回の変更により、エクステント・サイズの計算結果がゼロの場合 (データがない場合) は、選択関数が呼び出されず、結果として変更がテーブルに保存されなくなりました。この場合、以下のようなメッセージが表示されます。
Table extentsize = 0. No changes will be made.

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

 



カテゴリ : エクスプローラ
プラットフォーム : すべて
DevKey : CFL966
要約 : 必要な場合にのみ再構築される ^rINDEX

説明 :

今回の変更により、ルーチン・インデックス・グローバルは、必要なときにのみ再構築されるようになりました。変更前は、インデックスがしばしば不必要に再構築され、パフォーマンス低下の原因となっていました。

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

 



カテゴリ : インストール
プラットフォーム : すべて
DevKey : LRS817
要約 : Caché インストール・ノードの競合の回避

説明 :

今回の変更により、異なるノード上で実行されている Caché とのインストールの競合が回避されました。この変更は、UNIX および OpenVMS でのインストール手順に適用されます。

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

 



カテゴリ : 言語
プラットフォーム : すべて
DevKey : CDS594
要約 : GOTO $CASE() でのコンパイラの <ACCVIO> の修正

説明 :

GOTO コマンドの引数として $CASE 関数を使用すると、ルーチンのコンパイル時にアクセス違反が生じたり、実行時に予期しないエラーが生じることがありました。今回の変更により、この可能性は修正されています。

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

 



カテゴリ : 言語
プラットフォーム : すべて
DevKey : CDS597
要約 : $ZSORT(var,2) でのコンパイラの <ACCVIO> の修正

説明 :

$ZSORT() 関数の 2 番目のパラメータが無効な場合に $ZSORT() 関数をコンパイルすると、アクセス違反が生じることがありました。今回の変更により、この問題は修正されています。

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

 



カテゴリ : ネットワーキング
プラットフォーム : すべて
DevKey : GK289
要約 : ecprecovery.mac にあるタイプミスの修正

説明 :

今回の変更により、ECP リカバリの失敗の原因となっていたラベルのタイプミスが修正されました。

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

 



カテゴリ : ネットワーキング
プラットフォーム : すべて
DevKey : GK346
要約 : LAT 接続および接続解除時のログ記録の変更

説明 :

OpenVMS 上の Caché では、LAT セッションを開始または停止するたびに、SYSLOG エントリがログ記録されました。今回の変更により、セッションの開始と終了に関してはログが記録されなくなりました。

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

 



カテゴリ : オブジェクト : CDL : UNIX
プラットフォーム : すべて
DevKey : DLP1113
要約 : %OnDetermineClass での ID 値の検証

説明 :

複数の構成要素を持つ ID 値を使用して %OpenId を呼び出したときに、その構成要素の 1 つが NULL の場合は、ID 値が無効であることを示すエラーが返されます。

例えば、クラス A は永続的で、P1 と P2 という 2 つのプロパティを持つとします。P1 と P2 には、idkey インデックスがあります。##class(A).%OpenId("abc||") は成功せず、ID の構成要素値の 1 つが NULL であることを示すエラー・メッセージが表示されます。

これまでは、<SUBSCRIPT> エラーが返されました。


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

 



カテゴリ : オブジェクト : クラス・コンパイラ
プラットフォーム : すべて
DevKey : DLP1135
要約 : 制約の作成元の修飾

説明 :

クラス内に作成された一意性制約は、サブクラスに継承されると制約の作成元が SQL に投影されないため、適切に強制されませんでした。

現在は、SQL に投影されるすべての未修飾クラス名が、制約作成クラスとして修飾されます。


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

 



カテゴリ : オブジェクト : ストレージ : 既定
プラットフォーム : すべて
DevKey : DLP1165
要約 : 親 IDKEY にある参照のサポート

説明 :

IDKEY (ROWID とも呼ばれる) は、単一の値か、"||" で区切られた複数の値のどちらかです。この値が別クラスへの参照で、その参照にも "||" 文字が含まれる (参照先のクラスに複数のプロパティに基づく IDKEY がある) 場合、Caché は、IDKEY の各構成要素値に予想される "||" 文字の数を追跡する必要があります。Caché は、その情報に基づいて、$PIECE を使用して個々の IDKEY 構成要素値を抽出します。

クラスが子であり、その親の IDKEY が複数プロパティに基づいているときに、親のプロパティの 1 つまたは複数が別の永続クラスへの参照で、その参照先クラスの IDKEY もまた複数プロパティに基づいている場合は、ストレージ・コンパイラによって、データを保持するための正しいコードが生成されない場合がありました。これは、すべての親プロパティ (識別情報プロパティ) に構成要素値が含まれないことを前提としていたためです。

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


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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DLP1130
要約 : SQL if サブクラスでは実施されなかった一意性チェック

説明 :

継承された一意性制約は、SQL によって適切に実施されませんでした。例えば、クラス A が永続クラスで、インデックス I1 が作成されたプロパティ P1 を持つとします。P1 には一意性が定義されています。

さらに、クラス B がクラス A を継承するとします。

今回の変更前は、クラス A 内に既存する値を P1 に指定して、クラス A に行を挿入すると失敗しました。一方で、P1 の値がクラス A 内の行に既存しても、クラス B への不適切な SQL insert は成功しました。

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


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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DPV2105
要約 : SQL if サブクラスでは実施されなかった一意性チェック

説明 :

一意性制約がサブクラスによって継承されている場合に、ベース・クラスで定義されている一意性制約を侵害するような INSERT がサブクラスのテーブルで許可されるエラーが修正されました。

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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DPV2177
要約 : テーブルのコンパイル時の <SUBSCRIPT> エラーの発生

説明 :

上書きされた完全な行参照がインデックス・マップに使用されている場合に、インデックス・マップで正しいファイリング・コードを生成できないという SQL テーブル・コンパイラの問題が修正されました。

また、インデックスが以下のような構造で定義されている場合に、テーブルの任意の行のフィールドに値が存在するかどうかを決定するコードで正しいコードを生成できないという SQL テーブル・コンパイラの問題も修正されました。

^[$Piece(LVar({F1}),",")]Glo("a",{F1},{ID})
これらの問題のどちらの場合も、テーブル・ファイリング・ルーチンに対して不正な構文が生成されていました。

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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DPV2244
要約 : テーブルに未挿入のストリーム・フィールドがある場合の INSERT/SELECT の修正

説明 :

挿入先のテーブルに挿入列リストに指定されていないストリーム・フィールドがある場合に、INSERT/SELECT 文が <INVALID OREF> エラーでクラッシュするエラーが修正されました。

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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DPV2251
要約 : <ROUTINE TOO BIG TO SAVE> が返される DDL インポートでの Caché 内部エラーの発生

説明 :

プリプロセッサのエラー・トラッピングで <UNDEFINED> エラーが生じ、通知しようとしている本当のエラーを隠してしまうという Caché マクロ・プロセッサの問題が修正されました。

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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DPV2300
要約 : ビューを作成する構文のエラー

説明 :

ビューのクエリの WHERE 節にサブクエリがあるビューが潜在的に更新可能なビューとして不適切に処理されるため、コンパイル時に <UNDEFINED> エラーが発生するエラーが修正されました。今回の変更により、ビューのクエリにサブクエリがある Caché SQL ビューは更新不能となりました。

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

 



カテゴリ : SQL
プラットフォーム : すべて
DevKey : DPV2308
要約 : MapData の親テーブルの ID/RowID フィールドに関する問題の修正

説明 :

今回の変更前は、%CacheSQLStorage を使用したときに、マップ・データのフィールドが親またはそれ以上のテーブルの IDKEY フィールドで、そのテーブルの IDKEY が単一フィールドに基づいている場合に、テーブルでデータのファイリングを行うコードが適切にコンパイルされないことがありました。

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


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

 



カテゴリ : SQL : ODBC
プラットフォーム : すべて
DevKey : JCN473
要約 : Unicode ビルドでの ConfigDSN コードの修正

説明 :

今回の変更により、DSNConfig の問題が修正され、そのパラメータが Caché 5.0 の次のキーワードを取るように更新されました。
  1. User、UserName、または UID
  2. PWD または Password
  3. Host または Server
  4. Port
  5. Description
  6. Namespace または Database
  7. Unicode SQLTypes
  8. Static Cursors
  9. Query Timeout

これらのキーワードの大文字/小文字は区別されません。

キーワードを定義しない場合、UID と PWD 以外は適切な値が割り当てられます。

これらを ConfigDSN API に渡すには、keyword=value の各ペアの間に "\0"区切り文字を使用して、文字列を構成する必要があります。エントリ全体の最後には、2 つの "\0" を記述する必要があります。ConfigDSN の使用方法の詳細は、マイクロソフトのオンライン・ドキュメントを参照してください。

以下に、この文字列の例を示します。改行は読みやすくする目的で挿入されています。

DSN=Testing\0
    Namespace=User\0
    Host=myhost\0
    Port=1976\0
    Description=My own private server\0
    UID=someone;Pwd=passwd\0\0

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

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : AK600
要約 : ループを生じないコードを生成するように修正

説明 :

これまでの GROUP BY または DISTINCT を使用するクエリに対する実行速度の向上がさらに拡張され、より多くのケースに適用されています。また、特定のクエリの実行時に、NULL 値を含むインデックス付きプロパティで <SUBSCRIPT> エラーや無限ループが生じるなどの問題が発生していた一部のケースでも、正しく動作するようになっています。

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

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : AK603
要約 : TOP 1 での、一時ファイルを作成しないより高速なソリューションの使用

説明 :

今回の変更により、TOP および ORDER BY の指定時に、一時ファイルを作成しないアクセス・パスの選択が優先されます。これによって、クエリを満たすすべての行を返すのに最も高速であると判断されたアクセス・パスが選択されるのではなく、ORDER BY に一致するインデックスを使用するなどの方法によって、最初の数行がより高速に返されるアクセス・パスが選択されます。

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

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : DPV2204
要約 : "set option lock_timeout = xx" 使用時の Prepare() でのエラー発生

説明 :

以下のような文で発生していた問題が修正されました。
SELECT OPTION LOCK_TIMEOUT = 30
この文は、動的クエリの使用時に、Prepare を実行しないことがありました。

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

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : DPV2257
要約 : テーブルに BLOB があるときの "insert into...select" の失敗

説明 :

以下のような状況で発生していたエラーが修正されました。
INSERT INTO MyTable1,... (MyStreamField1)
    SELECT MyStreamField2,... FROM MyTable2
この文は以下のようなケースで、SQLCODE=-400 エラーが発生しクラッシュすることがありました。
INSERT INTO MyTable1,... (MyStreamField1)
    SELECT 'some literal',... FROM MyTable2
または
INSERT INTO MyTable1,... (MyStreamField1)
    SELECT NULL,... FROM MyTable2

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

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : DPV2258
要約 : objcode(1) を使用した %qaccpq2 での <UNDEFINED> の修正

説明 :

サイズの大きなテーブルをコンパイルするときのテーブル・コンパイラの問題が修正されました。今回の変更前は、生成されたテーブル・ファイリング・コードを複数のルーチンに分割するときに、一部のケースで <UNDEFINED> エラーが発生することがありました。

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

 



カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey : DPV2275
要約 : SQL UPDATE による無効な結果の生成

説明 :

SQL UPDATE 文でデータが正しく保存されないことがあるというエラーが修正されました。このエラーは、クラスで %CacheStorage が使用されているときに、そのテーブルにおそよ 185 のフィールドがあり、そのすべてがデータ (マスタ)・マップの同じノードに格納されている場合に発生しました。

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

 



カテゴリ : SQL マネージャ
プラットフォーム : すべて
DevKey : YSD824
要約 : ライセンスを多数使用する SQL Manager の Show Plan

説明 :

今回の変更により、SQL マネージャの QueryPlan の URL に "/apps/documatic/" ではなく、"/csp/docbook/" が使用されるようになりました。前者の場合は、余分のライセンスを要することなく、CSP セッションが正しくクリーンアップされます。

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

 



カテゴリ : SQL マネージャ
プラットフォーム : すべて
DevKey : YSD834
要約 : SELECTIVITY に関する表示の問題

説明 :

今回の変更により、SELECTIVITY に関する問題が修正されました。変更前は、特定の状況でテーブルを切り替えると、プロパティが正しく示されないことがありました。現在は、テーブル・フィールドをロード後に、選択ボックスおよびラベルが NULL に設定されます。これらの 2 つのフィールドは、ユーザが任意の行をクリックすると入力されます。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : CDS589
要約 : <ROUTINE TOO BIG TO SAVE> 後の不正なオブジェクト・コードの防止

説明 :

今回の変更により、<ROUTINE TOO BIG TO SAVE> エラーを受け取ったルーチンの実行を試行したときに起こりうるアクセス違反が修正されました。

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

 



カテゴリ : システム
プラットフォーム : OpenVMS
DevKey : HYY973
要約 : OpenVMS システム上の起動ジョブに対する適切な OS ディレクトリの送信

説明 :

今回の変更により、OpenVMS システム上の Caché でオプションの SwitchOSdir=1 が設定されている場合に、ユーザ・ログイン・プロセスの OS ディレクトリが起動ジョブに渡されないという問題が修正されました。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : HYY974
要約 : ジョブ起動ジョブに対する適切な OS ディレクトリの送信

説明 :

今回の変更により、Caché システムでオプションの SwitchOSdir=1 が設定されている場合に、ユーザ・ログイン・プロセスの OS ディレクトリがジョブ起動ジョブに渡されないという問題が修正されました。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : JLC666
要約 : 8 ビット・ロケールにおける UnicodeBig/Little 変換の修正

説明 :

8 ビット・ロケールによって使用される一部の文字セットでは、一部の文字が未定義のままになっています (CP1251 の 0x98 など)。対応する UnicodeLittle および UnicodeBig 変換では、これらの未定義文字は '?' にマップされていました。この機能では、データを失うことなく、CP1251->UnicodeLittle->CP1251 という往復のバイナリ変換を実行できませんでした。

UnicodeLittle はシャドウイングなどの一部の状況でクライアントとサーバ間の通信に使用され、それにはバイナリ・データが含まれる場合があるため、未定義文字が両方の方向でそれ自身にマップされるように、UnicodeLittle および UnicodeBig 変換が変更されました。この変更はテキスト・データには影響せず、バイナリ・データの往復変換がデータの損失なく実行可能になります。

対象の文字セットは、CP874、CP1250、CP1251、CP1252、CP1253、CP1255、LatinG、および LatinH です。


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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : JO1828
要約 : Gcompact() によるボトム・ポインタ・ブロック間のスイッチ・チェックの導入

説明 :

GCOMPACT では、グローバル間を除き、スイッチ 10 または 13 が設定されているかどうかがチェックされませんでした。そのため、GCOMPACT が実行されている場合、システムが静止するまでの待ち時間を設定された BACKUP などのアクティビティが失敗することがありました。

GCOMPACT は、グローバルを処理している間にスイッチをチェックすることで、スイッチが設定されている場合により迅速に休止するよう更新されました。


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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : JO1831
要約 : fsync からの返される状態のテストとその失敗時の対処

説明 :

エラーがある場合に正常な完了を待機する内部的な再試行ループが、UNIX プラットフォームでの fsync() 呼び出しに追加されました。fsync() は、データベース拡張時のジャーナル・ファイルへの書き込みや、データベース・ブロックを WIJ と cache.dat ファイルに書き込み UNIX バッファ・プールをディスクにフラッシュ・アウトするために UNIX で使用され、書き込み内容の一貫性を保証します。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : JO1832
要約 : writeemptyblks() への fsync() 呼び出しの追加

説明 :

UNIX システムでの 8 KB データベースに対するファイル拡張時にデータをディスクに同期するオペレーティング・システム呼び出しが強化され、特定の種類のデバイスで起こりうる問題が回避されるようになりました。今回の変更前は、この種の問題は、新しく割り当てられたブロックに対して十分なディスク領域がなかったにもかかわらず成功したとみなされた拡張の後で生じており、書き込みデーモンで生じた重大なディスク書き込みエラーとして表示されていました。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : LFT1286
要約 : 新しいポインタ・ブロックの 0 への変更の防止

説明 :

今回の変更により、新しいグローバル・ポインタ・ブロックが間違って 0 に設定されることがなくなりました。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : LRS812
要約 : Caché スタートアップ・ノードの競合の回避

説明 :

異なるネットワーク・ノード上にある Caché 構成の同時スタートアップを防止する機能が Caché に追加されました。この機能は、クラスタ・メンバのような、異なるマシンにインストールされている、同一の物理ディレクトリを共有する構成に適用されます。

今回の変更により、そのディレクトリがローカル・ノードではなく異なるノードで既に使用されている場合は、Caché の起動または停止がブロックされます。この機能では、データベースのマウントに対する保護や、マシン間の共有ファイルシステムで使用されているファイルへのアクセスに対する保護は提供されません。これらはユーザまたはアプリケーションの責任です。

ccontrol "リスト" および "すべての" コマンドが、異なるネットワーク・ノードによって使用されている構成を識別するように変更されました。

このスタートアップの競合回避メカニズムでは、スタートアップ時に cache.ids ファイルにシステム (またはノード) 名が記録されます。そのため、Caché 構成を保持する物理ファイルシステムを共有するすべてのマシンは、一意な名前を持つ必要があります。UNIX では、この名前は hostname コマンドによって返されるインターネット名ではなく、uname -n コマンドによって返されるノード名になります。前者と後者は異なるものになる場合があります。


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

 



カテゴリ : システム
プラットフォーム : Windows
DevKey : LRS821
要約 : Windows バージョンの Caché での、ジョブ・サーバに関連する COM ポート操作の修正

説明 :

今回の変更により、JOB サーバでのメモリ・リークや、JOB サーバでの既知の問題の原因となっていた COM ポート操作時のエラーが修正されました。

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

 



カテゴリ : システム
プラットフォーム : Windows、32 ビット UNIX、32 ビット Linux
DevKey : RJF028
要約 : incblksfn 配列での auint1 に代わる auint2 の使用

説明 :

今回の変更前は、257 以上のデータベースがマウントされている Caché インスタンスで Caché バックアップを実行すると、特定のデータベースのラベル・ブロックおよび増分ビットマップ・ブロックによって他のデータベースのブロックが上書きされる場合がありました。この問題は、OpenVMS と Tru64 UNIX を除くすべてのプラットフォームの Caché 5.0 に該当しました。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : RJW944
要約 : %ZSTART の実行に時間がかかった場合の、Windows スタートアップのユーザを混乱させるエラー・メッセージを削除

説明 :

^ZSTU ルーチンが長時間実行されたために Caché の起動に長時間 (10 分を超える時間) がかかった場合に、Windows イベント・ログに報告された、ユーザを混乱させる間違ったエラー・メッセージが削除されました。変更前は、以下のメッセージが報告されていました。
Cache service process creation failed, child did not return;
Cache configuration CACHE error: 997.
Cache Control Service Startup failed; Cache configuration CACHE: .
実際は Caché の起動に成功しているため、このメッセージは間違っています。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SAP231
要約 : 実行中のプロセスに左右されない Cforce による終了

説明 :

今回の変更により、コントロール・プロセスがクラッシュした場合に Caché プロセスでイベントを利用できなくなるため、Windows システムで cforce がプロセスを終了できなくなる問題が修正されました。現在は、すべてのイベントが利用不可能な場合でも、cforce はプロセスを停止します。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SAP232
要約 : ジョブの終了時に適切なアクセス権限を使用

説明 :

今回の変更により、シャットダウン時に cforce がクリーンに終了できないジョブの強制終了に失敗し、cstop または cforce の実行後もジョブが残ってしまう場合があるという問題が修正されました。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SAP238
要約 : ECP デーモンの優先度を標準的なユーザ優先度に設定

説明 :

ECP デーモンは低い優先度で実行されていました (Windows では 5、UNIX では 2)。今回の変更により、ECP デーモンは標準的なユーザ優先度で実行されるようになりました (Windows では 7、UNIX では 0)。

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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SJ1430
要約 : DCP サーバのシャットダウンおよび再起動時の DCP ロックのアップロードの問題の修正

説明 :

今回の変更により、$DATA(^global,variable) によって間違った結果が返されるエラーが修正されました。このエラーは、グローバルが新しい形式 (8 KB ブロック) のデータベースに格納されており、$DATA の 2 つの引数が未定義だが下位要素を持つトップレベルのグローバル・ノード上で使用されているときに生じました。

現在は、適切な値である 10 が返されます。変更前は 0 が返されていました。


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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SML477
要約 : DCP サーバのシャットダウンおよび再起動時の DCP ロックのアップロードの問題の修正

説明 :

DCP サーバに DCP クライアントからのロックが保持されているときに、DCP サーバがシャットダウンおよび再起動されると、クライアントからサーバへのロック情報のアップロードが失敗するため、DCP クライアント上のロックが 'Lost' ステータスになることがあります。

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


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

 



カテゴリ : システム
プラットフォーム : すべて
DevKey : SML486
要約 : ECP ロックでのロック・メモリの破壊の修正

説明 :

今回の変更により、ECP サーバ・ノードでスイッチ 10 または 13 がオンになっているとき (Caché バックアップの場合など) に ECP クライアントがサーバ・ノードをロックすると、ロック・メモリが破壊されるという問題が修正されました。以前は、子ノードが既にロックされているときに親ノードをロックしようとした場合にのみ失敗しました。

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

 



カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべて
DevKey : LRS770
要約 : $$EXTSELCT^DBREST によるファイルのスキップ時の <UNDEFINED> エラーの修正

説明 :

今回の変更により、バックアップをリストアする $$EXTSELCT^DBREST で、非インタラクティブ API の問題が修正されました。一部の状況で、ディレクトリ・リストにリストア・フラグが設定されていない (複数データベースのバックアップ・アーカイブのリストアから除外されている) データベース・エントリをスキップしようとしたときに <UNDEFINED> エラーが報告されていました。

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

 



カテゴリ : システム : シャドウイング
プラットフォーム : すべて
DevKey : HYY1011
要約 : スタートアップ時にシャドウの起動が構成されている場合の <UNDEFINED> エラーの修正

説明 :

今回の変更により、スタートアップ時にシャドウの起動が構成されている場合にスタートアップを開始すると <UNDEFINED> エラーが生じる問題が修正されました。

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

 



カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : LFT1297
要約 : %RI によるオブジェクト・コードのみのルーチンの上書き

説明 :

今回の変更により、%RI の使用時の問題が修正されました。今回の変更前は、オブジェクト・コードのみのルーチンに対して意図しない上書きが実行されることがありました。今回の変更により、[Compile?] に [YES]、[Replace?] に [NO] を指定したときに、オブジェクト・コード・バージョンのルーチンがまだ残っている場合は、ルーチンのロードが拒否されるようになりました。

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

 



カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey : LFT1313
要約 : ^mtemp ノードの誤った重複生成の防止

説明 :

今回の変更により、^mtemp インデックスが不整合になった場合に、間違ったルーチン・リストがルーチン・ユーティリティによって生成される問題が修正されました。

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

 



カテゴリ : Weblink
プラットフォーム : すべて
DevKey : CMT212
要約 : コア・イベント・ブローカー・サービスにおける例外処理および自動リカバリ・メカニズムの向上

説明 :

今回の変更により、コア・イベント・ブローカー (EB) サービスにおける例外処理メカニズムと自動リカバリ・メカニズムが向上および拡張されました。コア・イベント・ブローカー・サービスは、主にポート 7001 をリッスンする専用の TCP サービスで、EP 操作の非 HTTP モード (例えば、モード 0) で使用されます。

今回の変更は、実運用しているシステムで EB サービスが予期せず停止してしまう問題によるものです。


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

 



全般的な領域における強化
このバージョンの Caché では、不可避な問題の修正に加えて、製品の特定の領域で強化が行われています。以下に、これらの強化について領域別に要約します。
ロケール
今回リリースの Caché バージョンでは、タイ語およびアラビア語のロケールに対するサポートが追加されました。
SQL およびオブジェクトの接続性
Caché SQL およびオブジェクトに対して、数多くの変更と拡張が行われました。以下に例を示します。

Macintosh に対するサポート
今回リリースされた Caché バージョンは、Macintosh OS X 10.3 にインストールしてネイティブに実行できます。インストール・キットは、PackageMaker によって生成される標準の".dmg" ディストリビューションです。
データベース・ファイルが一杯になった場合の処理の向上
このバージョンの Caché では、データベースまたはデータベースを保持するディスク・ボリュームが一杯になった場合の状況処理に数多くの変更が加えられ、その機能が向上しています。変更内容の中で、重要なものを以下に示します。

ジャーナル・リストアの向上
今回のバージョンでは、ジャーナル・リストアがより堅牢になりました。変更内容の中で、重要なものを以下に示します。

シャドウイングのパフォーマンスの向上
このバージョンの Caché では、シャドウイングのパフォーマンスを向上させる目的で、以下のような変更が行われました。

メモ : シャドウイングに対する強化を最大限に活用するには、シャドウの実行を想定しているシステムで、Caché 構成の汎用メモリ・ヒープ・サイズを 1 CPU あたり 2 MB に増やす必要があります。1 CPU あたりのヒープ・サイズを 2 MB より大きくすると、さらにパフォーマンスが向上することもありますが、これは実運用での実際のシャドウイング量によります。
BigInt に対するサポート
BigInt データタイプに対するサポートが Caché に追加されました。このデータタイプは、-9223372036854775808 から 9223372036854775807 までの範囲の整数を表します。このサポートには、以下のものが含まれます。



ドキュメントの更新
Caché ドキュメントの内容は、編集上の改良、既存の内容の更新、新しい情報の追加など、リリースに従い改訂されています。以下は、以前のリリースから Caché ドキュメントに追加された重要な変更の概要です。

その他に、例の追加、文法や誤字脱字の修正や改善といった小規模な改訂も行っています。