HI コマンド(レコードのホールド)

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


機能および使用

HI オプションは、レコードをホールド状態にするために使用します。つまり、他のユーザーに対しレコードをロックします。詳細については、「概念および機能」の「競合更新、共有ロックおよび階層ロック」を参照してください。このコマンドを使用して、レコードのロックモードを共有から排他にアップグレードすることもできます。ユーザーがすでにレコードの排他的ロックをホールドしている場合、ロックモードは変更されません。

ロックが別のコマンドでアップグレードされるか、ET または BT コマンドで解放されるか、または RI コマンドで解放またはダウングレードされるまで、レコードは要求されたロックモードのままです。

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

HI コマンドは、ホールド状態に置かれる ISN が存在するかどうかをチェックしません。

Adabas は、このコマンドが別のユーザーのロックによって妨げられていない場合にのみ、このコマンドを実行します。レコードが使用可能でない場合、ユーザーは待機状態になり、レコードが再び使用可能になると Adabas によって自動的に再アクティブ化されます。

RETURN オプション付 HI コマンドを発行し、かつホールドするレコードが現在利用できない場合、Adabas はユーザーを待機状態にするのではなく、レスポンスコード 145 を返します。

graphics/hi.png

HI Command, Procedure Flow

コントロールブロック

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

バッファエリア

バッファ  
フォーマットバッファ –/–
レコードバッファ –/–
サーチバッファ –/–
バリューバッファ –/–
ISN バッファ –/–
フォーマット:
A 英数字
B 2 進数
x/y Adabasコール前/後 - xとyは、値を取ることができます。
A Adabas によって設定
F ユーザーによって設定
U Adabas コール後も変更なし
- 使用しません

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

コントロールブロック

コマンドコード

HI

File Number

ホールドするレコードを持つファイル番号。

Response Code

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

ISN

ホールド状態にするレコードの ISN を示します。

コマンドオプション 1

このフィールドに R を指定すると、RETURN オプションを使用することを示します。削除対象レコードが他のユーザーによってホールドされていると、そのレコードが使用可能になるまでユーザーは待ち状態にならずに、レスポンスコード 145 が返されます。

コマンドオプション 3(ACBX のみ)

レコードがまだ共有または排他的にロックされていない場合、このフィールドの「S」はレコードを共有ホールド状態にします。レコードは、ロックが排他的ロックにアップグレードされるか、ET、BT、または RI コマンドでロックが再度解除されるまで、共有ホールド状態のままになります。

このフィールドに空白またはバイナリの 0 があると、レコードは排他的ホールド状態になります。

アディション 2

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

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

コントロールブロック:

Command Code         hi
File Number           2 (record to be held is in file 2)
ISN                   3 (record with ISN 3 to be held)
Command Option 1      b (Return option not used)
Command Option 3      b (exclusive lock)

ファイル 2 の ISN 4 のレコードを共有ホールド状態にします。レコードが排他的にロックされているか、他のユーザーによる排他的ロックを待機している場合、Adabas はレスポンスコード 145 を返します。

コントロールブロック:

Command Code         hi
File Number           2 (record to be held is in file 2)
ISN                   4 (record with ISN 4 to be held)
Command Option 1      R (Return option used)
Command Option 3      S