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


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

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

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

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

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

新規にサポートされるプラットフォーム
今回リリースの Caché バージョンから、以下のプラットフォームが新規にサポートされます。


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

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


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

 



カテゴリ : 構成マネージャ
プラットフォーム : すべてのプラットフォーム
DevKey : CFL962
要約 : JournalZGlob の修正

説明 :

今回の変更により、構成マネージャが JournalZGlob パラメータに不正な値を設定する問題を修正しています。 これは、"Z" あるいは "z" で始まるグローバルが、ユーザの意図に反してジャーナルされない原因となっていました。

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

 



カテゴリ : CSP
プラットフォーム : すべてのプラットフォーム
DevKey : MAK649
要約 : CSP セッションの終了後、指定されたユーザ・ライセンスが正しくディクリメントされない

説明 :

新規に指定されたユーザ・ライセンスと '%session.EndSession=1' を使用して CSP ページにログインした場合、最新の CSP セッションのライセンスが解放されませんでした。 この問題は修正されています。CSP セッションに指定されたユーザ・ライセンスは、そのセッションの終了直後、正しくディクリメントされます。

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

 



カテゴリ : 言語
プラットフォーム : すべてのプラットフォーム
DevKey : CDS423
要約 : プロシージャの最後に常に QUIT を生成

説明 :

特定の状況で、ObjectScript コンパイラは、プロシージャの最後に不正なオブジェクト・コードを生成しました。 これにより、プロシージャの最後で、<SYSTEM> あるいは <NO CURRENT OBJECT> などさまざまなエラーを生じることがありました。

この現象は、以下のすべての状況が重なった場合にのみ生じました。


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

 



カテゴリ : オブジェクト
プラットフォーム : すべてのプラットフォーム
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 を使用する方法
  1. Delphi 7 の Windows フォーム・プロジェクトを生成します。
  2. [プロジェクト] メニューから [タイプライブラリの取り込み] を選択します。 リストをスクロールして [CacheObject] を選択します。[インストール] ボタンをクリックし、プロンプトに従います。
  3. [コンポーネント] メニューから [ActiveX コントロールの取り込み] を選択します。 リストをスクロールし、[DelphiCallback] を選択します。 [インストール] ボタンをクリックし、プロンプトに従います。
  4. TEdit ボックス、TButton、TCallback、その他任意のコンポーネントをフォームに追加します。
  5. フォームをダブルクリックし、フォームの作成やボタン用のコードを入力します。
  6. [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 での使用法
  1. VB で新規に標準 EXE を生成します。
  2. [プロジェクト] メニューから [コンポーネント] を選択します。 リストをスクロールし、[DelphiCallback 1.0 Type Library] の横にチェックをつけます。 これにより、[コンポーネント] タブに [コンポーネント] が追加されます。
  3. [プロジェクト] メニューから [参照設定] を選択します。 リストをスクロールし、[CacheObject] の横にチェックをつけます。
  4. TextBox、Callback (上記の過程で追加)、その他任意のコントロールをフォームに追加します。
  5. 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é は、以下の場合にエラーをレポートします。


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

 



カテゴリ : 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é バージョンで以下のような文がある場合
For i=1:1 ZA ^a(i)
$ZU(69, 8) を設定していると、<COMMAND> エラーを取得することができました。 しかし、$ZU(69, 8) が設定されていない場合、ZA は LOCK コマンドのように動作するため、エラーを取得しませんでした。 今回の変更により、この問題は修正されています。

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

 



カテゴリ : システム : スタートアップ
プラットフォーム : すべてのプラットフォーム
DevKey : MAK922
要約 : %CSP.Daemon プロセスで %SYS ネームスペースを確実に開始

説明 :

今回の変更前、%CSP.Daemon プロセスは、暗黙のネームスペースを開始していました。これは、デーモンを開始する関数を呼び出す前の、スタートアップ・コードを含むネームスペースだからです。 現在このデーモンは、%SYS ネームスペースを開始します。

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

 



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

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