PCB レコード・パーツのプロパティー

EGL は、以下のプログラム連絡ブロック (PCB) レコード・パーツを提供しています。
IO_PCBRecord
COBOL 通信プログラムが端末を使用してユーザーと通信できるようにする pcbType=TP の PCB。
ALT_PCBRecord
COBOL 通信プログラムが出力メッセージ用の宛先を変更できるようにする pcbType=TP の PCB。
DB_PCBRecord
DL/I データベースへの COBOL プログラムのアクセスを決定する pcbType=DB の PCB。
GSAM_PCBRecord
テープ・ファイルや SYSIN などの 単純な順次データ・セットへの COBOL プログラムのアクセスを決定する pcbType=GSAM の PCB。
これらの、定義およびフィールドを含む、レコード・パーツの詳細に関しては、 『レコード・タイプとプロパティー』を参照してください。
4 つのレコード・パーツはすべて、以下のプロパティーを共用します。
@PCB
この複合プロパティーは、ランタイム PCB の基本的な特性を定義します。 レコードが以前の PCB の再定義である場合をのぞき、4 つのレコード・パーツすべてでこのプロパティーが必要です。 @PCB 複合プロパティーの以下のフィールドのいずれかまたはすべてを指定するためには、値の設定ブロックを使用します。
pcbType PCBKind
このフィールドは、レコードが定義する PCB の種類を EGL に指示します。pcbType は、 PCBKind 列挙型の以下の値の 1 つである必要があります。
DB
データベース PCB (DB_PCBRecord)
GSAM
順次ファイル PCB (GSAM_PCBRecord)
TP
通信プログラム PCB (IO_PCBRecord または ALT_PCBRecord)
IMS™ 環境と CICS® 環境の両方で PSB を使用しようとする場合、pcbType が必要です。 CICS 環境での実行時、EGL は pcbType の値をチェックし、GSAM または TP PCB は無視します。
pcbName char(8)
AIBTDLI インターフェースを使用しようとする場合は、DL/I PSB にある PCB の名前を EGL に指示する必要があります。 これは次の 2 つの方法で実行できます。
  • DL/I PSB でレコードが持っているのと同じ名前を PCB レコードに付けることができます。
  • pcbName フィールドを使用して、DL/I PCB の名前を EGL PCB の名前と関連付けることができます。
PCB レコードにランタイム PCB と同じ名前を付けなかった場合に、AIBTDLI インターフェースを使用するときは、 ここで、ランタイム PCB の名前を指定することができます。 CBLTDLI インターフェースはこの名前を使用しないので、CBLTDLI を使用する場合、EGL PCB レコードの名前は、 ランタイム PCB の名前と一致しなければなりません。
secondaryIndex char(8)
2 次索引を使用してデータベース・レコードを配列するとき、これが DL/I PCB のインデックス名になります。 この名前は、ルート・セグメント・レコードに指定されたキー項目の代わりに、 ルート・セグメントにデフォルトの修飾 SSA の左側で使用されます。
secondaryIndexItem FieldReference
2 次索引を使用する場合は、これが 2 次索引の値を保持する関連 PCB レコードのフィールド名です。 これは、指定した PCB 用ルート・セグメントのデフォルトの修飾 SSA のホスト変数の値です。
hierarchy
このフィールドはデータベース・セグメント間の関係を記述する @Relationship プロパティーの配列を含みます。 それらのプロパティーの構造は次のとおりです。
@Relationship
@Relationship プロパティーにより、以下のフィールドをもつ値の設定ブロックが導入されます。
segmentRecord STRING
階層内のセグメント名
parentRecord STRING
segmentRecord 用親レコードの名前。segmentRecord でルート・セグメントを指定する場合、 parentRecord に 0 を設定するか、または parentRecord のフィールドを省略するかのどちらかを行えます。
ターゲット環境が、CBLTDLI インターフェースを使用する IMS の場合、 以下の PCB を名前順で定義しなければなりません。EGL は内部操作にこれらの PCB を使用します。
iopcb
PCBType TP の PCB を表している、タイプ IO_PCBRecord の変数。
elaalt
PCBType TP の 代替索引 PCB を表している、タイプ ALT_PCBRecord の変数。
elaexp
PCBType TP の Alternate Express PCB を表している、タイプ ALT_PCBRecord の変数。
必要な場合、それぞれの DL/I PCB 名でこれらの PCB を関連付けるために pcbName フィールドを使用します。
次の例を表示します。
Record CustomerPSB type PSBRecord { defaultPSBName="STBICLG" }
	// three PCBs required for CBLTDLI on IMS
	iopcb IO_PCBRecord { @PCB { pcbType = TP } };
	elaalt ALT_PCBRecord { @PCB { pcbType = TP } };
	elaexp ALT_PCBRecord { @PCB { pcbType = TP } };
	
	// database PCB defining three segment levels
	customerPCB DB_PCBRecord { @PCB {
		pcbType = DB,
		pcbName = "STDCDBL",
		hierarchy = [
			@Relationship { segmentRecord = "CustomerRecordPart" },
			@Relationship { 
				segmentRecord = "LocationRecordPart", parentRecord = "CustomerRecordPart" },
			@Relationship { 
				segmentRecord = "OrderRecordPart", parentRecord = "LocationRecordPart" },
			@Relationship { 
				segmentRecord = "ItemRecordPart", parentRecord = "OrderRecordPart" },
			@Relationship { 
				segmentRecord = "CreditRecordPart", parentRecord = "CustomerRecordPart" },
			@Relationship { 
				segmentRecord = "HistoryRecordPart", parentRecord = "CustomerRecordPart" }]}};
フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.