バージョン 8.1.3
 —  ユーザー、ハイパーディスクリプタおよび照合ディスクリプタ出口  —

ユーザー出口 11(一般処理)

このユーザー出口は、Adabas ニュークリアスがコマンドを受け取った直後に Adabas から制御を受け取ります。 コマンドのタイプ(シンプルアクセス、コンプレックスアクセス、更新)の判別には使用されますが、コマンド自体は処理されません。

このユーザー出口の最も一般的な使用法としては、ACBX へのセキュリティパスワードやサイファコードの挿入があります。

このユーザー出口の機能は、従来のユーザー出口 1 とほぼ同じですが、CQX 構造と ACBX データ構造のコピーがユーザー出口 11 の処理中に使用される点が異なります。ユーザー出口 1 で使用される実際の構造は、ユーザー出口 11 では使用されません。 また、Adabas 8 以降ではユーザー出口 1 はサポートされません。

ACBX の特定フィールドのみが出口により変更される場合があります。この特定フィールドとしては、ACBXFNR(ファイル番号)、ACBXADD2(アディション 2)、ACBXADD3(アディション 3)および ACBXUSER(ユーザーエリア)が該当します。 他の ACBX フィールドを変更しても、CQX を変更しても、ニュークリアスからは無視されます。 DSECT EX11PARM は、ユーザー出口 11 のパラメータリストをマッピングします。

ユーザー出口が、標準の BASR 14,15 アセンブラ命令を使用してコールされます。 レジスタ 1 には、パラメータリストのアドレスが格納されます。 すべてのレジスタは、制御が受け取られときに保存され、Adabas に制御を返す直前にリストアされる必要があります。

注意:

  1. すべてのユーザー出口は、ユーザー出口のコール時にアクティブだったものと同じプログラム状況ワード(PSW)フィールドをコール元プログラムに返す必要があります。 この要件は、アドレッシングモード(AMODE)、プログラムマスク、問題状況のフラグ、PSW キー、およびアドレススペース制御設定において、特に重要になります。 コンディションコードを保持する必要はありません。 これらの PSW フィールドのいずれかをユーザー出口で変更する場合に、変更前の値を確実に返す方法としては、コードのうち変更部分を BAKR 命令と PR 命令で挟み込む方法があります。
  2. コール時に元の ACBX から指定されたファイル番号を変更することはできません。 ユーザー出口でファイル番号を変更する必要がある場合は、その出口に対して作成された ACBX のコピー内の ACBXFNR フィールドを変更してください。
  3. Adabas コントロールブロックのコマンドコードフィールドを変更することはできません。変更しようとすると、レスポンスコードが返されます。
  4. Adabas バッファ記述(ABD)の Adabas バッファの長さは、コールで使用されるため、変更することはできません。

入出力パラメータ

graphics/user_exit_parms.png

汎用処理 ユーザー出口 (1) パラメータ

1インジケータ:ユーザー出口 11 のコール前に、フルワードのインジケータエリアがゼロに設定されます。 ユーザー出口 11 コールの出力結果として、最初のインジケータバイトがゼロになった場合、コマンドが実行可能であることを表します。また、ゼロ以外になった場合は、コマンドが実行されないことを示し、レスポンスコード 22 が返されます。

2パラメータ長:EX11PARM パラメータリストの長さは 28 バイト以上です。

3ACB コピーのアドレス:コマンドが ACBX インターフェイスダイレクトコールを使用する場合は、このアドレスをゼロに設定する必要があります。

Top of page