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

RE コマンド:ET ユーザーデータの読み込み

RE コマンドは、現在のユーザー、他のユーザー、または全ユーザーの ET(ユーザー)データを読み込みます。

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


機能および使用

RE コマンドは、前に C3、CL または ET コマンドで Adabas システムチェックポイントファイルに格納されたユーザーデータを読み込むのに使用します。 ユーザーデータはレコードバッファに返されます。 このユーザーデータは、ユーザーまたは Adabas セッションの異常終了後、ユーザー再スタートをするのに必要です。

コマンドオプション 1 フィールドに何も指定しないと、このコマンドを発行したユーザーのユーザーデータが読み込まれます。 OP コマンドで同じユーザー ID を指定して、前セッションと現在のセッションを開始した場合、RE コマンドは前セッションで格納したユーザーデータを読み込みます。

コマンドオプションの指定に応じて、RE コマンドで他のユーザーのユーザーデータ(各ユーザー ID を指定する)、または全ユーザーのユーザーデータを読み込むことができます。

Top of page

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

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

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

コントロールブロック

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

フィールド 位置 フォーマット Adabas コール前 Adabas コール後
  1~2 -- -- --
コマンドコード 3~4 英数字 F U
コマンド ID 5~8 バイナリ -- A
ファイル番号 **** 9~10 バイナリ F U
レスポンスコード 11~12 バイナリ -- A
ISN 13~16 バイナリ F A
  17~26 -- -- --
レコードバッファ長 27~28 バイナリ F U
  29~34 -- -- --
コマンドオプション 1 35 英数字 F U
  36 -- -- --
アディション 1 37~44 英数字 F * U/A **
アディション 2 45~48 英数字 -- A
  49~72 -- -- --
コマンドタイム 73~76 バイナリ -- A
ユーザーエリア 77~80 -- -- U

バッファエリア

バッファ Adabas コール前 Adabas コール後
フォーマット *** --
レコード -- A

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
* コマンドオプション 1 が "I" の場合、ET データのユーザー ID
** コマンドオプション 1 が "A" の場合、レコードバッファの ET データのユーザー ID
*** 使用しませんが、コールステートメントのパラメータリストに含める必要があります。
**** データベース ID は、複数のデータベースにアクセスして、特定のデータベースに対してコマンド処理を制限する必要がある場合にのみ必要になります。
-- 未使用

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

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

コマンドコード(ACBCMD)

RE

コマンド ID(ACBCID)

Adabas は、トランザクションのシーケンス番号か、バイナリのゼロを返します。

Adabas は、ユーザーデータを読み込むユーザーアクティブでなく、かつこのユーザーの先行セッションがないか、CL コマンドで正常終了した場合にバイナリのゼロを返します。 非 ET ロジックユーザーの場合もバイナリのゼロが返されます。

このユーザーが現在アクティブであるか、またはこのユーザーの先行セッションが CL コマンドで正常終了しなかった場合、Adabas は、最後に正常終了したユーザートランザクションのシーケンス番号を返します。

ファイル番号(ACBFNR)

データベース ID は、複数のデータベースにアクセスして、特定のデータベースに対してコマンド処理を制限する必要がある場合にのみ必要になります。

レスポンスコード(ACBRSP)

Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 コマンドオプション 1 に A を指定した場合、レスポンスコード 3 はユーザーデータのエンドオブファイルを示します。 ゼロ以外のレスポンスコードには、アディション 2 フィールドの右半分にサブコードが返される場合があります。レスポンスコード、サブコードについては『Adabas メッセージおよびコード マニュアル』を参照してください。

ISN(ACBISN)

コマンドオプション 1 が A の場合、ISN から開始して論理順にユーザーデータが返されます。 このフィールドにゼロを指定すると、全ユーザーデータが返されます。

レコードバッファ長(ACBRBL)

レコードバッファの長さ。 指定した長さによって、返されるユーザーデータのバイト数が決まります。

指定した長さがユーザーデータよりも短いと、指定したバイト数のみがレコードバッファに入り、右側のバイトが桁落ちします。

コマンドオプション 1(ACBCOP1)

