UAPから一方送信メッセージの送信要求があったときに,指定されたサービスごとに出力キュー(OTQ)の閉塞状態の管理ができるよう,出力キューは送信先サービスグループのサービス単位に管理されます。
なお,出力キューはメモリ上で管理されるため,サーバダウンによる再開始時は閉塞状態を引き継げません。ただし,CLサーバについては,出力キューの閉塞状態を実行系から待機系に転送することで,閉塞状態を保証(永続化)します。出力キューの閉塞状態の永続化については,「7.6.4 トランザクションと非同期に転送されるリソースの永続化」を参照してください。
出力キューは,送信元となるXTCの送信先サービス関連定義のeemchsrvdef定義コマンドで定義します。送信先となるXTCのサービスグループごとに,サービスグループ名とサービス名を定義します。
出力キューが閉塞すると,次のような状態になります。
出力キューが閉塞する要因を次に示します。
表2-2 出力キューの自動閉塞の対象となる障害
項番 | 自動閉塞の対象となる障害 | システムの処理 |
---|---|---|
1 | 一方送信メッセージの送信障害※ | 送信先サービスグループ下の全サービスに対応する出力キューを閉塞(サービスグループレベルの自動閉塞) |
2 | 一方送信メッセージの送信障害(パケットサイズの不正) | |
3 | 一方送信メッセージの送達確認待ちタイムアウト※ | |
4 | 送達確認エラーメッセージ受信(CL同期エラー)※ | |
5 | 送達確認エラーメッセージ受信(送信先サービスグループ名の不正) | |
6 | 送達確認エラーメッセージ受信(送信先サービスの閉塞)※ | 送信先サービスに対応する出力キューを閉塞(サービスレベルの自動閉塞) |
7 | 送達確認エラーメッセージ受信(送信先サービス名の不正,メッセージ送信形態・オプションの不正) |
一方送信メッセージの送信障害時の出力キューの自動閉塞を次の図に示します。
図2-10 一方送信メッセージの送信障害時の出力キューの自動閉塞
XTCは,出力キューの閉塞状態を監視します。監視時間の間隔は,高速メッセージ送信関連定義のmch_send_otqwatch_time_intervalオペランドで定義します。
また,出力キューの閉塞解除は,APIまたはコマンドによる指示があったときにだけ行います。
出力キューの閉塞監視と閉塞解除の流れを次の図に示します。
図2-11 出力キューの閉塞監視と閉塞解除の流れ
XTCの終了処理時,出力キューに未送信メッセージが残っている間は,終了処理の待ち合わせを行います。終了処理の待ち合わせを行うのは,XTCの終了形態が正常終了または計画停止Aの場合です。計画停止B,強制終了,またはプロセスダウンの場合,待ち合わせは行いません。
待ち合わせ方法は次の3とおりです。
待ち合わせ中であっても,eemchotqendコマンドを入力することでXTCを終了できます。
なお,待ち合わせ方法は高速メッセージ送信関連定義のmch_send_end_otqwatchオペランドで指定します。