TP1/Message Queueは,TCP/IPプロトコルを使用してほかのシステムへメッセージを送信します。この項では,メッセージ送信の処理の流れについて説明します。また,メッセージがセグメント分割された場合のメッセージ送信についても説明します。
自システムの送信側MCAは,チャネル確立後,TCP定義のmqtalccha定義コマンドの-qオプションで指定した転送キューに登録されたメッセージを相手システムの受信側MCAに送信します。メッセージ送信の流れについて,次の図に示します。
図2-26 メッセージ送信の流れ
メッセージが転送キューに登録されていれば,送信側MCAは,転送キューに登録されているすべてのメッセージの取り出しをMQAサーバに要求し,受信側MCAに送信します。取り出したメッセージがチャネルの最大メッセージ長より大きい場合,メッセージはデッドレターキューへ登録されます。メッセージが登録されていなければ,チャネルを解放します。
MQTサーバが送信するメッセージの分割単位をセグメントといいます。
バッファ方式がセグメント方式のチャネルの場合,送信側MCAは,転送キューに登録されているメッセージをセグメントごとに分割して取り出し送信します。セグメントサイズよりも大きいサイズの送信バッファが必要になります。
最大セグメントサイズを大きくすると,転送処理を削減でき,性能が向上します。また,受信側MCAが分割受信機能を持たない場合,一つのセグメントに入りきらないメッセージはデッドレターキューに登録されます。
バッファ方式がメッセージ方式のチャネルの場合,送信側MCAは,転送キューに登録されているメッセージを一度に取り出しセグメントごとに送信します。メッセージサイズよりも大きいサイズの送信バッファが必要になります。
送信バッファ方式の概要について,次の図に示します。図中の括弧付き数字は,処理の順序を表します。
図2-27 送信バッファ方式の概要