C1 コマンドは、コマンド ID、PLOG、RABN チェックポイントおよびバッファフラッシュオプションを書き込みます。
このドキュメントでは、次のトピックについて説明します。
C1 コマンドを使用して、チェックポイントを取ることを要求できます。
通常、C1 コマンドは、排他制御更新ユーザー(ET ロジックを使用していないユーザー)またはシングルユーザーモードで動作しているユーザーのみが発行します。
排他ファイル制御更新を要求するユーザープログラムの冒頭で、Adabas は内部的に C1 コマンドを自動的に発行します。
C1 コマンドの結果、Adabas チェックポイントテーブルにチェックポイントエントリが書き込まれます。 このチェックポイントエントリには次の特性があります。
チェックポイント ID(コマンド ID フィールドにユーザーが指定した値)と、現在のデータプロテクションログおよびブロック番号が含まれています。
このチェックポイントエントリを使って、データベース(あるいは特定ファイル)をチェックポイントが取得されたときの状態に実際に戻すことができます。 排他制御更新処理するプログラムを再実行または再スタートするためには、事前にチェックポイントまで戻さなければなりません。
コマンドオプション 1 フィールドまたはコマンドオプション 2 フィールドに "F"(バッファフラッシュ)オプションを指定すると、コマンド処理の最後に Adabas バッファプールの内容が外部ストレージにフラッシュされます。
このセクションでは、C1 コマンドの ACB インターフェイスダイレクトコールについて説明します。 本書には、次のトピックが含まれています。
ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。
フィールド | 位置 | フォーマット | Adabas コール前 | Adabas コール後 |
---|---|---|---|---|
1~2 | -- | -- | -- | |
コマンドコード | 3~4 | 英数字 | F | U |
コマンド ID | 5~8 | 英数字 | F | A |
ファイル番号 * | 9~10 | バイナリ | F | U |
レスポンスコード | 11~12 | バイナリ | -- | A |
13~34 | -- | -- | -- | |
コマンドオプション 1 | 35 | 英数字 | F | U |
コマンドオプション 2 | 36 | 英数字 | F | U |
37~72 | -- | -- | -- | |
コマンドタイム | 73~76 | バイナリ | -- | A |
ユーザーエリア | 77~80 | -- | -- | U |
何も使用されていません。
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
* | データベース ID は、複数のデータベースにアクセスして、特定のデータベースに対してコマンド処理を制限する必要がある場合にのみ必要になります。 |
-- | 未使用 |
ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。
C1
このフィールドには、空白とゼロ以外の値を指定しなければなりません。 この値によりチェックポイントが識別されます。 各チェックポイントに指定する値は、ユニークにする必要はありません。
"0000" または "SYNC" の値は指定できません。
このフィールドの第 1 バイトには 16 進数 'FF' にセットしないでください。
データベース ID は、複数のデータベースにアクセスして、特定のデータベースに対してコマンド処理を制限する必要がある場合にのみ必要になります。
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 C1 コマンドによってゼロ以外のレスポンスコードが返された場合、Adabas コントロールブロックのバイト 45~48(アディション 2 フィールドの下位 2 バイト)に、レスポンスコードの意味を正確に定義したサブコードが含まれていることがあります。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。
オプション | 説明 |
---|---|
F(フラッシュバッファ) | コマンドオプション 1 フィールドまたはコマンドオプション 2 フィールドにこのオプションを指定すると、コマンド処理の最後に Adabas バッファプールの内容が外部ストレージにフラッシュされます。 |
チェックポイントエントリを書き込みます。 チェックポイントは値 "UCP4" で識別します。
コマンドコード | C1 | |
---|---|---|
コマンド ID | UCP4 | チェックポイント ID |
このセクションでは、C1 コマンドの 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 | 英数字/バイナリ | F | A |
データベース ID* | 17~20 | 数値 | F | U |
21~48 | --- | --- | --- | |
コマンドオプション 1 | 49 | 英数字 | F | U |
コマンドオプション 2 | 50 | 英数字 | F | U |
51~114 | --- | --- | --- | |
エラーサブコード | 115~116 | バイナリ | --- | A |
117~144 | --- | --- | --- | |
コマンドタイム | 145~152 | バイナリ | --- | A |
ユーザーエリア | 153~168 | 該当なし | --- | U |
169~193 | --- | --- | --- |
何も使用されていません。
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
* | データベース ID は、複数のデータベースにアクセスして、特定のデータベースに対してコマンド処理を制限する必要がある場合にのみ必要になります。 |
--- | 未使用 |
ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。
F2
C1
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。
このフィールドには、空白とゼロ以外の値を指定しなければなりません。 この値によりチェックポイントが識別されます。 各チェックポイントに指定する値は、ユニークにする必要はありません。
"0000" または "SYNC" の値は指定できません。
このフィールドの第 1 バイトには 16 進数 'FF' にセットしないでください。
このフィールドは、複数のデータベースにアクセスして、特定のデータベースに対するコマンド処理を制限する必要がある場合にのみデータベース ID を指定します。 Adabas コールはこのデータベースに送られます。
このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。
オプション | 説明 |
---|---|
F(フラッシュバッファ) | コマンドオプション 1 フィールドまたはコマンドオプション 2 フィールドにこのオプションを指定すると、コマンド処理の最後に、Adabas バッファプールの内容が外部ストレージにフラッシュされます。 |
コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。