|
|
|
Caché ドキュメント
|
|
Caché 5.0.21 リリース・ノート
|
ポスト・リレーショナル・データベース Caché をご利用いただき、ありがとうございます。このドキュメントでは、Caché 5.0.20 と Caché 5.0.21 の違いを説明します。
ご利用になる前に、Caché 5.0 リリース・ノート (Caché インストール・ディレクトリの Docs/GCRN/GCRN.html ファイルにある) を参照してください。以前の 5.0 メンテナンス・キットに関する詳細は、このファイルと同じディレクトリにある prenotes.htm を参照してください。
このドキュメントには、以下のセクションが含まれています。
インターシステムズでは、アップグレード・プロセスの一部としてご使用のアプリケーションを再コンパイルするようにお勧めします。これにより、今回のリリースで向上しているパフォーマンスや部分的な変更内容をすべて反映させることができます。
Caché の最新ニュース、アラート、アドバイザリ
インターシステムズは、当社のソフトウェアをお使いのユーザに対し、早急に必要となる重要な情報を随時発表しています。この中には、警告、不可避の問題点、重要な更新、修正、Caché のリリースなどがあります。
最新のリストは、インターシステムズの Web サイトから取得できます。
ユーザはこのリストを定期的にチェックし、お使いのアプリケーションの処理に関連する問題がある場合、その最新情報を確認してください。
オンライン・ドキュメント
インターシステムズは、ユーザの利便性を考慮し、当社
Web サイト で最新バージョンの Caché ドキュメントにオンライン・アクセスできます。
当社ホームページで [Caché] タブをクリックし、[製品情報] メニューの [技術資料とカタログ] を選択してください。あるいはこのリンクをたどってください。
今回の変更による影響をお使いのアプリケーションで認識するため、各変更の解説では、修正点を詳細に説明しています。
すべての変更に対し、問題発生の可能性、変更による影響、実運用しているシステムで製品が問題なく動作しているかなど、関連情報を示したテーブルがあります。テーブルでは 1 つまたは 2 つのキーワードと値のみ使用し、情報を簡単に認識できるようにしています。キーワードの意味は、以下の通りです。
- 可能性 - 該当するプラットフォームのユーザにこの問題が生じる可能性
- 危険性 - この変更がアプリケーション環境に新たな問題を誘発する可能性
- パッチ - この変更が以前にパッチとして配布され、実運用しているシステムで問題なく動作しているかどうかの有無
- 拡張性 - この変更が新機能や拡張機能を提供するかどうかの有無
- CSP
- CSP : ゲートウェイ
- CSP : タグ
- ネットワーキング : ECP
- オブジェクト
- オブジェクト : 起動
- オブジェクト : 言語バインディング
- オブジェクト : SOAP
- オブジェクト : XML
- SQL
- SQL : JDBC
- SQL : ODBC
- SQL : クエリ処理
- スタジオ
- システム
- システム : バックアップ/リストア
- システム : ジャーナリング
- システム : ロック
- システム : スタートアップ
- システム : TCP デバイス
- ユーティリティ
カテゴリ : CSP
プラットフォーム : すべて
DevKey: MAK1501
要約 : %response.Timeout が機能しない
説明 :
OnPreHTTP メソッドに '%response.Timeout' を設定しているとき、サーバによってバッファがフラッシュされませんでした。そのため、このタイムアウト値が CSP ゲートウェイに届くのが、ページ全体がフラッシュされた後になっていました。この時点では遅すぎます。
今回の変更により、Timeout の設定時にバッファがフラッシュされるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : CSP
プラットフォーム : すべて
DevKey: MAK1504
要約 : CSP ライセンスのチェックの追加
説明 :
今回の変更で、失われた CSP ライセンスを再要求する方法が組み込まれました。この再要求はまれですが、Preserve=1 の CSP セッションで、セッションがアンロックされているときに生じることがあります。この現象が生じた場合に備えて、今回のリリースの Caché には、CSP ライセンスと CSP セッションをカウントして、失われたライセンスを再要求する方法が組み込まれました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : CSP : ゲートウェイ
プラットフォーム : すべて
DevKey: CMT270
要約 : 拡張 URL 構文 (PATH_INFO による) の完全サポート
説明 :
今回の変更により、拡張 URL 構文 (PATH_INFO による) が完全にサポートされるようになりました。例えば、以下のような URL があるとします。
http://<ip address>/csp/samples/page.csp/testdir
この例では、PATH_INFO 環境変数が 'testdir' に設定されます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : CSP : ゲートウェイ
プラットフォーム : すべて
DevKey: CMT317
要約 : タイムアウトした CSP 要求のガーベッジ・コレクトで発生したタイミングの問題を修正
説明 :
今回の変更により、タイムアウトした CSP 要求のガーベッジ・コレクトで発生する可能性があったタイミングの問題が修正されました。
Caché への CSP 要求がタイムアウトになると ([サーバ応答タイムアウト] の値に基づいて)、それに対応する Caché への接続が閉じられ、関連付けられたメモリとその他のリソースが解放されます。
これまでのバージョンでは、タイムアウトした要求に関連付けられているリソースが完全に解放される前に、ゲートウェイが接続ハンドル (つまり、番号) を再利用すると問題が生じました。こうした状況では、メモリ侵害が発生して、新しい接続を使用する CSP 要求が失敗し、メッセージがイベント・ログに記録されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : CSP : タグ
プラットフォーム : すべて
DevKey: MXT750
要約 : form_save によってハイパーイベントが開始されたときに OnPreHyperEvent が呼び出されない
説明 :
今回の変更により、CSPBIND によって生成される <formname>_save および <formname>_new JavaScript メソッド内に、OnPreHyperEvent の呼び出しに必要なコードが生成されるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : ネットワーキング : ECP
プラットフォーム : すべて
DevKey: GK451
要約 : ECP サーバによる、未定義のデータベースに対する要求の無視
説明 :
一部の非常にまれな状況で、ECP クライアントが無効な (マウント解除されている) DB に対して要求を送信することがありました。今回の変更により、要求は妥当性をチェックされ、それにパスしない場合は拒否されるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト
プラットフォーム : すべて
DevKey: DLP1511
要約 : クローン オブジェクトによるロック・ステータスの非継承
説明 :
永続オブジェクトに ID が割り当てられていないときに、その同時性設定によって保持ロックの使用が指定されている場合、永続オブジェクトをクローズするとエラーが発生しました。今回の変更により、このエラーが修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト
プラットフォーム : すべて
DevKey: MAK1533
要約 : 番号付き UDLText タグのあるクラス・エクスポートでのマージの問題
説明 :
今回のリリースの Caché では、クラスを XML 形式にエクスポートするときに、UDLText の 'name' 属性の記述が省略されるようになりました。これらの属性は自動生成されたもので、それ自体に意味はありません。UDLText 名が記述された XML ファイルはこれまで通りインポートできますが、スキーマではこの属性はオプションになっています。
この変更の理由は、これらの UDLText の名前は自動生成されており、番号変更されていることが多いためです。そのため、これらの項目間に実質的な相違がないときに名前が競合するため、ソース・コントロールの使用時に問題が生じていました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : 起動
プラットフォーム : すべて
DevKey: JN340
要約 : バイナリ・ストリームにアクセスする代替方法の提供
説明 :
ストリームを返す %Activate.GenericObject のメソッドに、バイナリ・ストリームを返すメソッドが追加されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : 言語バインディング
プラットフォーム : すべて
DevKey: IYB241
要約 : ポートされた出力リダイレクションの 5.0 への修正
説明 :
今回の変更により、言語バインディング内の出力リダイレクションに関する以下の問題が修正されました。
- 出力が実行メソッド外にリダイレクトされない (今回の変更はストアド・プロシージャ内の出力リダイレクションには未対応)
- 出力リダイレクションに、注釈なしの参照を使用するときに重要な最後に参照したグローバルが保持されない
- サーバ・コードが出力リダイレクションの前に明示的な new を実行しない場合は、コンテキストが失われ、その出力が正しくリダイレクトされない
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : 言語バインディング
プラットフォーム : すべて
DevKey: JSL1231
要約 : Java バインディングで新しいコレクションの使用を有効化/無効化する newcollections フラグ
説明 :
$system.OBJ.ExportJava ルーチンおよび ##class(%Compiler.LG).ExportJava ルーチンに実装された最後のフラグによって、新しいコレクションの使用を指定できるようになりました。
また、投影パラメータとして NEWCOLLECTIONS が組み込まれました。フラグは "/newcollections" です。
- /newcollections と /newcollections=1 は、新しいコレクションを有効化します。
- /newcollections=0 は、新しいコレクションを無効化します。
以下に、newcollections フラグを使用して ExportJava を呼び出す例を示します。
zn "USER"
s Status=$system.OBJ.ExportJava("ISC.TestCollections",
"c:\perforce\users\levinson\TestCollections",
"/newcollections")
i 'Status d DecomposeStatus^%apiOBJ(Status,.Err) w !,Err(Err) ;'
w !,"Status="_Status
"newcollections" が設定されているとき、コレクション型が list のプロパティは java.util.List 型の戻り値を持ち、コレクション型が array のプロパティは java.util.Map型の戻り値を持ちます。これらの型は、JAVATYPE で戻り値型を指定することでそれぞれ上書きできます。
NEWCOLLECTIONS が設定されているとき、コレクション・プロパティは java.util.Map (配列の場合) および Java.util.List (リストの場合) として投影されます。NEWCOLLECTIONS がゼロ (既定) のとき、コレクション・プロパティは以下のように投影されます。
- ArrayOfDataTypes (データ型の配列の場合)
- ArrayOfObjects (オブジェクトの配列の場合)
- ListOfDataTypes (データ型のリストの場合)
- ListOfObjects (オブジェクトのリストの場合)
Java コードからこれらを利用する際は、コーディング・パラダイムが異なります。
以下は、NEWCOLLECTIONS が 1 に設定されているときに、文字列のリストにアクセスするコード例です。.
/* Iterate over the FavoriteColors collection */
colors = person.getFavoriteColors();
for (r = 0; r < colors.size(); r++) {
System.out.println(" Element #" + r + " -> " + colors.get(r));
}
System.out.println( "Modifying 'FavoriteColors' ..." );
/* Remove the first element */
if (colors.size() > 0)
colors.remove(0);
/* Insert a new element */
colors.add("Red");
/* Show the changes to the collection */
colors = person.getFavoriteColors();
for (r = 0; r < colors.size(); r++) {
System.out.println(" Element #" + r + " -> " + colors.get(r));
}
System.out.println("Dumping favorite colors should be red");
i = person.getFavoriteColors().iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
5.0.X では、投影の既定動作は古いコレクションです。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : SOAP
プラットフォーム : すべて
DevKey: MXT719
要約 : 空白のみのフィールドを処理するように %XML.DataSet を修正
説明 :
%XML.DataSet にあるバグが原因で、すべての空白文字列フィールドがエラーとして報告されました。今回の変更により、すべての空白値が正しく返されるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: JN246
要約 : 空白の保持を可能にする %XML.TextReader の新しいフラグ
説明 :
要素内容に対して空白の保持を制御したいという要望が数多く寄せられていました。現在、TextReader は既定で、先頭と末尾の空白を削除します。パラメータ (KeepWhiteSpace) が %XML.TextReader の ParseXXX メソッドに追加されており、それにブーリアン値 1 を指定することで、空白を保持できるようになりました。既定は 0 です。後方互換性を保持する目的で、空白の削除します。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
あり |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: JN252
要約 : %XML.TextReader.Rewind() が Path プロパティをクリアしない
説明 :
%TextReader には、XML ソースを解析し、SQL のカーソルと同じように、そのノード・リストを使用してナビゲートする機能が組み込まれています。リーダ・オブジェクトに Path という名前のプロパティがあり、そこに現行ノードの階層的な入れ子構造を表す文字列が保持されます。例えば、以下のような構造の XML があるとします。
カーソルが <c/> ノードにあるとき、Path は文字列 "/a/b/c" になります。
Rewind() メソッドは、リストの最初のノードにカーソルを返します。Rewind には Path プロパティがクリアされないというエラーがあり、<c/> ノードに再度ナビゲートすると、Path が /a/b/c/a/b/c のようになっていました。
今回の修正により、Rewind の実行時に Path プロパティが "" にクリアされるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: MAK1529
要約 : ファイル・サイズが大きいと、XML からのバイナリ・ファイルのインポート結果が不正確になる場合がある
説明 :
サイズの大きな (32 KB を越える) バイナリ・ファイルを含む XML ファイルをインポートすると、base64 デコード・ロジックが失敗し、無効なファイルが作成されることがありました。今回の変更により、これらのファイルが正確にインポートされるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: MAK1565
要約 : グローバルの・NULL 文字を XML 形式にエクスポートできない
説明 :
エラーによって、$c(0) 文字が含まれるグローバルを XML にエクスポートできませんでした。今回の変更により、この文字が検出されると、そのデータが base64 エンコードされるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: MXT723
要約 : ピリオド (.) を含む wsdl:service 名または wsdl:port 名の処理
説明 :
SOAP クライアント・ウィザードは、wsdl:service 要素と wsdl:port 要素の名前属性を結合して、Web クライアント・クラスの名前を構築します。今回の変更により、ピリオド (.) によって構成される名前部分が数値のときなど、他に有効化する方法がない場合、そのクラス名の結合が有効になりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: MXT724
要約 : VALUELIST スキーマ・エクスポートで引用付き文字がサポートされない
説明 :
今回の変更により、xs:string 型の要素に対してスキーマを記述するときに、%String VALUELIST に対応する列挙値属性がエスケープされるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: MXT725
要約 : XMLExport() 後の %XML.DataSet のリワインド
説明 :
今回の修正により、%XML.DataSet が XML インポートによって作成されている場合、または SOAP Web サービスへ入力する場合、アプリケーションで %XML.DataSet の先頭にリワインドできるようになりました。リワインドは、%XML.DataSet の新しいメソッドの ResetXML を呼び出すことで実行できます。
%XML.DataSet がクエリによって移入されている場合は、クエリから作成された結果セットの先頭には戻れないため、リワインドは実行できません。
エクスポートの完了後に、XMLExport メソッド (%XML.Writer によって内部的に呼び出されたときも) から ResetXML を呼び出します。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべて
DevKey: MXT738
要約 : XML サポートが複数のネームスペース間の継承を処理しない
説明 :
要素には、常に、その要素が定義されているクラスの NAMESPACE パラメータによって指定されたネームスペースが関連付けられます。要素は、プロパティを継承し異なる NAMESPACE パラメータを持つクラスによって投影されるときでも同じ XML ネームスペースを維持します。
スーパークラスに NAMESPACE パラメータが定義されておらず、サブクラスに定義されている場合、スーパークラスから継承されたサブクラスのプロパティは、サブクラスによって指定された NAMESPACE を持つものと判断されます。これは、プロパティの XML ネームスペースに対して適用される一種の逆継承です。
NAMESPACE パラメータの継承は標準の継承規則に従います。したがって、NAMESPACE パラメータを持たないサブクラスは、継承した XML ネームスペースによって定義されると判断されます。
NAMESPACE パラメータに関する上記の規則は、ELEMENTQUALIFIED パラメータにも適用されます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべて
DevKey: BJB300
要約 : 添え字なしクラスでの gunlock2 構文エラー
説明 :
CacheSQLStorage を持ち、添え字を持たないクラスがある場合、Caché は、Table ルーチンの gunlock2 プロシージャに不正なコード行を生成します。この問題は、修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべて
DevKey: DPV2299
要約 : DATEADD/DATEDIFF プリプロセッサでのミリ秒のエラー
説明 :
以下のクエリでコンパイル時に SQLCODE=8 エラーが間違って発生するバグが修正されました。
SET x=$ZTIMESTAMP
&sql(SELECT DISTINCT DATEADD('ms',10,:x)
INTO :a
FROM Sample.Person)
WRITE a
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべて
DevKey: DPV2463
要約 : 間違ったデータ型を返すサブクエリ
説明 :
SELECT 節のサブクエリが、LogicalToOdbc または LogicalToDisplay が適用されるべき値に対して、Logical 値を出力として返していた問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべて
DevKey: DPV2482
要約 : 計算されたフィールドと選択
説明 :
CALCSELECTIVITY という名前の新しいプロパティ・パラメータがあります。このパラメータの既定値は 1 (真) です。
テーブルを TuneTable によってチューニングするとき、対応する CALCSELECTIVITY のプロパティ・パラメータ値が 1 の場合にのみ、フィールドに対する選択が計算されます。
TuneTable でプロパティ/フィールドに対する選択を計算しない場合は、プロパティ・パラメータの CALCSELECTIVITY を 0 に設定してください。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
あり |
カテゴリ : SQL
プラットフォーム : すべて
DevKey: DPV2498
要約 : キャッシュ・クエリの定義時のジャーナリングの無効化
説明 :
キャッシュ・クエリに対する変更がジャーナルされないように変更されました。今回の変更により、トランザクション中に発生するキャッシュ・クエリの変更がジャーナルに記録されず、キャッシュ・クエリの変更がシャドウイングによってシステムに適用されなくなります。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべて
DevKey: DPV2511
要約 : 外部キーの使用時のエラー
説明 :
自己参照の外部キーを持つテーブルで行を挿入または更新するときに、挿入または更新対象の行を参照する行があり、その外部キー・フィールドが必須の場合、処理が失敗しエラーとなる問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : JDBC
プラットフォーム : すべて
DevKey: JMM043
要約 : JDBC プリパーサの修正による、関数引数内の括弧で囲まれたサブ式の許可
説明 :
今回の変更により、以下のようなクエリで生じていた問題が修正されました。
String sSQL3 = "SELECT {fn CONVERT (i1 + (i2 * 10), SQL_INTEGER)}
AS myval
FROM test1
WHERE (i1 IN (?, (30)+1, ?))";
このクエリはプリパーサ・エラーとなりました。理由は、"オプション・リスト" 内に記述する数値演算の運用規則によって、括弧で囲まれたサブ式を含む数値演算式が許可されなかったためです。この問題は、数値演算が関数引数として記述されている場合、または "IN(...)" 述部内に記述されている場合に生じました。
数値オペランドに対するパーサの運用規則が変更され、括弧で囲まれた式が許可されるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : JDBC
プラットフォーム : すべて
DevKey: MAB425
要約 : JDBC プリパーサによる FN 引数としての集約の処理
説明 :
JDBC プリパーサで、以下のような FN 引数としての集約を処理できるようになりました。
{fn CONVERT(AVG(fINT2) ,SQL_INTEGER)}.
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : ODBC
プラットフォーム : すべて
DevKey: AND706
要約 : ODBC での切断時のキャッシュ・クエリのクリア
説明 :
接続の切断後に、その接続に関連付けられていたキャッシュ・クエリが誤って保持されていました。この問題は、修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : SQL : JDBC
プラットフォーム : すべて
DevKey: MAB428
要約 : 入れ子になった括弧での JDBC プリパーサの失敗
説明 :
IN 構文に入れ子になった括弧が使用されていると、JDBC 事前解析で例外が発生しました。今回の変更により、このエラーが修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : ODBC
プラットフォーム : すべて
DevKey: JCN579
要約 : UnicodeToUTF8String に対するバッファ計算の修正
説明 :
今回の変更により、長さが 32 KB を越える Unicode ストリームを送信する際に必要となるバッファ・サイズが正しく計算されるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : ODBC
プラットフォーム : すべて
DevKey: JCN581
要約 : SQL 文での NULL 値の許可
説明 :
今回の変更により、一部のサード・パーティ・ツールで S-JIS テキストを使用するときに発生したエラーが修正されました。この現象の徴候は、SQL 文でバイナリ・データを挿入できないことです。今回の修正は S-JIS で発生した問題を回避するための代替策で、これによって NULL 値を挿入しても SQL 文が不適切に早期終了されることもなくなります。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : ODBC
プラットフォーム : すべて
DevKey: JCN592
要約 : SQLGetData での例外の発生
説明 :
SQLGetData を使用してデータをフェッチすると、CacheODBC ドライバによって、必要以上のデータがサーバから自動的にフェッチされます。この現象が生じたとき、データの一部の列は元のメッセージ内にあり、残りの行は新しくフェッチされたメッセージ内にあります。このメカニズムは、最後の SQLGetData 呼び出しよりも前のデータ列をフェッチする SQLGetData をアプリケーションが呼び出さない限り正しく機能します。この SQLGetData を呼び出した場合は、処理例外が発生しました。
今回の変更により、この状況は修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey: AK572
要約 : UNION のサブクエリの幅が同じであることのチェック
説明 :
今回の変更により、2 つのサブクエリ間の UNION で SELECT リストの長さが異なる場合、以下のようにレポートされるようになりました。
SQL error #9: Incompatible SELECT lists used in UNION
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : クエリ処理
プラットフォーム : すべて
DevKey: PVA081
要約 : SQL エラー #94 の間違った報告
説明 :
ODBC、JDBC、またはダイナミック SQL の使用時にエラー 94 (サポートされない外部結合の使用) が間違って返されるバグが修正されました。クエリは組み込み SQL を使用して動作しました。以下のような状況です。
<view or FROM clause subquery> L
LEFT JOIN <something> R
ON L.y = R.a
LEFT JOIN <something else> S
ON L.x = S.b
このとき、L.x は式または集約であるビューまたはサブクエリ列を参照しています。ビューまたはサブクエリは、集約、GROUP BY、または DISTINCT を持つ必要があることに注意してください。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべて
DevKey: MAK1252
要約 : ロックできないルーチンのコンパイルの不許可
説明 :
スタジオでルーチンの test.MAC が編集目的でオープンされているとき、2 人目のユーザも test.MAC をオープンできました。
また、どちらかがルーチンを変更していない限り、両者がコンパイルできました。
しかし、これは、1 人のユーザがこのルーチンに対して作業中であることから (つまり、ルーチンに対するロックを保持している)、不適切です。今回の変更により、2 人目のユーザが、このルーチンに対するロックをコンパイル前に取得して、ルーチンをコンパイルできなくなりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべて
DevKey: MAK1451
要約 : クラスに対するチェックアウトを元に戻すと、スタジオ・ドキュメントが読み取り専用として再マークされない
説明 :
ユーザがスタジオからクラスに対するチェックアウトを元に戻したとき、そのドキュメントは読み取り専用としてマークされませんでした。そのため、クラスがチェックアウトされていない場合でも、ユーザはそのクラスに対する編集を続行できました。今回のリリースで、この問題は修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべて
DevKey: MAK1496
要約 : XML インポートでテンポラリ・グローバル構造がクリアされない
説明 :
XML インポートでクラスをインポート後、そのクラスが別のプロセスによって既にインスタンス化されている場合などに、クラスのロックに失敗することがありました。この場合は、XML インポートで作成されたテンポラリ・グローバル構造が削除されません。これは、次回のグローバル・インポート時に、そのデータが既存のグローバルにマージされ、両方のクラスのメソッド/プロパティを結合したクラスが作成されることを意味します。
今回のリリースで、この問題は修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべて
DevKey: MAK997
要約 : スタジオでのマップされたルーチンのロックの失敗
説明 :
ユーザ添え字が Caché のグローバルをマップして、添え字マップされたノードの 1 つをロックするとき、そのロックはグローバル・データと同じマッピングに従いません。
別のネームスペースからマップされているルーチンの場合、スタジオはそのルーチンをアクセス元のネームスペースでロックしていました。そのため、1 つ以上のネームスペースから同じルーチンに対するロックを取得できました。
今回のリリースのスタジオでは、ロックを取得する前に、そのデータがこの添え字ノードに対して存在している場所を判別するようになりました。したがって、ルーチンが USER から SAMPLES にマップされている場合は、スタジオが実行されているネームスペースに関係なく、USER でロックが取得されます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべて
DevKey: CDS692
要約 : 記号テーブル・コードでのメモリ侵害の除去
説明 :
記号テーブルの操作時に、テーブルの終端を越えて余分なバイトが読み取られることがありました。その次のバイトが未割り当てのメモリ・ブロックにあった場合は、メモリ・アクセス侵害となっていました。今回の変更により、システムが修正されて余分なバイトが読み取りされなくなりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : OpenVMS
DevKey: JLC752
要約 : AlphaVMS における C 最適化問題への対応
説明 :
今回の変更により、Alpha OpenVMS システムにおいて C コンパイラの最適化フェースで生じていた、一部の状況下で新規プロセスのジョブ処理時にアクセス侵害となる問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : USPARC
DevKey: JLC789
要約 : USPARC での書き込みデーモンの停止の修正
説明 :
今回の変更により、UltraSPARC 64 ビット用の Caché において、一部の状況下で書き込みデーモンが停止する問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべて
DevKey: JO1895
要約 : $System.ExternalFreeze/ExternalThaw を JO1798 (スイッチ 21) で動作するように修正
説明 :
$SYSTEM.Backup.ExternalFreeze() と $SYSTEM.Backup.ExternalThaw() が拡張され、クラスタ環境でのロック・タイムアウトの一時停止/有効化を正しく管理できるようになりました。
クラスタでバックアップの実行が一時停止されると、ロック・コマンドに対するタイムアウトが一時停止されます。クラスタが再開されると、タイムアウトのカウント・ダウンが再開されます。
これまでは、$SYSTEM.Backup.ExternalFreeze() によって一時停止されたタイムアウトが、$SYSTEM.Backup.ExternalThaw() によって再有効化されないという問題がありました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべて
DevKey: LRS707
要約 : Windows で HALT 時に生じたプロセス停止の修正
説明 :
まれなケースですが、Windows システムで HALT 時に Caché プロセスが停止することがあった問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべて
DevKey: LRS978
要約 : UNIX でのメッセージ・ブロードキャストおよび欠落シグナルの修正
説明 :
ブロードキャスト・メッセージを別のプロセスに送信するときに生じることがあった停止または障害が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべて
DevKey: SJ1426
要約 : 多数の異なるアクティブなクラスを許可し、プロセス・テーブルから非アクティブのクラスを解放する
説明 :
今回の変更により、プロセスで一度により多くの異なるクラスをアクティブにすると共に、プロセスでアクティブに使用されていないクラスをより効率的に処理できるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべて
DevKey: SML547
要約 : Caché ダンプでの pmmax[] の正しいサイズの使用
説明 :
今回の変更前は、以前のバージョンの cache.dmp は、5.1 バージョンの cstat では解析できませんでした。また、以前のバージョンの Caché の cstat では、Caché 5.1 のダンプを解析できませんでした。今回の変更により、両方のシステムで解析が可能になりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべて
DevKey: JO1815
要約 : $SYSTEM.Backup.ExternalFreeze と $SYSTEM.Backup.ExternalThaw メソッドの追加
説明 :
Caché の外部バックアップを実行するためにシステムを一時停止するメソッド・セットが新しく追加されました。これらのメソッドは、特定の時点でのオープン・ファイルのバックアップを可能にする、ディスク・ミラーの分割やスナップショットの作成などの技術と共に使用する目的で設計されています。
追加されたメソッドは $SYSTEM.Backup.ExternalFreeze() と $SYSTEM.Backup.ExternalThaw() であり、ENQ13^DBACK と DEQ13^DBACK を呼び出す既存の技術に置き換わります。
これらのメソッドは、外部バックアップの中の 1 つのリストアと連携してジャーナルのリストアに必要なジャーナル情報を生成するため、クラスタで使用する必要があります。非クラスタ・システムでは、スイッチ 13 を使用してシステムが一時停止されないため、^DBACK でエントリ・ポイントを使用する方法よりも推奨されます。正確には、新しいメソッドは書き込みデーモンがディスクに書き込むのを停止する技術を使用しています。ユーザ・ジョブは、作業を完了するのに十分な空きグローバル・バッファがある限り、実行が継続されます。
これらのメソッドの引数の詳細は、Caché クラス・リファレンス を参照してください。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべて
DevKey: JO1881
要約 : バックアップ・リストアでの同じファイルの 2 度使用の不許可、複数のフルバックアップのリストアの不許可
説明 :
Caché バックアップ・リストアで、1 つのフルバックアップが、リストア時の最初のバックアップとして以外はリストアできなくなりました。これまでは、1 つの DBREST セッションで複数のフルバックアップをリストアできました。それが原因で、以降のジャーナル・リストア時に問題が生じていました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : バックアップ/リストア
プラットフォーム : OpenVMS
DevKey: LRS752
要約 : バックアップ・アーカイブの共有による同時リストアの実現
説明 :
Caché のバックアップ/リストア・メカニズムが拡張され、OpenVMS で複数の構成による、同じバックアップ・アーカイブ・ファイルの同時リストアが可能になりました。
メモ : 対象となるすべての構成にこの変更を適用し、アーカイブ・ファイルの共有を許可する必要があります。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべて
DevKey: RJF038
要約 : バックアップ・リストに無効なディレクトリが指定されたときの警告表示
説明 :
ユーザが無効なディレクトリをバックアップ・リストに追加した場合、^BACKUP ユーティリティによって警告されるようになりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : ジャーナリング
プラットフォーム : すべて
DevKey: HYY1140
要約 : ファイル・パスが長すぎるときに $zu(78,22,file) で生じるアクセス違反の修正
説明 :
今回の変更により、Caché の制限 (64 文字) を越えるジャーナル・ファイル・パスが指定されたときに生じていたアクセス違反 (またはコアダンプ) の問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : ジャーナリング
プラットフォーム : 1
DevKey: HYY1173
要約 : クラスタ・ジャーナル・シーケンスの順序不整合問題の修正
説明 :
今回の変更により、スレーブ・ノード上のジャーナル・レコードのクラスタ・シーケンスが順序不整合になる (つまり、より前のレコードのシーケンスがより後のレコードのシーケンスよりも高くなる) 問題が修正されました。
この問題は、スレーブがクラスタ・マウントされたデータベース内のグローバルに対して $increment() を発行したときに、何らかの理由で $increment() がマスタ上でジャーナルされない場合に生じる可能性があります。1 つの例は、クラスタのネットワーク・タイプが ECP のときに、スレーブ上で $increment() を発行したプロセスでジャーナリングが無効化されている場合です。結果として、影響を受けるジャーナル・ファイルが、クラスタ・ジャーナル・リストアまたはシャドウイングにおいて適切にジャーナリング解除されないおそれがあります。
今回の変更により、クラスタ・マウントされたデータベース (スレーブからリダイレクトされた、またはマスタ上で開始された) に関連する $increment() は、それがマスタ上でジャーナルされているかどうかに関係なく、クラスタ・ジャーナル・シーケンスのマスタ・コピーを必ずバンピングするようになりました。これまでは、クラスタ・ジャーナル・シーケンスのマスタ・コピーは、$increment() がマスタでジャーナルされていない限りバンピングされませんでした。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : ロック
プラットフォーム : OpenVMS
DevKey: SML634
要約 : ロック・メモリの破壊の修正
説明 :
今回の変更により、OpenVMS でロック・メモリが破壊されることがあった問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : システム : ロック
プラットフォーム : OpenVMS
DevKey: SML635
要約 : タイムアウトによる ECP のロック解除が時間経過しなくなる
説明 :
今回の変更により、OpenVMS 上の ECP クライアントでロック・タイムアウトの期限待ちが時間経過しなくなるという状況が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : システム : スタートアップ
プラットフォーム : すべて
DevKey: SAP112
要約 : -cd (シングル・ユーザ、読み取り専用) での Caché の起動による startup.last の上書き
説明 :
シングル・ユーザの読み取り専用モード (cache -cd) で Caché を起動しても、startup.last が上書きされなくなりました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : TCP デバイス
プラットフォーム : すべて
DevKey: SML617
要約 : 2 つの TCP デバイスが異なる変換テーブルを使用するときの CPU ループの修正
説明 :
TCP デバイス間で異なる変換テーブルを使用すると、ジョブが短い TCP ループで停止することがありました。この問題は、修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey: LFT1155
要約 : 出力ファイルをオープンできない場合の Silent^Integrity のスタック
説明 :
ログ・ファイルにアクセスできない場合、Silent^Integrity が処理を継続できませんでした。この問題は、修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey: LFT1317
要約 : 整合性チェックのエラー処理でファイルがクローズされない
説明 :
今回の変更により、エラーが発生したときに Silent^Integrity がファイルをオープンしたままにしてしまう問題が修正されました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : ユーティリティ
プラットフォーム : すべて
DevKey: LFT1387
要約 : ビットマップの一貫性に対する整合性チェック
説明 :
今回の変更により ^Integrity が拡張され、データベース・エラーの原因となるマップ・ブロックで不整合をチェックできるようになりました。この変更はレガシ・データベースには適用されません。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |