7.4.1 PTPメッセージングモデル
PTPメッセージングモデルは,ポイント・ツー・ポイント(Point-to-Point)方式でメッセージを送受信するためのモデルです。
(1) PTPメッセージングモデルによるメッセージの送受信
PTPメッセージングモデルでは,メッセージを作成して送信する送信側のクライアント(プロデューサー)をセンダーといいます。また,メッセージを受信する側のクライアント(コンシューマー)をレシーバーといいます。
センダーから送信されたメッセージは,キューという送信先に登録されます。キューに格納されたメッセージは,レシーバーが受け取ると,キューから削除されます。
PTPメッセージングモデルでのメッセージの流れを次の図に示します。
メッセージは,センダーから送信され,キューに登録されます。キューに登録されたメッセージは,その時に起動しているレシーバーのどれかに配信されます(メッセージ1,メッセージ2)。レシーバーに配信されたメッセージは,キューから削除されます。配信先のレシーバーがない場合,メッセージはキューに滞留します(メッセージ3)。
なお,メッセージが登録されたキューの状態は,JMS仕様で規定されているキューブラウザーを使用して確認できます。キューブラウザーについては,JMS仕様を参照してください。
(2) PTPメッセージングモデルの特徴
PTPメッセージングモデルの特徴を次に示します。
- メッセージの送信〜処理実行までの特徴
-
PTPメッセージングモデルでのメッセージの送信から処理実行までの特徴について説明します。
-
一つまたは複数のセンダーからキューにメッセージを送信できます。
-
レシーバーは,メッセージを送信したセンダーがどれかに関係なく,メッセージを受け取り,処理します。
-
一つのメッセージは,一つのレシーバーだけで処理されます。
-
センダーとレシーバーが処理を実行するタイミングに依存性はありません。センダーがメッセージを送信したときにレシーバーが起動していなくても,レシーバーは次に起動したときにメッセージを受け取ることができます。
-
複数のレシーバーが同じキューからメッセージを受け取る場合に,メッセージの順序性が重要でないときには,それぞれのレシーバーで処理が実行されます。
-
メッセージは,センダーが送信した順序でキューに登録されます。
-
メッセージの処理順序は,メッセージの有効期限,メッセージに設定された優先順位,およびレシーバーが使用しているメッセージセレクターによって決定され,この順序に従ってレシーバーが呼び出されます。
-
レシーバーがまったく起動していない場合,送信されたメッセージはキューで保管されます。
-
- システムの特徴
-
-
センダーとレシーバーは,動的に追加・削除できます。これによって,使用状況に応じてシステムを拡張,縮小できます。
-
CJMSプロバイダとの接続で使用するコネクションは,複数のセンダーで共有できます。また,CJMSプロバイダが管理するコネクションは,複数のレシーバーで共有できます。例えば,センダー1とセンダー2でコネクションを共有したり,レシーバー1とレシーバー2でコネクションを共有したりできます。コネクションについては,「7.8.1 コネクションサービス」を参照してください。
-