3.10.5 未処理送信メッセージ廃棄通知イベント(ERREVTA)
-
OpenTP1の正常終了コマンド(dcstopコマンド)を実行したあとに,出力キューに残っているメッセージを廃棄したとき
-
OpenTP1が稼働している間に,未処理送信メッセージが残っている出力キューをmcftdlqleコマンドまたはdc_mcf_tdlqle関数で削除したとき
-
タイマ起動のdc_mcf_execap関数を呼び出して,タイマ監視中にOpenTP1の正常終了コマンド(dcstopコマンド)を実行したとき
- 〈この項の構成〉
(1) ERREVTAが通知されるまでの流れ
MHPが正常終了すると,出力キューに送信するメッセージが出力されます。閉塞解除されている論理端末において,メッセージが送信待ちしている状態で,OpenTP1を正常終了する場合,出力キューにある送信メッセージを送信し終わるまでMCFは終了を待ちます。このとき,送信する先のシステムの障害などで送信できない場合,時間切れ(タイムアウト)となり,送信するメッセージを廃棄します。このメッセージの廃棄を知らせるためにERREVTAが通知されます。タイムアウトになる時間は,タイマ定義(mcfttim -t)のmtimオペランドに指定した値で監視しています。
ただし,dc_mcf_execap関数によるタイマ起動要求メッセージや閉塞されている論理端末の出力キューに残っている未処理送信メッセージは,未処理送信メッセージ滞留時間の監視対象にはなりません。そのため,OpenTP1の正常終了コマンド(dcstopコマンド)を実行すると,メッセージはすぐに破棄され,ERREVTAが通知されます。
ERREVTAの概要を次の図に示します。
|
-
OpenTP1の正常終了コマンド(dcstopコマンド)を実行します。タイマ起動要求メッセージや閉塞されている論理端末の出力キューに未処理送信メッセージが残っていた場合は,このタイミングでメッセージが破棄され,MCFからERREVTAが通知されます。
-
MHPで正常に処理されたメッセージが出力キューに格納されます。
-
出力キューのメッセージの送信タイムアウトで,出力するメッセージが廃棄されました。
-
MCFからERREVTAが通知されます。
-
ERREVTAのMCFイベント処理用MHPがスケジュールされます。
-
ユーザファイルなどに退避します。