2.7 ファーストメッセージ機能
ファーストメッセージ機能は,MCAが非永続メッセージを高速に転送する機能です。この機能を持つチャネルをファーストチャネルといいます。また,このチャネルが転送する非永続メッセージをファーストメッセージ,永続メッセージを通常メッセージといいます。この機能を使用する場合,TCP定義のmqtalccha定義コマンドの-s npmspeedオペランドにfastを指定します。
この機能を使用すると,送信側MCAが非永続メッセージ(MQMD構造体にMQPER_NOT_PERSISTENTを指定)を転送キューから取り出すと,転送中のバッチとは関係なく送信します。受信側MCAでは受信したメッセージを,バッチの同期点外で登録します。ファーストメッセージはほかのメッセージと同様にバッチサイズとしてカウントされて相手システムに送信されますが,バッチには含まれず,バッチがコミットされなくても再送されることはありません。
この機能の利点は,受信側MCAが非永続性メッセージを登録するとすぐに,そのメッセージは受信アプリケーションによって取り出し可能になることです。このため,バッチの残りが送信されコミットされるのを待つ必要がありません。
しかし,送信中に通信障害やあて先キューへの登録に失敗しても再送されることはないため,メッセージの送達を保証する必要がある重要なメッセージの送信には使用できません。
また,受信側キューマネジャは,メッセージをセグメント分割してあて先キューに登録する機能を持っていますが,ファーストメッセージの場合はセグメント分割して登録できません。そのため,送信側のアプリケーションによってMQMD構造体のMsgFlagsフィールドにMQMF_SEGMENTATION_ALLOWEDが指定されたメッセージが登録された場合,受信側ではセグメント分割して登録できません。このときメッセージは消滅します。メッセージのセグメント分割については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。あわせて,MQMD構造体のMsgFlagsフィールドについて,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
ファーストメッセージの転送シーケンスの例について,次の図に示します。
|
-
非永続メッセージを含む5メッセージを転送キューに登録します。
-
非永続メッセージを取り出すと転送キューから削除され,相手システムに送信されます。
-
受信したメッセージをあて先キューに登録すると,すぐに有効化され取り出し可能になります。
-
残りのメッセージを受信してバッチを有効化します。
-
残りのメッセージが有効化によってコミット(削除)されます。
ファーストメッセージの障害処理については,「7.3 ファーストメッセージ障害」を参照してください。