JMS パブリッシュ/サブスクライブ(pub/sub)モデルは、JMSクライアントがメッセージをどのようにパブリッシュし、トピックからのメッセージにどのようにサブスクライブするかを定義します。 PTPモデルとは異なり、パブリッシャにより生成されるメッセージは、複数のコンシューマによりサブスクライブされ、消費されます。 次に例を示します。
メッセージは、1つまたは複数のトピックパブリッシャによりトピックにパブリッシュされます。 該当するユーザは、1つまたは複数のトピックにサブスクライブして、パブリッシュされたメッセージを受信します。 トピックでは、キューとは別の方法でメッセージが保存されます。そのため、トピックにサブスクライバがない場合、着信メッセージは破棄されます。 サブスクライバは、サブスクライブ後にトピックに送信されたメッセージだけを取得します。
トピックへのサブスクライブは、永続的または一時的のいずれかです。 永続的サブスクライブでは、サブスクライバはいつでも非アクティブになれます。 サブスクライバが再び接続すると(既存のサブスクライブを開く)、非アクティブの間トピックにより受信されたメッセージが、そのサブスクライバに配信されます。 これにより、トピックサブスクライバは、持続メッセージを利用できます。
このチュートリアルのpub/subの例は、次のリストのとおりです。
このサンプルプログラムでは、トピックパブリッシャおよびトピックサブスクライバを使用したJMS Pub/Subモデルを使用します。
トピックサブスクライバは永続的でない限り、アクティブなときにトピックにパブリッシュされたメッセージだけを受信します。 各永続的サブスクライバには、固有の名前およびクライアントIDがあります。永続的サブスクライブのサブスクライバを使用できるセッションは一度に1つだけです。 このサンプルプログラムでは、永続的なサブスクライブの作成方法と削除方法、およびメッセージの受信を示します。