HI コマンドは、他のユーザーによるレコード更新を防ぎます。
このドキュメントでは、次のトピックについて説明します。
HI コマンドは、レコードをホールド状態にするのに使用します。 このコマンドを使用すると、後続の更新処理のためにレコードをホールドし、レコードが解放されるまで他のユーザーがそのレコードを更新できないようにすることができます。
ホールドするレコードのファイル番号と ISN を指定します。
ホールドするレコードが、現在他のユーザーによってホールドされている場合は、Adabas コントロールブロックのコマンドオプション 1 フィールドの設定によって、実行される処理が制御されます。 コマンドオプション 1 フィールドの設定に応じて、次の処理が行われます。
"R" の場合、ホールド対象のレコードが使用できないときは、レスポンスコード 145 が返されます。
"R" 以外の場合、レコードが使用可能になるまでユーザーは待機状態となり、使用可能になるとユーザーは自動的に再度アクティブになります。
このセクションでは、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 を設定することをお勧めします。
HI
ホールドするレコードがあるファイルの番号。
注意:
2 バイトファイル番号およびデータベース ID を使用する場合は、コントロールブロックの先頭バイトに X'30'
を入力しなければなりません。
Adabas は、コマンドのレスポンスコードをこのフィールドに返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 HI コマンドによってゼロ以外のレスポンスコードが返された場合、Adabas コントロールブロックのバイト 45~48(アディション 2 フィールドの下位 2 バイト)に、レスポンスコードの意味を正確に定義したサブコードが含まれていることがあります。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。
ホールド状態にするレコードの ISN。
ホールド対象のレコードが、現在他のユーザーにホールドされている場合、コマンドオプション 1 フィールドの指定によって次の処理が行われます。
オプション | 説明 |
---|---|
R(リターン) | ホールド対象のレコードが使用不可の場合にレスポンスコード 145 が返されます。 コマンドは待機状態にはなりません。 |
それ以外の場合は、レコードが使用可能になり、コマンドとユーザーが自動的にアクティブになるまで、またはトランザクションがタイムアウトになるまで、コマンドは待機状態になります。
ファイル番号 2 の ISN 番号 3 のレコードをホールド状態にします。 レコードが使用可能になるまで待機状態となります。
コマンドコード | HI | |
---|---|---|
ファイル番号 | 2 | ホールドするレコードはファイル番号 2 にあります。 |
ISN | 3 | ISN 番号 3 のレコードをホールドします。 |
コマンドオプション 1 | b | レスポンスコード 145 オプション使用しません |
このセクションでは、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 を設定することをお勧めします。
F2
HI
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。
このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。
このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。
このフィールドを使用して、Adabas コールで送る必要のあるファイル数を指定します。
このフィールドは 4 バイトのバイナリフィールドですが、ファイル番号はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
このフィールドは、ホールド状態にするレコードの ISN を指定するのに使用します。
ACBXISN フィールドは、8 バイトの ACBXISNG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISNG フィールドの上位部分には、バイナリの 0 を設定します。
ホールド対象のレコードが、現在他のユーザーにホールドされている場合、コマンドオプション 1 フィールドの指定によって次の処理が行われます。
オプション | 説明 |
---|---|
R(リターン) | ホールド対象のレコードが使用不可の場合にレスポンスコード 145 が返されます。 コマンドは待機状態にはなりません。 |
それ以外の場合は、レコードが使用可能になり、コマンドとユーザーが自動的にアクティブになるまで、またはトランザクションがタイムアウトになるまで、コマンドは待機状態になります。
コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。