バージョン 8.1.3
 —  コマンドリファレンス  —

RI コマンド:レコードの解放

RI コマンドは、ホールドされているレコードと ISN を解放します。

このドキュメントでは、次のトピックについて説明します。


機能および使用

RI コマンドは、コマンドを発行したユーザーがホールドしているレコードの ISN を解放します。 1 つのデータベースファイルに関して選択した ISN、または発行したユーザーがホールドしている全ファイル内の全 ISN を解放できます。

Adabas コントロールブロックフィールドに解放するレコードの ISN とファイル番号をユーザーが指定します。 ISN フィールドにゼロを指定すると、全ファイルに関して現在このユーザーにホールドされている全レコードを解放します。

注意:
ET ロジックユーザーが現在のトランザクションで更新を行っている場合は、RI コマンドでレコードのホールドを解放しないでください。解放すると、データ保全性が失われることがあります。 ET ユーザーは ET または CL コマンドで ISN を解放しなければなりません。

Top of page

ACB インターフェイスダイレクトコール:RI コマンド

このセクションでは、RI コマンドの ACB インターフェイスダイレクトコールについて説明します。 本書には、次のトピックが含まれています。

コントロールブロックとバッファの情報

コントロールブロック

ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。

フィールド 位置 フォーマット Adabas コール前 Adabas コール後
  1~2 -- -- --
コマンドコード 3~4 英数字 F U
  5~8 -- -- --
ファイル番号 9~10 バイナリ F U
レスポンスコード 11~12 バイナリ -- A
ISN 13~16 バイナリ F U
  17~72 -- -- --
コマンドタイム 73~76 バイナリ -- A
ユーザーエリア 77~80 -- -- U

バッファエリア

何も使用されていません。

上記の意味は次に示すとおりです。

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
-- 未使用

コントロールブロックフィールドの説明

ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。

コマンドコード(ACBCMD)

RI

ファイル番号(ACBFNR)

解放するレコードがあるファイルの番号。

注意:
2 バイトファイル番号およびデータベース ID を使用する場合は、コントロールブロックの先頭バイトに X'30' を入力しなければなりません。

レスポンスコード(ACBRSP)

Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、アディション 2 フィールドの下位 2 バイトにサブコードを伴う場合があります。詳細は『Adabas メッセージおよびコード』を参照してください。

ISN(ACBISN)

解放するレコードの ISN。 ISN 値を入力する場合はファイル番号も指定する必要があります。 ユーザーがホールドした全レコードを解放する場合、このフィールドにバイナリのゼロを設定します。

ACB の例

例 1

ファイル 2 の ISN 3 のレコードをホールド状態から解放します。

コントロールブロック

コマンドコード RI  
ファイル番号 2 解放するレコードはファイル 2 にあります。
ISN 3 ISN が 3 のレコードを解放します。

例 2

発行したユーザーがホールドしているすべてのレコードをホールド状態から解放します。

コントロールブロック

コマンドコード RI  
ファイル番号 - ISN フィールドがゼロの場合、このフィールドの値は無視されます。
ISN 0 すべてのファイルからすべてのホールドレコードの ISN を解放します。

Top of page

ACBX インターフェイスダイレクトコール:RI コマンド

このセクションでは、RI コマンドの ACB インターフェイスダイレクトコールについて説明します。 本書には、次のトピックが含まれています。

コントロールブロックとバッファの情報

コントロールブロック

ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。

フィールド 位置 フォーマット Adabas コール前 Adabas コール後
  1~2 --- --- ---
バージョンインジケータ 3~4 バイナリ F U
  5~6 --- --- ---
コマンドコード 7~8 英数字 F U
  9~10 --- --- ---
レスポンスコード 11~12 バイナリ --- A
  13~16 --- --- ---
データベース ID 17~20 数値 F U
ファイル番号 21~24 数値 F U
  25~28 --- --- ---
ISN 29~32 バイナリ F U
  33~114 --- --- ---
エラーサブコード 115~116 バイナリ --- A
  117~144 --- --- ---
コマンドタイム 145~152 バイナリ --- A
ユーザーエリア 153~168 該当なし --- U
--- 169~193 操作不可 --- ---

ABD とバッファ

何も使用されていません。

上記の意味は次に示すとおりです。

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
--- 未使用

コントロールブロックフィールドの説明

ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。

バージョンインジケータ(ACBXVER)

F2

コマンドコード(ACBXCMD)

RI

レスポンスコード(ACBXRSP)

Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。

データベース ID(ACBXDBID)

このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。

このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。

このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。

ファイル番号(ACBXFNR)

このフィールドは、解放するレコードが含まれているファイルの番号を指定するのに使用します。

このフィールドは 4 バイトのバイナリフィールドですが、ファイル番号はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。

ISN(ACBXISN)

解放するレコードの ISN。 ISN 値を入力する場合はファイル番号も指定する必要があります。 ユーザーがホールドした全レコードを解放する場合、このフィールドにバイナリのゼロを設定します。

ACBXISN フィールドは、8 バイトの ACBXISNG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISNG フィールドの上位部分には、バイナリの 0 を設定します。

エラーサブコード(ACBXERRC)

コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。

Top of page