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

CL コマンド:ユーザーセッションのクローズ

CL コマンドは、ET セッションを終了して、データベースを更新します。

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


機能および使用

CL コマンドは、ユーザーセッションを終了するのに使用します。 すべてのユーザープログラムで、データベース処理を完了するとき、CL コマンドを発行することをお勧めします。 シングルユーザーモードでデータベース更新を実行するユーザープログラムの場合、更新内容がすべてデータベースに書き込まれるようにするには、処理の最後に CL コマンドを発行する必要があります。

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

シングルユーザーモードのユーザーが CL コマンドを発行すると、データベース(アソシエータ、データストレージ、ワーク、およびデータプロテクションログ)が物理的にクローズされます。 このため、シングルユーザーモードのユーザーが CL コマンドの後に他のコマンド(例えば、OP コマンド)を発行することはできません。

Top of page

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

このセクションでは、CL コマンドの 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 バイナリ -- A
ISN 下限 17~20 バイナリ -- A
ISN 数 21~24 バイナリ -- A
  25~26 -- -- --
レコードバッファ長 27~28 バイナリ F * U
  29~35 -- -- --
コマンドオプション 2 36 英数字 F U
  37~72 -- -- --
コマンドタイム 73~76 バイナリ -- A
ユーザーエリア 77~80 -- -- U

バッファエリア

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

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

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

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

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

コマンドコード(ACBCMD)

CL

コマンド ID(ACBCID)

ET ロジックユーザーの場合、Adabas はユーザーがこのフィールドで最後に正常に実行したトランザクションのトランザクションシーケンス番号を返します。 この番号はバイナリ形式で返されます。

CL コマンドには ET コマンドが含まれているため(「機能および使用」を参照)、トランザクションシーケンス番号も 1 ずつ増加します。

ファイル番号(ACBFNR)

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

レスポンスコード(ACBRSP)

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

ISN:I/O の数(ACBISN)

Adabas は、このフィールドに、このセッションの Adabas コールを実行した結果、発生する入出力処理の回数を返します。

ISN 下限:コマンドの数(ACBISL)

このフィールドには、Adabas はユーザーセッション中にユーザーが発行したコマンドの数を返します。

ISN 数:CPU 時間(ACBISQ)

このフィールドには、Adabas は Adabas のコマンド処理でこのユーザーが使用したプロセッサ時間を返します。

時間は 1.048576 秒の単位で返されます。

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

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

指定可能な最大長は 2000 バイトです。

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

コマンドオプション 2:ユーザーデータ格納(ACBCOP2)
オプション 説明
E ユーザーデータが Adabas システムファイルに格納されることを示します。

ACB の例

例 1

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

コントロールブロック

コマンドコード CL  
コマンドオプション 2 b 格納するユーザーデータはなし

例 2

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

コントロールブロック

コマンドコード CL  
レコードバッファ長 17 17 バイトのユーザーデータを格納
コマンドオプション 2 E ユーザーデータを格納

バッファ

レコードバッファ USER 7 NORMAL END

Top of page

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

このセクションでは、CL コマンドの 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~28 --- --- ---
ISN 29~32 バイナリ --- A
  33~36 --- --- ---
ISN 下限 37~40 バイナリ --- A
  41~44 --- --- ---
ISN 数 45~48 バイナリ --- A
  49 --- --- ---
コマンドオプション 2 50 英数字 F U
  51~114 --- --- ---
エラーサブコード 115~116 バイナリ --- A
  117~144 --- --- ---
コマンドタイム 145~152 バイナリ --- A
ユーザーエリア 153~168 該当なし --- U
--- 169~193 操作不可 --- ---

ABD とバッファ

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

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

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

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

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

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

F2

コマンドコード(ACBXCMD)

CL

レスポンスコード(ACBXRSP)

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

コマンド ID(ACBXCID)

ET ロジックユーザーの場合、Adabas はユーザーがこのフィールドで最後に正常に実行したトランザクションのトランザクションシーケンス番号を返します。 この番号はバイナリ形式で返されます。

CL コマンドには ET コマンドが含まれているため(「機能および使用」を参照)、トランザクションシーケンス番号も 1 ずつ増加します。

データベース ID(ACBXDBID)

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

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

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

ISN:I/O の数(ACBXISN)

Adabas は、このフィールドに、このセッションの Adabas コールを実行した結果、発生する入出力処理の回数を返します。

ISN 下限:コマンドの数(ACBXISL)

このフィールドには、Adabas はユーザーセッション中にユーザーが発行したコマンドの数を返します。

ISN 数:CPU 時間(ACBXISQ)

このフィールドには、Adabas は Adabas のコマンド処理でこのユーザーが使用したプロセッサ時間を返します。

時間は 1.048576 秒の単位で返されます。

コマンドオプション 2:ユーザーデータ格納(ACBXCOP2)
オプション 説明
E ユーザーデータが Adabas システムファイルに格納されることを示します。
エラーサブコード(ACBXERRC)

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

Top of page

バッファ

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

フォーマットバッファ

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

レコードバッファ

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

Top of page