コマンドオプション 1 フィールドに何も指定しない場合は、コマンドを発行したユーザーのユーザーデータが読み込まれます。 OP コマンドで同じユーザー ID を指定して、前セッションと現在のセッションを開始した場合、RE コマンドは前セッションで格納したユーザーデータを読み込みます。

コマンドオプション 1 フィールドに値を指定すると、その値に応じて、別の指定ユーザーのユーザーデータか、全ユーザーのユーザーデータを読み込みます。

オプション 説明
I(ユーザーの ID) データを格納したユーザーの ID がアディション 1 フィールドに指定されている場合は、別のユーザーが保存したユーザーデータを読み込みます。
A(すべてのユーザー) 現在および後続の RE コマンドは、レコードバッファ内の全ユーザーデータをユーザー ID の論理順(ISN 順)に読み込みます。 ISN フィールドに開始 ISN を指定できます。 ISN フィールドにゼロを指定すると、全ユーザーデータが返されます。 現在および後続の RE コマンドが完了するごとに、コマンド終了時にレコードバッファ内にあるユーザーデータのユーザー ID がアディション 1 フィールドに返されます。 オプション A を指定した RE コマンドは、チェックポイントファイルに書き込まれたユーザーデータのうち、トランザクションが ET コマンドで終了しているものだけを読み込みます。ET コマンドで終了していないトランザクションのユーザーデータは読み込まれません。 このオプションでは、レスポンスコードフィールドに返されるレスポンスコード 3 は、ユーザーデータのエンドオブファイルを示します。
アディション 1:ユーザー ID(ACBADD1)

他のユーザーが格納したユーザーデータを読み込む場合、このフィールドにはデータを格納したユーザーのユーザー ID を指定しなければなりません。 コマンドオプション 1 に A を指定した場合、このフィールドには各 RE コマンドの終了時に、レコードバッファ内にあるユーザーデータのユーザー ID が入ります。

アディション 2:トランザクションシーケンス番号(ACBADD2)

データを保存したユーザーが ET ロジックユーザーであった場合、Adabas はこのフィールドに、ET または CL コマンドでユーザーデータを保存した最後の正常終了トランザクションのシーケンス番号を返します。

RE コマンドによってゼロ以外のレスポンスコードが返された場合、アディション 2 フィールドの下位 2 バイトにレスポンスコードの正確な意味を定義したサブコードが含まれていることがあります。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。

ACB の例

例 1

以前に ET コマンドで格納したユーザーデータを読み込みます。

コントロールブロック

コマンドコード RE  
レコードバッファ長 100 ユーザーデータの 100 バイトを読み込みます。
コマンドオプション 1 空白 このユーザーが格納したユーザーデータを読み込みます。
ISN 0  

例 2

他のユーザー(ユーザー ID = USER0002)が格納したユーザーデータを読み込みます。

コントロールブロック

コマンドコード RE  
レコードバッファ長 150 ユーザーデータの 150 バイトを読み込みます。
コマンドオプション 1 I 他のユーザーが格納したユーザーデータを読み込みます。
アディション 1 USER0002 ユーザーデータを格納したユーザーのユーザー ID
ISN 0  

例 3

全ユーザーデータおよび対応するユーザー ID を読み込みます。

コントロールブロック

コマンドコード RE  
レコードバッファ長 250 ユーザーデータの 250 バイトを読み込みます。
コマンドオプション 1 A  
ISN 0 全ユーザーデータを読み込みます。

Top of page

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

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

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

コントロールブロック

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

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

ABD とバッファ

ABD とバッファ Adabas コール前 Adabas コール後
フォーマット *** --
レコード -- A

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
* コマンドオプション 1 が "I" の場合、ET データのユーザー ID
** コマンドオプション 1 が "A" の場合、レコードバッファの ET データのユーザー ID
*** 使用しませんが、Adabas コールに含める必要があります。含めない場合は、Adabas コールが自動的に生成されます。
**** データベース ID は、複数のデータベースにアクセスして、特定のデータベースに対してコマンド処理を制限する必要がある場合にのみ必要になります。
--- 未使用

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

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

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

F2

コマンドコード(ACBXCMD)

RE

レスポンスコード(ACBXRSP)

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

コマンドオプション 1 に A を指定した場合、レスポンスコード 3 はユーザーデータのエンドオブファイルを示します。

