E1 コマンドは、ホールドオプション付きでレコードを削除したり、ファイルをリフレッシュしたりします。
このドキュメントでは、次のトピックについて説明します。
E1 コマンドは、レコードの ISN を指定して 1 レコードを削除したり、ISN の値を 0 にしてファイルをリフレッシュします(0 件状態)。
削除するレコードのファイル番号と ISN を指定する必要があります。 Adabas は、データストレージからレコードを削除します。 ISN を指定せず、コマンド ID フィールドに空白を設定し、かつ指定したファイルを前回 ADALOD パラメータ PGMREFRESH=YES オプション付きでロードした場合、E1 コマンドはそのファイルの全レコードを削除し、アソシエータとデータストレージを単一エクステントに削減して、そのファイルをリフレッシュします。
レコードの削除またはファイル全体をリフレッシュしたとき、E1 コマンドはアソシエータにも必要な変更を行います。 同じ E1 コマンド処理で、レコードの削除とファイルのリフレッシュを同時に行うことはできません。
マルチユーザーモードで実行中で、かつ削除対象のレコードがホールド状態でない場合、Adabas はユーザーに対してそのレコードをホールド状態にします。 レコードが別のユーザーに対してホールド状態になっている場合、E1 コマンドはレコードが使用可能になるまで待機状態になります。 コマンドオプション 1 フィールドに R オプションを指定した場合に、要求したレコードが使用できないと、レスポンスコード 145 が返されます。
注意:
以前の Adabas リリースでサポートしていた E4 コマンドは、E1 コマンドとして実行されます。
このセクションでは、E1 コマンドの ACB インターフェイスダイレクトコールについて説明します。 本書には、次のトピックが含まれています。
ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。
フィールド | 位置 | フォーマット | Adabas コール前 | Adabas コール後 |
---|---|---|---|---|
1~2 | -- | -- | -- | |
コマンドコード | 3~4 | 英数字 | F | U |
コマンド ID | 5~8 | 英数字/バイナリ | F | U |
ファイル番号 | 9~10 | バイナリ | F | U |
レスポンスコード | 11~12 | バイナリ | -- | A |
ISN | 13~16 | バイナリ | F | U |
ISN 下限 | 17~20 | バイナリ | -- | A1 |
ISN 数 | 21~24 | バイナリ | -- | A1 |
25~34 | -- | -- | -- | |
コマンドオプション 1 | 35 | 英数字 | F | U |
36~48 | -- | -- | -- | |
アディション 3 | 49~56 | 英数字 | F | A |
アディション 4 | 57~64 | 英数字 | F | A |
65~72 | -- | -- | -- | |
コマンドタイム | 73~76 | バイナリ | -- | A |
ユーザーエリア | 77~80 | -- | -- | U |
これらのフィールドは使用されますが、カップリングファイルが使用されている場合は Adabas によりリセットされません。
何も使用されていません。
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
-- | 未使用 |
ダイレクトコールが開始される前に、未使用の ACB フィールドにバイナリの 0 を設定することをお勧めします。
E1
ファイルをリフレッシュするときは、このフィールドを空白にし、ISN フィールドをゼロにセットします。 ISN フィールドをゼロにして、このフィールドに空白以外の値をセットすると、E1 コマンドは、指定ファイルから ISN 0 のレコードを削除しようとするため、レスポンスコード 114 が返されます。
読み込むファイルの番号を 2 進数で指定します。 物理ダイレクトコールの場合は、次のようファイル番号を指定します。
1 バイトファイル番号の場合は、ファイル番号を第 2 バイト(10)に入力します。第 1 バイト(9)は、バイナリの 0(B'0000 0000')をセットします。
2 バイトファイル番号の場合は、2 バイト(9 と 10)を使います。
注意:
2 バイトファイル番号およびデータベース ID を使用する場合は、コントロールブロックの先頭バイトに X'30'
を入力しなければなりません。
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 E1 コマンドによってゼロ以外のレスポンスコードが返された場合、Adabas コントロールブロックのバイト 47~48(アディション 2 フィールドの下位 2 バイト)に、レスポンスコードの意味を正確に定義したサブコードが含まれていることがあります。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。
削除するレコードの ISN。 このフィールドがゼロであり、かつコマンド ID フィールドに空白がセットされていると、ファイル番号フィールドに指定したファイルがリフレッシュされます。 このフィールドがゼロでも、コマンド ID フィールドが空白以外の場合、レスポンスコード 114 が返されます。
これらのフィールドは、ハードカップリングファイルが使用されない場合にのみ、E1 コマンド処理の終了後、空値に設定されます。 カップリングファイルを使用した場合、これらのフィールドは E1 コマンド処理に使用され、リセットされません。
ユーザーが ET ロジックユーザーであり、削除するレコードがそのユーザーによってホールド状態にされていない場合は、そのレコードはホールド状態になります。 削除するレコードが、他のユーザーにホールドされている場合、コマンドオプション 1 フィールドの設定によって次の処理が行われます。
オプション | 説明 |
---|---|
R(リターン) | 削除するレコードが使用不可の場合に、レスポンスコード 145 が返されます。 コマンドは待機状態にはなりません。 |
それ以外の場合、Adabas はレコードが使用できるようになるかトランザクションがタイムアウトになるまで、E1 コマンドを待機状態にします。
このフィールドは、Adabas Security または ADAESI パスワードを指定するため使用します。 データベース、ファイル、またはフィールドがセキュリティ保護されている場合は、有効なセキュリティパスワードまたは ADAESI パスワードをユーザーは指定する必要があります。 パスワードを保護するために、コマンド処理時にアディション 3 フィールドに空白がセットされます。
このフィールドは、サイファコードを指定するために使用します。 ファイルを暗号化する場合は、有効なサイファコードを指定する必要があります。 ファイルを暗号化しない場合は、このフィールドに空白をセットする必要があります。
Adabas は、コマンド処理時に、サイファコードに空白をセットし、バージョンコードとデータベース ID をフィールドの下位 3 バイトに返します。 詳細については「コントロールブロックフィールド」を参照してください。
ファイル 2 の ISN 4 を削除します。
コマンドコード | E1 | |
---|---|---|
ファイル番号 | 2 | 削除するレコードはファイル 2 にあります。 |
ISN | 4 | ISN4 のレコードを削除します。 |
アディション 3 | パスワード | ファイル 2 はセキュリティ保護されています。 |
ファイル番号フィールドに指定したファイル(ファイル番号 4)をリフレッシュします。
コマンドコード | E1 | |
---|---|---|
ファイル番号 | 4 | ファイル 4 をリフレッシュします。 |
ISN | バイナリの 0 に設定します。 | |
コマンド ID | bbbb | 空白に設定します。 |
E1 コマンドはファイル(ファイル番号 4)をリフレッシュします。
このセクションでは、E1 コマンドの 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 | U |
データベース ID | 17~20 | 数値 | F | U |
ファイル番号 | 21~24 | 数値 | F | U |
25~28 | --- | --- | ||
ISN | 29~32 | バイナリ | F | U |
33~36 | --- | --- | ||
ISN 下限 | 37~40 | バイナリ | --- | A1 |
41~44 | --- | --- | ||
ISN 数 | 45~48 | バイナリ | --- | A1 |
コマンドオプション 1 | 49 | 英数字 | F | U |
50~68 | --- | --- | --- | |
アディション 3 | 69~76 | 英数字/バイナリ | F | A |
アディション 4 | 77~84 | 英数字 | F | A |
85~114 | --- | --- | --- | |
エラーサブコード | 115~116 | バイナリ | --- | A |
117~144 | --- | --- | --- | |
コマンドタイム | 145~152 | バイナリ | --- | A |
ユーザーエリア | 153~168 | 該当なし | --- | U |
--- | 169~193 | 操作不可 | --- | --- |
これらのフィールドは使用されますが、カップリングファイルが使用されている場合は Adabas によりリセットされません。
何も使用されていません。
上記の意味は次に示すとおりです。
F | Adabas コール前にユーザーが入力するフィールド |
A | Adabas により入力されるフィールド |
U | Adabas コール後も変化なし |
--- | 未使用 |
ダイレクトコールが開始される前に、未使用の ACBX フィールドにバイナリの 0 を設定することをお勧めします。
F2
E1
Adabas はこのフィールドに、コマンドのレスポンスコードを返します。 レスポンスコード 0 は、このコマンドが正しく実行されたことを示します。 ゼロ以外のレスポンスコードは、エラーサブコード(ACBXERRC)フィールドにサブコードを伴う場合があります。詳細は、Adabas メッセージおよびコード のドキュメントを参照してください。
ファイルをリフレッシュするときは、このフィールドを空白にし、ISN フィールドをゼロにセットします。 ISN フィールドをゼロにして、このフィールドに空白以外の値をセットすると、E1 コマンドは、指定ファイルから ISN 0 のレコードを削除しようとするため、レスポンスコード 114 が返されます。
このフィールドを使用して、データベース ID を指定します。 Adabas コールはこのデータベースに送られます。
このフィールドは 4 バイトのバイナリフィールドですが、現時点では 2 バイトのデータベース ID のみがサポートされています。 したがって、データベース ID はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
このフィールドがバイナリの 0 に設定されている場合は、Adabas API は DDCARD 入力データで指定された ADARUN カードのデータベース ID か、リンクされているかリンクルーチンによりロードされた LNKGBLS モジュールで指定されているデフォルトのデータベース ID 値のいずれかを使用します。
このフィールドを使用して、Adabas コールで送る必要のあるファイル数を指定します。
このフィールドは 4 バイトのバイナリフィールドですが、ファイル番号はフィールドの下位部分(右端のバイト)に指定し、その前にバイナリの 0 を付加する必要があります。
削除するレコードの ISN。 このフィールドがゼロであり、かつコマンド ID フィールドに空白がセットされていると、ファイル番号フィールドに指定したファイルがリフレッシュされます。 このフィールドがゼロでも、コマンド ID フィールドが空白以外の場合、レスポンスコード 114 が返されます。
ACBXISL フィールドは、8 バイトの ACBXISLG フィールドに埋め込まれた 4 バイトのバイナリフィールドで、まだ使用されていません。 ACBXISLG フィールドの上位部分には、バイナリの 0 を設定します。
このフィールドは、ハードカップリングファイルが使用されない限り、E1 コマンド処理終了後、空値にセットされます。 カップリングファイルが使用されている場合は、このフィールドは E1 コマンドの処理に使用され、リセットされません。
このフィールドは、ハードカップリングファイルが使用されない限り、E1 コマンド処理終了後、空値にセットされます。 カップリングファイルが使用されている場合は、このフィールドは E1 コマンドの処理に使用され、リセットされません。
ユーザーが ET ロジックユーザーであり、削除するレコードがそのユーザーによってホールド状態にされていない場合は、そのレコードはホールド状態になります。 削除するレコードが、他のユーザーにホールドされている場合、コマンドオプション 1 フィールドの設定によって次の処理が行われます。
オプション | 説明 |
---|---|
R(リターン) | 削除するレコードが使用不可の場合に、レスポンスコード 145 が返されます。 コマンドは待機状態にはなりません。 |
それ以外の場合、Adabas はレコードが使用できるようになるかトランザクションがタイムアウトになるまで、E1 コマンドを待機状態にします。
このフィールドは、Adabas Security または ADAESI パスワードを指定するため使用します。 データベース、ファイル、またはフィールドがセキュリティ保護されている場合は、有効なセキュリティパスワードまたは ADAESI パスワードをユーザーは指定する必要があります。 パスワードを保護するために、コマンド処理時にアディション 3 フィールドに空白がセットされます。
このフィールドは、サイファコードを指定するために使用します。 ファイルを暗号化する場合は、有効なサイファコードを指定する必要があります。 ファイルを暗号化しない場合は、このフィールドに空白をセットする必要があります。
Adabas は、コマンド処理時に、サイファコードに空白をセットし、バージョンコードとデータベース ID をフィールドの下位 3 バイトに返します。 詳細については「コントロールブロックフィールド」を参照してください。
コマンドがゼロ以外のレスポンスコードを返したときは、このフィールドにレスポンスコードの正確な意味を定義したサブコードが含まれます。 レスポンスコードとサブコードについては、『Adabas メッセージおよびコード』を参照してください。