|
|
|
Caché ドキュメント
|
|
Caché 5.0.9 リリース・ノート
|
ポスト・リレーショナル・データベース Caché をご利用いただき、ありがとうございます。 このドキュメントでは、
Caché 5.0.8 と
Caché 5.0.9 の違いを説明します。
開始する前に、Caché 5.0 リリース・ノート (Docs/GCRN/GCRN.html ファイルの Caché インストール・ディレクトリに存在する) を参照してください。以前の 5.0 メンテナンス・キットに関する詳細は、このファイルと同じディレクトリにある prenotes.htm を参照してください。
このドキュメントには、以下のセクションが含まれています。
Caché の最新ニュース、アラート、アドバイザリ
インターシステムズは、必要に応じて、当社のソフトウェアをお使いのユーザに対し、早急に必要となる重要な情報を発表しています。この中には、警告、不可避の問題点、重要な更新、修正、Caché のリリースなどがあります。
最新のリストは、インターシステムズの Web サイト から取得できます。
ユーザはこのリストを定期的にチェックし、お使いのアプリケーションの処理に関連する問題がある場合、その最新情報を確認してください。
新規にサポートされるプラットフォーム
今回リリースの Caché バージョンから、以下のプラットフォームが新規にサポートされます。
- Windows Server 2003 for 64-Bit Itanium-Based Systems
オンライン・ドキュメント
インターシステムズは、ユーザの利便性を考慮し、当社
Web サイト で最新バージョンの Caché ドキュメントにオンライン・アクセスできます。
当社ホームページで [Caché] タブをクリックし、[製品情報] メニューの [技術資料とカタログ] を選択してください。
今回の変更による影響をお使いのアプリケーションで認識するため、各変更の解説では、修正点を詳細に説明しています。
すべての変更に対し、問題発生の可能性、変更による影響、実運用しているシステムで製品が問題なく動作しているかなど、関連情報を示した表があります。表では 1 つまたは 2 つのキーワードと値のみ使用し、情報を簡単に認識できるようにしています。キーワードの意味は、以下の通りです。
- 可能性 - 該当するプラットフォームのユーザにこの問題が生じる可能性
- 危険性 - この変更がアプリケーション環境に新たな問題を誘発する可能性
- パッチ - この変更が以前にパッチとして配布され、実運用しているシステムで問題なく動作しているかどうかの有無
- 拡張性 - この変更が新機能や拡張機能を提供するかの有無
- 構成マネージャ
- CSP
- 言語
- オブジェクト
- オブジェクト : ActiveX
- オブジェクト : ライブラリ
- オブジェクト : SOAP
- オブジェクト : ストレージ
- オブジェクト : XML
- SQL
- SQL : JDBC
- SQL : クエリ処理
- スタジオ
- システム
- システム : バックアップ/リストア
- システム : 入出力
- システム : ロック
- システム : スタートアップ
カテゴリ : 構成マネージャ
プラットフォーム : すべてのプラットフォーム
DevKey : CFL962
要約 : JournalZGlob の修正
説明 :
今回の変更により、構成マネージャが JournalZGlob パラメータに不正な値を設定する問題を修正しています。 これは、"Z" あるいは "z" で始まるグローバルが、ユーザの意図に反してジャーナルされない原因となっていました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : CSP
プラットフォーム : すべてのプラットフォーム
DevKey : MAK649
要約 : CSP セッションの終了後、指定されたユーザ・ライセンスが正しくディクリメントされない
説明 :
新規に指定されたユーザ・ライセンスと '%session.EndSession=1' を使用して CSP ページにログインした場合、最新の CSP セッションのライセンスが解放されませんでした。 この問題は修正されています。CSP セッションに指定されたユーザ・ライセンスは、そのセッションの終了直後、正しくディクリメントされます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : 言語
プラットフォーム : すべてのプラットフォーム
DevKey : CDS423
要約 : プロシージャの最後に常に QUIT を生成
説明 :
特定の状況で、ObjectScript コンパイラは、プロシージャの最後に不正なオブジェクト・コードを生成しました。 これにより、プロシージャの最後で、<SYSTEM> あるいは <NO CURRENT OBJECT> などさまざまなエラーを生じることがありました。
この現象は、以下のすべての状況が重なった場合にのみ生じました。
- プロシージャが IF 文で終了
- IF 文の最後のコマンドが QUIT
- プロシージャの最終行に以下をすべて含む
- QUIT
- IF をクローズする括弧
- プロシージャをクローズする括弧
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト
プラットフォーム : すべてのプラットフォーム
DevKey : MAK760
要約 : タイムアウトになった FtpSession オブジェクトの Connected プロパティが True (1)
説明 :
FTP 接続がタイムアウトになっても、%Net.FtpSession オブジェクトの Connected プロパティが True (1) 設定のままでした。 今回の修正により、False (0) に正しくリセットされます。
| 可能性 |
中 |
| 危険性 |
低 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : オブジェクト : ActiveX
プラットフォーム : Windows
DevKey : JN133
要約 :
説明 : CacheObject (ActiveX) の Delphi クライアントで可能になった Callback 機能
Delphi には、'Text' プロパティをもつ 編集/テキスト・ボックス・ウィンドウがあります。 このウィンドウは、OLE オートメーションをサポートしていないため、CacheObject.Factory の SetOutput() メソッドは、このウィンドウにアクセスできません。
DelphiCallback は新しいコンポーネントです。 ActiveX コントロールであるため、ビジュアルのプログラミング環境形式に置くことができます。 このコンポーネントを使用するには、CacheObject.Factory.SetOutput() メソッドを呼び出し、DelphiCallback コントロールの名前で渡します。 コントロールは実行時には見えませんが、Text プロパティの設定時に 'TextChanged' イベントを生じます。 このイベントは、Caché から出力されるテキストを受け取ります。
メモ : DelphiCallback コンポーネントは、Delphi 7 以前のバージョンで使用してください。 Delphi 8 は、ネイティブな .NET コンポーネントを使用し、既存の CacheObject.Factory.SetOutput() メソッドをサポートします。
Delphi 7 で callback を使用する方法
- Delphi 7 の Windows フォーム・プロジェクトを生成します。
- [プロジェクト] メニューから [タイプライブラリの取り込み] を選択します。 リストをスクロールして [CacheObject] を選択します。[インストール] ボタンをクリックし、プロンプトに従います。
- [コンポーネント] メニューから [ActiveX コントロールの取り込み] を選択します。 リストをスクロールし、[DelphiCallback] を選択します。 [インストール] ボタンをクリックし、プロンプトに従います。
- TEdit ボックス、TButton、TCallback、その他任意のコンポーネントをフォームに追加します。
- フォームをダブルクリックし、フォームの作成やボタン用のコードを入力します。
- [TCallback] をクリックします。 [オブジェクト・インスペクタ] ウィンドウから [イベント] を選択し、[OnTextChange] にイベントを作成します。 これにより、callback を TEdit ボックスに結合します。
以下は、TForm1 フォームの Edit1 テキストボックスに設定した TextChanged という OnTextChange イベントのサンプル・コードです。 太字 のテキストは、Delphi から生成されたコードに追加されたコードです。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, OleCtrls, DELPHICALLBACKLib_TLB,
StdCtrls, CacheObject_TLB;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Callback1: TCallback;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure TextChanged(ASender: TObject; const p_bstrText: WideString);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Factory : IFactory;
Connected : Boolean;
ConnectString : string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
Dispatch: IDispatch;
begin
Factory := CoFactory.Create;
ConnectString := Factory.ConnectDlg('Connect to Cache');
Connected := Factory.Connect(ConnectString);
If Connected = False Then
Begin
ShowMessage('Could Not Connect');
End
else
Begin
Dispatch := Callback1.DefaultInterface;
Factory.SetOutput(Dispatch);
End
end;
procedure TForm1.Button1Click(Sender: TObject);
var Person: Variant;
begin
Person := Factory.New('Sample.Person', 1);
If VarIsNull(Person) or VarIsClear(Person) then
Begin
ShowMessage('Could not create person');
End
Else
Begin
Person.Name := 'Test Person';
Person.PrintPerson;
End
end;
procedure TForm1.TextChanged(ASender: TObject; const p_bstrText:
WideString);
begin
Edit1.Text := Edit1.Text + p_bstrText;
end;
end.
VB での使用法
- VB で新規に標準 EXE を生成します。
- [プロジェクト] メニューから [コンポーネント] を選択します。 リストをスクロールし、[DelphiCallback 1.0 Type Library] の横にチェックをつけます。 これにより、[コンポーネント] タブに [コンポーネント] が追加されます。
- [プロジェクト] メニューから [参照設定] を選択します。 リストをスクロールし、[CacheObject] の横にチェックをつけます。
- TextBox、Callback (上記の過程で追加)、その他任意のコントロールをフォームに追加します。
- Textbox のテキストを Callback に結合します。 Callback オブジェクトをダブルクリックします。 TextChanged メソッドで、希望のテキストを設定します。 SetOutput() メソッドからの出力は、このメソッドに渡される文字列に組み込まれます。
以下は、Text1 テキストボックスと Command1 コマンド・ボタンのコードです。
Private Sub Callback1_TextChanged(ByVal p_bstrText As String)
Text1.Text = Text1.Text & p_bstrText ' Add the Text to the TextBox
End Sub
Private Sub Command1_Click()
Dim F As New CacheObject.Factory
Dim C As String
Dim P As Object
C = F.ConnectDlg("Connect Me to the Samples Namespace Please")
If F.Connect(C) = False Then
Exit Sub
End If
F.SetOutput Callback1 ' Hook up the Callback Control to CacheObject Factory
Set P = F.New("Sample.Person")
P.Name = "Jamie"
P.PrintPerson ' Output should appear in the TextBox
End Sub
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
あり |
カテゴリ : オブジェクト : ライブラリ
プラットフォーム : すべてのプラットフォーム
DevKey : DLP1254
要約 : %String の IsValid ジェネレータで MAXLEN パラメータの妥当性検証
説明 :
%String MAXLEN パラメータは必ず正数です。 従来のバージョンでは、MAXLEN の妥当性をチェックしませんでした。 今回の変更により、このクラスの不具合を修正しています。
| 可能性 |
低 |
| 危険性 |
中 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : ライブラリ
プラットフォーム : すべてのプラットフォーム
DevKey : MAK797
要約 : PASV/非PASV でのファイル転送をサポートするよう %Net.FtpSession を強化
説明 :
%Net.FtpSession から提供される FTP クライアントは、現在、データ転送用の PASV/非 PASV の両方のモードをサポートします。 既定の PASV モードを変更するには、UsePASV プロパティを 0 に設定してください。
ChangeUser メソッドを使用し、現在ログインしているユーザを変更できます。
パターンがない場合に LIST とスペース文字を送信すると、問題が生じました。 この問題は、修正されています。
| 可能性 |
低 |
| 危険性 |
高 |
| パッチ |
あり |
| 拡張性 |
あり |
カテゴリ : オブジェクト : ライブラリ
プラットフォーム : すべてのプラットフォーム
DevKey : MAK877
要約 : リレーションシップ・オブジェクトが、切断された項目を正確に追跡しない
説明 :
Remove メソッドを使用してリレーションシップから項目を削除し、同じ項目をリレーションシップに再度挿入する場合、2 つのオブジェクト間の接続を適切にリストアしませんでした。 したがって、参照されたオブジェクトは、参照元が保存された場合、保存されませんでした。
今回のリリースで、この問題は修正されています。
| 可能性 |
中 |
| 危険性 |
高 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : ライブラリ
プラットフォーム : すべてのプラットフォーム
DevKey : MAK936
要約 : %Net.FtpSession クラスでタイムアウトなしの読み込みによりシステムが停止する
説明 :
アプリケーションが %Net.FtpSession で NameList メソッドを呼び出すと、そのメソッドは、タイムアウトなしの読み込みを発行しました。 タイムアウトがない場合、不正なネットワーク接続により、システムが停止することがありました。 今回の修正により、%Net.FtpSession による読み込みも、他と同様にタイムアウト設定するよう変更されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : SOAP
プラットフォーム : OpenVMS
DevKey : JCN494
要約 : OpenVMS の WSDL リーダを使用する際の問題
説明 :
Caché 5.0.5 の拡張として、URL 解析が Caché コードから削除されました。 その代わりに Caché は、URL を処理する Xerces パーサがもつ機能を使用しました。
OpenVMS の場合、この方法では opcode が失敗することがありました。 今回の変更により、OpenVMS に適切な Xerces パーサを再構築します。
| 可能性 |
高 |
| 危険性 |
高 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : オブジェクト : ストレージ
プラットフォーム : すべてのプラットフォーム
DevKey : DLP1115
要約 : 切断された関連オブジェクトをスケジュールする deep save を変更
説明 :
現在、親子リレーションシップで子の参照をリレーションシップから削除しても、親のオブジェクト・インスタンスを保存できます。
複雑なトランザクションの場合、子オブジェクトは (保存の要求で) 修正され、親とのリレーションシップから削除されることがありました。 これにより、(以前の) 親オブジェクトを保存しようとすると、妥当性検証に失敗することがありました。
今回の修正により、この振る舞いを変更しています。 リレーションシップから削除されたオブジェクトは save set から削除されるため、親を保存するときに妥当性検証エラーを発生しません。 このようなオブジェクトは、save set が構築された後、検証されます。
| 可能性 |
低 |
| 危険性 |
高 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : オブジェクト : ストレージ
プラットフォーム : すべてのプラットフォーム
DevKey : DLP1257
要約 : 親オブジェクトが修正されない場合、切断されたオブジェクト状況の保存方法を修正
説明 :
2 つのオブジェクト間のリレーションシップが切断された場合、そのリレーションシップはリレーションシップ・オブジェクトに記録されます。 今回の変更前は、Caché は特定の状況でこの変更を無視し、新しいリレーションシップを保存しないことがありました。 今回の変更により、新しい状況は適切に保存されます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : オブジェクト : XML
プラットフォーム : すべてのプラットフォーム
DevKey : JN193
要約 : %XML.TextReader の ParseStream によるセグメンテーションの失敗
説明 :
%XML.TextReader が使用する XML パーサは、バッファのデータ格納領域を長さで示します。 しかし、あるルーチンではデータをバイトとして、別のルーチンでは文字として処理するという問題がありました。 これにより、Unicode 文字が読み込まれるとバッファ領域を超過し、システムに致命的なエラーを生じる場合がありました。
今回の変更により、長さを同じ型に翻訳するように修正し、エラーを排除しています。
| 可能性 |
高 |
| 危険性 |
高 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべてのプラットフォーム
DevKey : BJB289
要約 : "tune" プロシージャ呼び出しで処理しない KeepClassUpToDate 設定
説明 :
今回の変更前は、TuneTable を実行すると、すべてのクラスが修正対象としてマークされ、再コンパイルを要求していました。 この現象は、TuneTable の "KeepClassUpToDate" 引数設定に関係なく生じていました。 現在は、調整されたテーブルのみが更新対象としてマークされます。
| 可能性 |
高 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべてのプラットフォーム
DevKey : DPV2029
要約 : 大規模クラスでのテーブルのコンパイルで生じる <MAXSTRING> エラーを回避
説明 :
単一のノードにマップされるクラスのプロパティ数が、430 から約 800 まで増加しています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべてのプラットフォーム
DevKey : DPV2180
要約 : テーブルごとのロックのエスカレーション
説明 :
ロックのエスカレーションは、現在テーブル毎に実行されます。
Caché は、以前からロックのエスカレーションの概念がありました。 "X" 数の INSERT/UPDATE/DELETE/Saves が、単一のトランザクション内で発生した場合、テーブルで取得された次のロックは、テーブル・レベル・ロックになります。 これにより、Caché システム・ロック・テーブルがあまりに早く満杯にならないようにします。
しかし、アプリケーションがテーブル A に 1000 行挿入し、その後テーブル B に 1 行挿入すると、テーブル B はテーブル・レベル・ロックを取得します。 これは、ロックのエスカレーションの基準カウンタが、それぞれの保存ごとにすべてのテーブルでインクリメントされるからです。
今回の変更により、各テーブルに別々のカウンタを設けています。 したがって、ロックのエスカレーションは、テーブルがトランザクション中にその限界 (既定の限界値は 1000) に達した場合にのみ発生します。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL
プラットフォーム : すべてのプラットフォーム
DevKey : DPV2208
要約 : コンパイル時の <UNDEFINED> エラーを修正
説明 :
今回の変更により、クラス・コンパイラがテーブルをコンパイル中に <UNDEFINED> エラーを生じる問題を修正しています。 Caché は、以下の場合にエラーをレポートします。
- クラスのプロパティが StorageToLogical メソッドと LogicalToStorage メソッドでデータタイプを使用する
- プロパティが IDKEY インデックス内にある
- テーブルが子テーブルである
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : JDBC
プラットフォーム : すべてのプラットフォーム
DevKey : AND415
要約 : ストアド・プロシージャ・エラーの報告前に JDBC 入力をパージ
説明 :
Caché が、ストアド・プロシージャ・パラメータの不一致エラーを検出した場合、即座に例外が生じます。 これにより、特定の状況で、入力バッファに終了したデータが残されたままになることがあります。 したがって、その後の呼び出しで、エラーの後のメッセージが失敗することがありました。
今回の変更によりバッファをクリアするようになったため、レポートされた例外によりエラーが引き起こされることはありません。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : クエリ処理
プラットフォーム : すべてのプラットフォーム
DevKey : AK576
要約 : DISTINCT フィールド以下をループしない
説明 :
今回の変更により、GROUP BY や DISTINCT など特定のクエリが、特にインデックスを伴う場合に高速になりました。 クエリに DISTINCT あるいは GROUP BY があり、クエリで総計を処理する必要がない場合、すべての DISTINCT フィールド値が認識されるとすぐに実行が終了します。
メモ : 最適化は Shown Plan では表示されません。
| 可能性 |
中 |
| 危険性 |
高 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : クエリ処理
プラットフォーム : すべてのプラットフォーム
DevKey : DPV2145
要約 : CASE 文をクエリで使用する場合、不正な convert() to SQL_DATE を修正
説明 :
今回の修正により、SQL CASE 文が最初の CASE 条件の結果のデータタイプを返すように変更しています。
CASE から返されるすべての値は、通常同じデータタイプとなるはずですが、Caché はこの条件を強制していません。 したがって、最初の条件で DATE を返した場合、列のデータタイプは DATE になります。 その後の条件で INTEGER を返すと、値は DATE 値として処理されます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : クエリ処理
プラットフォーム : すべてのプラットフォーム
DevKey : DPV2210
要約 : 関連しないサブクエリと -> 構文が FROM 節にある場合に発生する不正な SQLCODE=-29 エラーを修正
説明 :
以下のようなクエリがある場合
SELECT a.spouse->name FROM sample.person a,
(SELECT contact FROM sample.vendor) b
関連しないテーブルのサブクエリが含まれているため、SQL エラー・コード -29 で失敗することがありました。
今回の変更により、Caché はこのようなクエリも適切に処理できます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : SQL : クエリ処理
プラットフォーム : すべてのプラットフォーム
DevKey : DPV2213
要約 : 区切り文字列を使用して、一つのノードに 200 フィールド以上を格納する UPDATE ファイリング・コードを修正
説明 :
%CacheSQLStorage を使用し、200 以上のフィールドを区切り文字列のストレージ構造で一つのノードに格納すると、クラス・コンパイラがテーブルをコンパイル中に <MAXSTRING> エラーを発生することがありました。今回の変更により、このエラーを修正しています。
区切り文字列ストレージとは以下のようなコードを示します。
^glo(id)=field1^field2^field3^...^fieldN
この例では、各フィールドが "^" で区切られています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべてのプラットフォーム
DevKey : DVU1056
要約 : クエリ・ウィザードで処理するプロパティ・ツリーを変更
説明 :
ネームスペースに多くのクラスが存在し、そのクラス間に多くのリレーショップがある場合、スタジオの新規クエリ・ウィザードの性能が悪いことがありました。 今回の変更により、性能が向上しています。 クエリ・ウィザードは、ユーザが実際に実行するレベルのデータのみを初期化します。
| 可能性 |
中 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべてのプラットフォーム
DevKey : JN137
要約 : クラス定義をクローズする最後の括弧がない場合に構文エラーをレポート
説明 :
クラス定義をクローズする最後の括弧がない場合、クラス構文チェッカーがエラーを正確にレポートするよう修正されています。 従来のバージョンでは、この無効な構文はレポートされませんでした。
| 可能性 |
高 |
| 危険性 |
中 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : スタジオ
プラットフォーム : すべてのプラットフォーム
DevKey : MC467
要約 : UTF8 モードを使用するデバッグ・デバイスの設定
説明 :
従来のバージョンでは、Caché はデバッギングに使用するデバイスに UTF8 モードを設定できませんでした。 この結果、ラテン文字以外の言語 (例えば日本語) が正確に表示されませんでした。
今回の変更により、この問題は修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : Linux、AIX、HPUX、OpenVMS
DevKey : HYY932
要約 : 64 ビット・プラットフォームで、double 型の値を処理する $SORT* を修正
説明 :
今回の変更により、64 ビット・プラットフォームでのソート ($SortBegin で開始、$SortEnd で終了する) の問題を修正しています。 double 型の値に設定されたグローバル・ノードは、ソート後に不正な値を取得することがあります。 ソートは、バージョン 5.0.5 以降のジャーナル・リストアで可能になったため、ジャーナル・リストアもこの問題の影響を受けていました。
メモ : 64 ビットのプラットフォームとは、64 ビットのポインタを使用するプラットフォームのことです。 したがって、32 ビットのポインタと 64 ビットの整数を使用するプラットフォームは (例えば VMS4.1 など)、64 ビット・プラットフォームではありません。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : Linux
DevKey : JLC604
要約 : Linux の数学関数で OREF 比較のエラーを修正
説明 :
今回の変更により、NULL 以外の文字列に OREF を比較する際に <INVALID TYPE> を生じるエラーを修正しています。 現在、この比較では 0 (False) を返します。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべてのプラットフォーム
DevKey : JLC612
要約 : $NORMALIZE() でのエラーを修正
説明 :
今回の変更により、特定の状況で不正にゼロを返す $NORMALIZE(<number>,-1) の計算を修正しています。 例えば今回の変更前は、以下のようなシーケンスの場合
Set x = 3.5
Write $NORMALIZE(x, -1)
値 3 を正確に返していました。しかし、以下のシーケンスの場合
Set x = 7 / 2
Write $NORMALIZE(x, -1)
値 0 を返していました。現在は、正確な値である 3 を返します。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム
プラットフォーム : すべてのプラットフォーム
DevKey : SML399
要約 : ロック・テーブルを走査する $zu(156) でのアクセス侵害を修正
説明 :
多量のロック・テーブル活動を行う場合、^LOCKTAB あるいは ^$LOCK SSVN がアクセス侵害される可能性がありました。 今回の変更により、この問題が発生しないよう修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべてのプラットフォーム
DevKey : HYY921
要約 : 大規模な既存のデータベースへのリストアで発生する問題を修正
説明 :
特定の状況で、大規模な既存のデータベースに保存されたデータベース・ファイルをリストアしようとすると、データが破壊され、その結果
<DATABASES MAP LABEL> エラーが発生し、システムが停止しました。
今回の変更により、データが破壊されないよう修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
あり |
| 拡張性 |
なし |
カテゴリ : システム : バックアップ/リストア
プラットフォーム : すべてのプラットフォーム
DevKey : LRS772
要約 : EXTSELCT^DBREST による管理者のデータベースの誤ったリストアの回避
説明 :
バックアップをリストアする $$EXTSELCT^DBREST で、非インタラクティブ API のエラーが修正されています。 エラーにより、管理者のデータ-ベースが誤ってリストアされることがありました。 これは、データベースがリストア・リストに指定されていない場合にも生じることがありました。 管理者のデータベースがバックアップ・アーカイブにあり、リストア・リストを含むファイルに空白行がある場合、このデータベースが上書きされます。
呼び出しプロセスで $ZEOF 処理が可能な場合も発生することがありました。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : 入出力
プラットフォーム : すべてのプラットフォーム
DevKey : LRS775
要約 : 長い Windows プリンタ名でのクラッシュを修正
説明 :
従来のバージョンでは、69 文字以上の ("|PRN|" 接頭語を含む) Windows プリンタ・デバイスを開こうとすると、プロセスがクラッシュすることがありました。 現在、256 文字までの長さがサポートされ、それ以上の場合は <NOTOPEN> エラーが発生します。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : ロック
プラットフォーム : すべてのプラットフォーム
DevKey : SML457
要約 : リモート PID を持つ DTM ロック所有者の表示
説明 :
リモート DTM クライアントでロックが設定された場合、ロック監視の補助として、リモート DTM システム上の LOCKTAB とコントロール・パネルの表示で、所有者のプロセス ID の後ろに "/" が付きます。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : ロック
プラットフォーム : すべてのプラットフォーム
DevKey : SML464
要約 : ZA ロックにロック・カウント・オーバーフローを取得させない
説明 :
初期の Caché バージョンで以下のような文がある場合
$ZU(69, 8) を設定していると、<COMMAND> エラーを取得することができました。 しかし、$ZU(69, 8) が設定されていない場合、ZA は LOCK コマンドのように動作するため、エラーを取得しませんでした。 今回の変更により、この問題は修正されています。
| 可能性 |
低 |
| 危険性 |
低 |
| パッチ |
なし |
| 拡張性 |
なし |
カテゴリ : システム : スタートアップ
プラットフォーム : すべてのプラットフォーム
DevKey : MAK922
要約 : %CSP.Daemon プロセスで %SYS ネームスペースを確実に開始
説明 :
今回の変更前、%CSP.Daemon プロセスは、暗黙のネームスペースを開始していました。これは、デーモンを開始する関数を呼び出す前の、スタートアップ・コードを含むネームスペースだからです。 現在このデーモンは、%SYS ネームスペースを開始します。
| 可能性 |
高 |
| 危険性 |
中 |
| パッチ |
なし |
| 拡張性 |
なし |
ドキュメントの更新
Caché ドキュメントの内容は、編集上の改良、既存の内容の更新、新しい情報の追加など、リリースにしたがい改訂されています。以下は、以前のリリースから Caché ドキュメントに追加された重要な変更の概要です。
- Caché 入出力デバイス・ガイドの変更
- COM ポートに OPEN オプションと USE オプション (位置とキーワード) を追加しています。
- プリンタ名の UNC セクションを修正/更新しています。
- Caché SQL リファレンスの変更
- 以下のページを新規に追加しています。
- %CHECKPRIV
- GROUP BY
- HAVING
- 新規の日付構文 {d ...}、{t ...}、{ts ...}
- %msql、%ROWCOUNT、SQLCODE などの変数
- CREATE TABLE、CREATE VIEW、GRANT、REVOKE のドキュメントに %msql 情報を追加しています。
- CREATE TABLE %Description の情報を更新し、%FILE、%NUMROWS、%ROUTINE オプションの説明を追加しています。
- CURRENT_TIME、CURTIME、HOUR、MINUTE、SECOND、CURRENT_TIMESTAMP、GETDATE、NOW、TO_DATE、TO_CHAR など日付に関するドキュメントの情報を改訂、拡張しています。
- DROP TABLE の %DELDATA オプションと %NODELDATA オプションに詳細な説明を追加しています。
- %DB_OBJECT_DEFINITON の説明を具体化し、GRANT と REVOKE の %CHECKPRIV に対するクロスリファレンスを追加しています。
- SELECT を使用した例を、さらにさまざまなオプションと各例の詳細説明をつけて、改訂、拡張しています。
- ブラウザのスタイルシートを変更し、テーブル・セルの内部に表示される過剰に付いた文頭のスペースをリストから削除しています。
- インデックスに用語集からの頻出項目を追加しています。
- Windows でサポートされるプラットフォームとして Itanium を追加しています。
その他に、例の追加、文法や誤字脱字の修正といった小規模な改訂も多数行っています。