RI コマンドは、ホールドされているレコードと ISN を解放します。
このドキュメントでは、次のトピックについて説明します。
RI コマンドは、コマンドを発行したユーザーがホールドしているレコードの ISN を解放します。 1 つのデータベースファイルに関して選択した ISN、または発行したユーザーがホールドしている全ファイル内の全 ISN を解放できます。
Adabas コントロールブロックフィールドに解放するレコードの ISN とファイル番号をユーザーが指定します。 ISN フィールドにゼロを指定すると、全ファイルに関して現在このユーザーにホールドされている全レコードを解放します。
注意:
ET ロジックユーザーが現在のトランザクションで更新を行っている場合は、RI
コマンドでレコードのホールドを解放しないでください。解放すると、データ保全性が失われることがあります。 ET ユーザーは ET または CL コマンドで
ISN を解放しなければなりません。
このセクションでは、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 を設定することをお勧めします。
RI
解放するレコードがあるファイルの番号。
注意:
2 バイトファイル番号およびデータベース ID を使用する場合は、コントロールブロックの先頭バイトに X'30'
を入力しなければなりません。
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、アディション 2 フィールドの下位 2 バイトにサブコードを伴う場合があります。詳細は『Adabas メッセージおよびコード』を参照してください。
解放するレコードの ISN。 ISN 値を入力する場合はファイル番号も指定する必要があります。 ユーザーがホールドした全レコードを解放する場合、このフィールドにバイナリのゼロを設定します。
ファイル 2 の ISN 3 のレコードをホールド状態から解放します。
コマンドコード | RI | |
---|---|---|
ファイル番号 | 2 | 解放するレコードはファイル 2 にあります。 |
ISN | 3 | ISN が 3 のレコードを解放します。 |
発行したユーザーがホールドしているすべてのレコードをホールド状態から解放します。
コマンドコード | RI | |
---|---|---|
ファイル番号 | - | ISN フィールドがゼロの場合、このフィールドの値は無視されます。 |
ISN | 0 | すべてのファイルからすべてのホールドレコードの ISN を解放します。 |
このセクションでは、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 | 操作不可 | --- | --- |
何も使用されていません。
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
--- | 未使用 |
ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。
F2
RI
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。
このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。
このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。
このフィールドは、解放するレコードが含まれているファイルの番号を指定するのに使用します。
このフィールドは 4 バイトのバイナリフィールドですが、ファイル番号はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
解放するレコードの ISN。 ISN 値を入力する場合はファイル番号も指定する必要があります。 ユーザーがホールドした全レコードを解放する場合、このフィールドにバイナリのゼロを設定します。
ACBXISN フィールドは、8 バイトの ACBXISNG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISNG フィールドの上位部分には、バイナリの 0 を設定します。
コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。