お世話になっております。MESSAGE/400などで行っている処理についてですが、MSGW状態として、MSGQにメッセージが届いたときにプログラムを実行する(?)という処理を作成したいのですが、どのように制御しているのか分かりません。どのような命令を使用すればこのような制御ができるのでしょうか。よろしくお願いいたします。
そんなに難しい仕組みではないと思います。まだ最初に、RCVMSG コマンドは自分のメッセージだけでなく他の任意のメッセージ待ち行列を監視することができます。次にすべてのメッセージ待ち行列は ライブラリー QSYS に配置されています。このことからすべてのメッセージ待ち行列の中で活動中のものを LOOP で検索して 待機時間*MAX で RCVMSG によって監視するCLP を次々とバッチ投入すれば目的の処理は可能です。ただソフトウェア製品となると、ひとつのプログラムの中でマルチスレッドで監視用スレッドを立ち上げるようにしないと不細工であり、管理が面倒になります。簡単な例で考えるとバッチ投入した JOB を別の対話式JOB でRCVMSG *MAX で監視するプログラムなら簡単に作れます。これの複数のケースですから、これくらいの監視システムなら簡単に自作できると思います。例えば MSGW になったJOB が発生した場合、あなたの PCにWindows ダイアログのメッセージを送るようにすれば明確に目立った処置となります。
IKDさん RCVMSGを使用すればよろしいのですね。早速試させていただきます。ありがとうございました。