コマンド ID(ACBXCID)

Adabas は、トランザクションのシーケンス番号か、バイナリのゼロを返します。

Adabas は、ユーザーデータを読み込むユーザーアクティブでなく、かつこのユーザーの先行セッションがないか、CL コマンドで正常終了した場合にバイナリのゼロを返します。 非 ET ロジックユーザーの場合もバイナリのゼロが返されます。

このユーザーが現在アクティブであるか、またはこのユーザーの先行セッションが CL コマンドで正常終了しなかった場合、Adabas は、最後に正常終了したユーザートランザクションのシーケンス番号を返します。

データベース ID(ACBXDBID)

このフィールドは、複数のデータベースにアクセスして、特定のデータベースに対するコマンド処理を制限する必要がある場合にのみデータベース ID を指定します。 Adabas コールはこのデータベースに送られます。

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

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

ファイル番号(ACBXFNR)

このフィールドを使用して、Adabas コールで送る必要のあるファイル数を指定します。

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

ISN(ACBXISN)

コマンドオプション 1 が "A" の場合、ISN から開始して 論理順にユーザーデータが返されます。 このフィールドにゼロを指定すると、全ユーザーデータが返されます。

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

コマンドオプション 1(ACBXCOP1)

コマンドオプション 1 フィールドに何も指定しない場合は、コマンドを発行したユーザーのユーザーデータが読み込まれます。 OP コマンドで同じユーザー ID を指定して、前セッションと現在のセッションを開始した場合、RE コマンドは前セッションで格納したユーザーデータを読み込みます。

コマンドオプション 1 フィールドに値を指定すると、その値に応じて、別の指定ユーザーのユーザーデータか、全ユーザーのユーザーデータを読み込みます。

オプション 説明
I(ユーザーの ID) データを格納したユーザーの ID がアディション 1 フィールドに指定されている場合は、別のユーザーが保存したユーザーデータを読み込みます。
A(すべてのユーザー) 現在および後続の RE コマンドは、レコードバッファ内の全ユーザーデータをユーザー ID の論理順(ISN 順)に読み込みます。 ISN フィールドに開始 ISN を指定できます。 ISN フィールドにゼロを指定すると、全ユーザーデータが返されます。 現在および後続の RE コマンドが完了するごとに、コマンド終了時にレコードバッファ内にあるユーザーデータのユーザー ID がアディション 1 フィールドに返されます。 オプション A を指定した RE コマンドは、チェックポイントファイルに書き込まれたユーザーデータのうち、トランザクションが ET コマンドで終了しているものだけを読み込みます。ET コマンドで終了していないトランザクションのユーザーデータは読み込まれません。 このオプションでは、レスポンスコードフィールドに返されるレスポンスコード 3 は、ユーザーデータのエンドオブファイルを示します。
アディション 1:ユーザー ID(ACBXADD1)

コマンドオプション 1 に "I" を指定した場合、このフィールドにはデータを格納したユーザーのユーザー ID を設定する必要があります。

コマンドオプション 1 に "A" を指定した場合、このフィールドには各 RE コマンドの終了時に、レコードバッファ内にあるユーザーデータのユーザー ID が入ります。

アディション 2:トランザクションシーケンス番号(ACBXADD2)

データを保存したユーザーが ET ロジックユーザーであった場合、Adabas はこのフィールドに、ET または CL コマンドでユーザーデータを保存した最後の正常終了トランザクションのシーケンス番号を返します。

エラーサブコード(ACBXERRC)

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

Top of page

バッファ

RE コマンドには、次のバッファが適用されます。

フォーマットバッファ

フォーマットバッファは RE コマンドでは使用されませんが、Adabas コールに含める必要があります。 これが ACB インターフェイスダイレクトコールであり、フォーマットバッファが指定されていない場合は、処理エラーが発生します。ACB インターフェイスダイレクトコールはセットシーケンスにバッファが指定されていることを要求します。 これが ACBX インターフェイスダイレクトコールであり、フォーマットバッファが指定されていない場合は、バッファが自動的に生成されます。

レコードバッファ

Adabas は、レコードバッファにユーザーデータを返します。 ユーザーデータが存在しない場合、RE 操作の最後でレコードバッファに空白がつめられます。

Top of page