Interstage JMSが提供している以下の機能について説明します。
メッセージングモデル
Interstage JMSでは、メッセージングモデルとして、以下のモデルをサポートしています。
複数の受信者に対して同一のメッセージを配信する1対nのメッセージングモデルです。
複数の受信者に対して同一のメッセージを配信
メッセージブローカを介して、プロデューサとコンシューマが連携します。
Durable Subscription
アプリケーションがアクティブではない間に送信されたメッセージを、アプリケーションがアクティブになった後に受信できます。
Shared Subscription
サブスクリプションを複数のコンシューマで共有します。配信されたメッセージは、サブスクリプションを共有するコンシューマに自動的に振り分けられ、並列で処理されます。
コンシューマの形態として、待機型とMessage Listenerを使用した起動型をサポート
メッセージの優先度および生存時間の制御
Publish/Subscribeメッセージングモデルを使用した場合の効果を以下に示します。
複数のコンシューマに配信
プロデューサは、1つの宛先にメッセージを送信することにより、接続しているコンシューマの数を意識することなく、複数のコンシューマに同一のメッセージを配信できます。
運用変更によるアプリケーションへの影響が少ない
コンシューマの増減に対して、プロデューサを変更する必要はありません。
特定の受信者に対してメッセージを配信する1対1のメッセージングモデルです。
1拠点から1拠点への非同期通信
メッセージブローカを介して、プロデューサとコンシューマが連携します。
複数のコンシューマが接続している場合、メッセージを受信できるのは1つのコンシューマだけです。メッセージは、自動的に振り分けられます。
コンシューマの形態として、待機型とMessage Listenerを使用した起動型をサポート
メッセージの優先度および生存時間の制御
Point-To-Pointメッセージングモデルを使用した場合の効果を以下に示します。
運用性向上
Publish/Subscribeメッセージングモデルでは、コンシューマの生成前に配信されたメッセージは破棄されます。
しかし、Point-To-Pointメッセージングモデルでは、コンシューマの状態にかかわらず配信されたメッセージが物理格納先に蓄積され、コンシューマを生成した後に蓄積されたメッセージを受信できます。
メッセージング機能
Interstage JMSのメッセージング機能として、以下の機能をサポートしています。
メッセージの不揮発化機能、およびローカルトランザクション機能により、メッセージの重複/欠落を防止します。グローバルトランザクション機能により、メッセージの送受信とDB更新などの処理と整合性を保証します。
メッセージセレクタ機能は、プロデューサから送られる多様なメッセージの中から、コンシューマが受信したいメッセージを指定して受け取ることができる機能です。
プロデューサでは、メッセージを識別/分類するための情報をメッセージのプロパティフィールドに設定し、メッセージを送信します。
コンシューマでは、受信開始時に受信したいメッセージを特定するための条件式を指定します。以降、コンシューマは、条件式に一致したプロパティを持つメッセージだけを受信します。
Publish/Subscribeメッセージングモデルでは、条件式に一致しないメッセージは破棄されます。Point-To-Pointメッセージングモデルでは、条件式に一致しないメッセージは読み飛ばされます。
メッセージセレクタ機能を使用した場合の効果を以下に示します。
コンシューマが興味のある情報だけを取得可能
プロデューサが送信したすべてのメッセージを受信することなく、コンシューマが興味のあるメッセージだけを受信でき、運用性が向上します。
例
プロデューサが国際/社会/政治/経済/天気予報/スポーツ/芸能などのジャンルのニュースを送信する場合、あるコンシューマは、天気予報/スポーツなどの特定の情報だけを受信できます。
キューブラウザ機能は、アプリケーションがキュー(物理格納先)に蓄積されているメッセージをブラウジングするための機能です。
ブラウジング中にキューからメッセージを取り出しても、メッセージは削除されません。
キューブラウザ機能を使用することにより、キューの内容を表示する機能を持ったアプリケーションの開発が容易になります。
本機能は、Point-To-Pointメッセージングモデル(1対1メッセージングモデル)において使用できます。
メッセージブローカ機能
Interstage JMSでは、メッセージブローカを使用して、非同期メッセージ通信を実現しています。詳細については、「2.19.1 メッセージブローカ」以降の説明を参照してください。