Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

7.4.1 PTPメッセージングモデル

PTPメッセージングモデルは,ポイント・ツー・ポイント(Point-to-Point)方式でメッセージを送受信するためのモデルです。

<この項の構成>
(1) PTPメッセージングモデルによるメッセージの送受信
(2) PTPメッセージングモデルの特徴

(1) PTPメッセージングモデルによるメッセージの送受信

PTPメッセージングモデルでは,メッセージを作成して送信する送信側のクライアント(プロデューサー)をセンダーといいます。また,メッセージを受信する側のクライアント(コンシューマー)をレシーバーといいます。

センダーから送信されたメッセージは,キューという送信先に登録されます。キューに格納されたメッセージは,レシーバーが受け取ると,キューから削除されます。

PTPメッセージングモデルでのメッセージの流れを次の図に示します。

図7-5 PTPメッセージングモデルでのメッセージの流れ

[図データ]

メッセージは,センダーから送信され,キューに登録されます。キューに登録されたメッセージは,その時に起動しているレシーバーのどれかに配信されます(メッセージ1,メッセージ2)。レシーバーに配信されたメッセージは,キューから削除されます。配信先のレシーバーがない場合,メッセージはキューに滞留します(メッセージ3)。

なお,メッセージが登録されたキューの状態は,JMS仕様で規定されているキューブラウザーを使用して確認できます。キューブラウザーについては,JMS仕様を参照してください。

(2) PTPメッセージングモデルの特徴

PTPメッセージングモデルの特徴を次に示します。

メッセージの送信~処理実行までの特徴
PTPメッセージングモデルでのメッセージの送信から処理実行までの特徴について説明します。
  • 一つまたは複数のセンダーからキューにメッセージを送信できます。
  • レシーバーは,メッセージを送信したセンダーがどれかに関係なく,メッセージを受け取り,処理します。
  • 一つのメッセージは,一つのレシーバーだけで処理されます。
  • センダーとレシーバーが処理を実行するタイミングに依存性はありません。センダーがメッセージを送信したときにレシーバーが起動していなくても,レシーバーは次に起動したときにメッセージを受け取ることができます。
  • 複数のレシーバーが同じキューからメッセージを受け取る場合に,メッセージの順序性が重要でないときには,それぞれのレシーバーで処理が実行されます。
  • メッセージは,センダーが送信した順序でキューに登録されます。
  • メッセージの処理順序は,メッセージの有効期限,メッセージに設定された優先順位,およびレシーバーが使用しているメッセージセレクターによって決定され,この順序に従ってレシーバーが呼び出されます。
  • レシーバーがまったく起動していない場合,送信されたメッセージはキューで保管されます。

システムの特徴
  • センダーとレシーバーは,動的に追加・削除できます。これによって,使用状況に応じてシステムを拡張,縮小できます。
  • CJMSプロバイダとの接続で使用するコネクションは,複数のセンダーで共有できます。また,CJMSプロバイダが管理するコネクションは,複数のレシーバーで共有できます。例えば,センダー1とセンダー2でコネクションを共有したり,レシーバー1とレシーバー2でコネクションを共有したりできます。コネクションについては,「7.8.1 コネクションサービス」を参照してください。