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 メッセージおよびコード』を参照してください。