GSAM ファイルまたは IMS™ メッセージ・キューとして実装されているシリアル・ファイルに適用される特殊な考慮事項
IMS BMP または z/OS® バッチ環境での GSAM (汎用順次アクセス方式) ファイルの場合は、
次の特殊な考慮事項が適用されます。
- get next のみ、GSAM で使用できる get ステートメントの形式となります。
- 単一プログラムでは、同じ GSAM ファイルに add と get
next ステートメントの組み合わせを含めることはできません。
- GSAM ファイルに関連したシリアル・レコードに get ステートメントを使用すると、
GSAM データベースに GN 呼び出しが行われます。
- GSAM に関連したファイルから可変長のシリアル・レコードを読み取る場合、
レコード長が物理ファイルより長ければ、DL/I は空の状況コードを戻します。データは切り捨てられますが、
状態を検出できないため、メッセージは出ません。
IMS BMP または z/OS バッチ環境の IMS メッセージ・キューに関連したシリアル・ファイルの場合は、
次の特殊な考慮事項が適用されます。
- get next のみが、
IMS メッセージ・キューで使用できる get ステートメントの形式となります。
- 単一プログラムでは、同じ IMS メッセージ・キューにファイルに add と get
next ステートメントの組み合わせを含めることはできません。
- IMS メッセージ・キューに関連したシリアル・ファイルに
get next を使用するには、シリアル・ファイルを入出力 PCB に関連付ける必要があります。
- get next ステートメントは、textUI プログラム、
または textUI プログラムから呼び出される基本プログラムではサポートされません。基本プログラムは、
1 つのシリアル入力ファイルのみを入出力 PCB に関連付けることができます。EGL は、データをシリアル・レコードに移動する前に、
IMS メッセージ・ヘッダー (長さ、ZZ フィールド、
およびトランザクション・コード) をメッセージから自動的に除去します。
- 単一セグメントのメッセージ・キューに関連したシリアル・レコードに get ステートメントを使用すると、
入出力 PCB に GU 呼び出しが行われます。この GU 呼び出しにより、自動的なコミット点ができます。
- 複数セグメントのメッセージ・キューに割り当てられたシリアル・レコードに使用した最初の get ステートメントにより、
入出力 PCB に GU 呼び出しが行われます。以降の get next ステートメントでは、
noRecordFound (状況コード QD) の条件を満たすまで、GN 呼び出しが行われます。
noRecordFound の後の最初の get next により、
別の GU 呼び出しが行われ、endOfFile (状況コード QC) に達するまでこの処理が続きます。それぞれの GU 呼び出しにより、自動的なコミット点ができます。
- 基本プログラムのいずれのスケジューリングの間も、プログラムは 1 つのメッセージ・キューにのみ
get next ステートメントを使用できます。 IMS がプログラムをスケジュールする場合のトランザクション・コードにより、読み取るメッセージ・キューが決まります。生成時に指定されたシステム・リソースは無視されます。