これら EGL プログラムからの抜粋は、IMS™ 端末、メッセージ・キュー・およびシリアル・ファイルとの相互作用を示します。
//PSB の定義
レコード addToQueue タイプ PSBRecord { defaultPSBName="MYTRXCD1" }
// IMS の CBLTDLI を必要とする 3 つの PCB
iopcb IO_PCBRecord { @PCB { pcbType = TP } };
elaalt ALT_PCBRecord { @PCB { pcbType = TP } };
elaexp ALT_PCBRecord { @PCB { pcbType = TP } };
// 他のデータベース PCB
...
end
レコード myTransactionPart タイプ serialRecord
{ fileName=”MYMSGQUE” }
...
end
program addtrans type textUIProgram
{ alias = “MYTRXCD1”, // IMS は、pgm が PSB 名と一致することを必要とします
segmented = yes,
@DLI { psb = “mypsb” }}
use MYFORMS; // MYFORMS は、FORM1 を含む formGroup です
// 変数の宣言
myTransaction myTransactionPart; // メッセージ・キューのシリアル・レコード
mypsb addToQueue; // psb
function main()
converse FORM1;
// 処理が必要なことをすべて実行
move FORM1 to myTransaction byName;
add myTransaction;
end
end
<ResourceAssociations name="RESOURCEASSOC601_REORDER">
<association fileName="MYMSGQUE">
<imsvs>
<smsgq systemName=”NEXTTRX" pcbName="elaalt"/>
</imsvs>
</association>
<association fileName="MYINQUE">
<imsvs>
<smsgq systemName=”NEXTTRX" pcbName="iopcb"/>
</imsvs>
</association>
</ResourceAssociations>
addtrans は、textUI プログラムであるため、EGL によって、IMS 環境下で正常に機能し、キューが空になるまでメッセージ・キューを読み取るようにされます。 これは、EGL がループをプログラムにビルドして、プログラムが後のバッチ処理のためにトランザクションをシリアル・ファイルに配置することを完了すると、converse 文に戻って、もう 1 つのトランザクションを端末に要求するようになることを意味します。
プログラムを作成して、プログラム addtrans がメッセージ・キューに書き込むメッセージを処理することもできます。プログラムは、シリアル・ファイルからレコードを取得して、そのシリアル・ファイルを I/O PCB に関連付ける基本プログラムでなければなりません。
//PSB の定義
レコード getFromQueue タイプ PSBRecord { defaultPSBName="MYTRXCD2" }
// IMS の CBLTDLI を必要とする 3 つの PCB
iopcb IO_PCBRecord { @PCB { pcbType = TP } };
elaalt ALT_PCBRecord { @PCB { pcbType = TP } };
elaexp ALT_PCBRecord { @PCB { pcbType = TP } };
// 他のデータベース PCB
end
プログラム gettrans タイプ basicProgram
{ alias = “MYTRXCD2”
@DLI { psb = “mypsb” }}
// 変数の宣言
myTransaction myTransactionPart // メッセージ・キューのシリアル・レコード
{fileName="MYINQUE"};
mypsb getFromQueue; // psb
function main()
while (myTransaction not endOfFile)
get next myTransaction;
// 必要な処理をすべて実行
end
end
end
IMS/VS または IMS BMP 環境でプログラムを生成するときは、シリアル・ファイルをメッセージ・キューに関連付けるリソース関連パーツを指定しなければなりません。これにより送信先のトランザクションの名前が、使用する PCB の名前とともに提供されます。 この場合、前のセクションの ResourceAssociations パーツで示されているように、I/O PCB が入力に使用されます。
関連概念
DL/I データベース・サポート
関連リファレンス
add
audit()
close
converse
get next
関連タスク
IMS での端末との対話
IMS でのシリアル・ファイルおよび印刷ファイルの使用