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

HI コマンド:レコードのホールド

HI コマンドは、他のユーザーによるレコード更新を防ぎます。

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


機能および使用

HI コマンドは、レコードをホールド状態にするのに使用します。 このコマンドを使用すると、後続の更新処理のためにレコードをホールドし、レコードが解放されるまで他のユーザーがそのレコードを更新できないようにすることができます。

ホールドするレコードのファイル番号と ISN を指定します。

ホールドするレコードが、現在他のユーザーによってホールドされている場合は、Adabas コントロールブロックのコマンドオプション 1 フィールドの設定によって、実行される処理が制御されます。 コマンドオプション 1 フィールドの設定に応じて、次の処理が行われます。

Top of page

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

このセクションでは、H1 コマンドの 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~34 -- -- --
コマンドオプション 1 35 英数字 F U
  36~72 -- -- --
コマンドタイム 73~76 バイナリ -- A
ユーザーエリア 77~80 -- -- U

バッファエリア

何も使用されていません。

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
-- 未使用

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

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

コマンドコード(ACBCMD)

HI

ファイル番号(ACBFNR)

ホールドするレコードがあるファイルの番号。

注意:
2 バイトファイル番号およびデータベース ID を使用する場合は、コントロールブロックの先頭バイトに X'30' を入力しなければなりません。

レスポンスコード(ACBRSP)

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

ISN(ACBISN)

ホールド状態にするレコードの ISN。

コマンドオプション 1:レコードが使用不可の場合、レスポンスコード 145(ACBCOP1)

ホールド対象のレコードが、現在他のユーザーにホールドされている場合、コマンドオプション 1 フィールドの指定によって次の処理が行われます。

オプション 説明
R(リターン) ホールド対象のレコードが使用不可の場合にレスポンスコード 145 が返されます。 コマンドは待機状態にはなりません。

それ以外の場合は、レコードが使用可能になり、コマンドとユーザーが自動的にアクティブになるまで、またはトランザクションがタイムアウトになるまで、コマンドは待機状態になります。

ACB の例

ファイル番号 2 の ISN 番号 3 のレコードをホールド状態にします。 レコードが使用可能になるまで待機状態となります。

コントロールブロック

コマンドコード HI  
ファイル番号 2 ホールドするレコードはファイル番号 2 にあります。
ISN 3 ISN 番号 3 のレコードをホールドします。
コマンドオプション 1 b レスポンスコード 145 オプション使用しません

Top of page

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

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

コントロールブロックとバッファの概要

コントロールブロック

ダイレクトコールが開始される前に、未使用の 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~48 --- --- ---
コマンドオプション 1 49 英数字 F U
  50~114 --- --- ---
エラーサブコード 115~116 バイナリ --- A
  117~144 --- --- ---
コマンドタイム 145~152 バイナリ --- A
ユーザーエリア 153~168 該当なし --- U
--- 169~193 操作不可 --- ---

バッファエリア

何も使用されていません。

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

F Adabas コール前にユーザーが入力するフィールド
A Adabas により入力されるフィールド
U Adabas コール後も変化なし
-- 未使用

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

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

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

F2

コマンドコード(ACBXCMD)

HI

レスポンスコード(ACBXRSP)

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

データベース ID(ACBXDBID)

このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。

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

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

ファイル番号(ACBXFNR)

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

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

ISN(ACBXISN)

このフィールドは、ホールド状態にするレコードの ISN を指定するのに使用します。

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

コマンドオプション 1:レコードが使用不可の場合、レスポンスコード 145(ACBXCOP1)

ホールド対象のレコードが、現在他のユーザーにホールドされている場合、コマンドオプション 1 フィールドの指定によって次の処理が行われます。

オプション 説明
R(リターン) ホールド対象のレコードが使用不可の場合にレスポンスコード 145 が返されます。 コマンドは待機状態にはなりません。

それ以外の場合は、レコードが使用可能になり、コマンドとユーザーが自動的にアクティブになるまで、またはトランザクションがタイムアウトになるまで、コマンドは待機状態になります。

エラーサブコード(ACBXERRC)

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

Top of page