2

私はトピックにメッセージを公開するためにJMSTemplateを使用しているパブリッシャー/サブスクライバモデルを使用しています。私はdefaultmessagelistenercontainerを使用してメッセージの購読と受信を行っています。SetsessiontransactedはPub/subモデルのJMSTemplateとDefaultMessageListenerContainerでどのように動作するのですか

どちらの設定でもsessionTransactedをtrueに設定することができます。しかし、私が置くとどうなりますか

1)JMSTemplate setsessionTransactedのみがtrueになっていますか?

2)messagelistenercontainer setsessiontransacted true?

3)JMSTemplateとmessagelistenercontainerの両方がtrueに設定されていますか?

トピックとサブスクライバに送信されたメッセージとメッセージを受信して​​必要な作業を実行するという点で、これらの3つの要素の違いを知りたいだけです。私が理解しようとしている私の中心的な質問は、

です。

トピックに送信されるメッセージ及び加入メッセージを受信し、それに必要な作業を行う

答えて

0

トランザクションが分離されています。消費者は、送信がコミットされるまでメッセージを取得しません。

メッセージを消費して同じスレッドで別のメッセージを送信し、両方がトランザクションされた場合、両方が同じトランスレーションで実行されます。

+0

私はjmsTemplateとDMLCトランザクションが分かれていると理解しています。 – africandrogba

+0

私が理解したところでは、jmsTemplateトランザクションとDMLCトランザクションは別々です。したがって、私のDMLC sessiontransactionがtrueに設定されている場合、onMessage()メソッド内のすべてのコードはトランザクション内で実行されます。 onMessage()に例外があった場合はどうなりますか?メッセージがリスナーに再送信され、実行が再開されますか? – africandrogba

+0

トピックをキューではなく使用しています – africandrogba

関連する問題