ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

3.15 JMSの提供機能

本製品が提供するInterstage Java EEのJMS(以降、Interstage JMS)は、Java EE規約で規定された非同期によるメッセージ通信を行うJava APIです。非同期によるメッセージ通信のメリットは、メッセージの送信アプリケーション(以降、Producer)がメッセージの受信アプリケーション(以降、Consumer)の稼動状態に依存することなく、メッセージの送受信ができることです。
なお以降の説明では、Producer(プロデューサ)とConsumer(コンシューマ)を総称してJMSクライアントと呼びます。

以下ではInterstage JMSが提供しているメッセージングモデル、メッセージング機能、メッセージブローカ機能について説明します。

メッセージングモデル

Interstage JMSではメッセージングモデルとして、以下のモデルをサポートしています。

Publish/Subscribeメッセージングモデル(1対nメッセージングモデル)

複数の受信者に対して同一のメッセージを配信する1対nのメッセージングモデルです。

  • 複数の受信者に対して同一のメッセージを配信
    メッセージブローカを介して、プロデューサとコンシューマが連携します。

  • Durable Subscription
    アプリケーションがアクティブではない間に送信されたメッセージを、アプリケーションがアクティブになった後に受信できます。

  • コンシューマの形態として待機型とMessage Listenerを使用した起動型をサポート

  • メッセージの優先度および生存時間の制御

Publish/Subscribeメッセージングモデルを使用した場合の効果を以下に示します。

  • 複数のコンシューマに配信
    プロデューサは、1つの宛先にメッセージを送信することで、接続しているコンシューマの数を意識することなく、複数のコンシューマに同一のメッセージを配信できます。

  • 運用変更によるアプリケーションへの影響が少ない
    コンシューマの増減に対して、プロデューサの変更は不要です。

Point-To-Pointメッセージングモデル(1対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はメッセージブローカを使用して、非同期メッセージ通信を実現しています。詳細は「3.15.1 メッセージブローカ」以降を参照してください。