CL コマンド(ユーザーセッション終了)

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


機能および使用

CL コマンドは、ユーザーセッションを終了するのに使用します。すべてのユーザープログラムがデータベース処理を完了する際に CL コマンドを出すことを推奨します。

CL コマンドは、以下の処理を行います。

  • 内部 ET コマンド(ET ロジックユーザーのみ)

  • ユーザーデータを Adabas システムファイルへ格納します(オプション)。

  • 現在のデータプロテクションブロックを、Adabas データプロテクションログおよび WORK コンテナへ物理的に書き込みます。

  • 該当ユーザーが現在ホールド状態にしている全レコードを解放し、ユーザーに割り当てた全コマンド ID エントリ(および関連する ISN リスト)を解放します。

  • Adabas WORK コンテナから Adabas システムファイルへユーザーの ET データを転送します。この処理は、OP コマンドでユーザー ID が指定された場合にだけ行われます。セッション中に(ET コマンドによって書かれた)ユーザーデータシステムファイルに格納されたすべてのユーザーデータは保持されません。

graphics/cl_1.png

CL Command, Procedure Flow

graphics/cl_2.png

CL Command, Procedure Flow (continued)

コントロールブロック

Field フォーマット  
コールタイプ B F/U
予約(内部使用)   -/-
コマンドコード A F/U
コマンド ID B -/A
File Number B F/U (1)
Response Code B F/A (1)
レコードバッファ長(ACB のみ) B $ F/U
コマンドオプション 2 A F/U
アディション 2 A、B -/A
コマンドタイム B -/A
ユーザーエリア   F/U

バッファエリア

バッファ  
フォーマットバッファ $ */–
レコードバッファ $ F/U
サーチバッファ –/–
バリューバッファ –/–
ISN バッファ –/–
フォーマット:
A 英数字
B 2 進数
x/y Adabasコール前/後 - xとyは、値を取ることができます。
A Adabas によって設定
F ユーザーによって設定
U Adabas コール後も変更なし
- 使用しません
* 使用せず。ただし、コールステートメントのパラメータリストに含まれていなければならない。
$ユーザーデータを格納する場合にのみ使用

(1)このフィールドの意味は、Call タイプに指定された値によって異なります。詳細については、「Adabas の呼び出し」の「コントロールブロック」を参照してください。

コントロールブロック

コマンドコード

CL

コマンド ID

ET コマンドがユーザーセッション中に発行されている場合は、Adabas が、最後に完了したユーザートランザクションのシーケンス番号をこのフィールドに返します。この番号はバイナリ形式で返されます。

セッション中で ET コマンドが正しく完了していない場合は、このフィールドは 0 にセットされます。

Response Code

このフィールドには、コマンドに対するレスポンスコードが返されます。レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。

レコードバッファ長(ACB のみ)

ユーザーデータを Adabas システムファイルに格納する場合、このフィールドにレコードバッファ長を指定する必要があります。指定した長さによって、格納されるユーザーデータのバイト数が決まります。

指定可能な最大長は 2,000 バイトです。

ユーザーデータを格納しない場合、このフィールドは使用しません。

コマンドオプション 2

このフィールドが E のときは、レコードバッファに提供されたユーザーデータを Adabas システムファイルに格納することを示します。

アディション 2

このフィールドには、一部のレスポンスコードについて詳細情報が返されます。詳細については、『メッセージおよびコードマニュアル』 を参照してください。

レコードバッファ

格納したいユーザーデータをこのバッファに指定します。実際に格納されるバイト数は、レコードバッファ長フィールドで指定した値によって特定されます。空白以外のユニークなユーザー ID を指定して OP コマンドを発行している場合に限り、CL コマンドでユーザーデータが保存されます。この場合、このユーザーがユーザーデータを指定して、次の ET、または CL コマンドを発行するまで、データは保存されます。空白以外のユーザー ID が指定されていないと、後続のセッションで当データを読むことはできません。

ユーザーデータには任意の形式を使用できます。Adabas によってデータの形式が変換されることはありません。

例 1:

ユーザープログラムは全データベース処理を完了し、CL コマンドを発行します。格納するユーザーデータはありません。

コントロールブロック:

Command Code          CL
Command Option 2      b (no user data is to be stored)

例 2:

ユーザープログラムは CL コマンドを発行し、ユーザーデータを Adabas システムファイルに格納します。

コントロールブロック:

Command Code          CL
Record Buffer Length  17 (17 bytes of user data to be stored)
Command Option 2      E (user data is to be stored)

バッファエリア:

Record Buffer         USER 7 NORMAL END