2
我有兩個jms出站通道適配器從pub-sub通道讀取的情況,我希望他們參與事務。換句話說,我想把這個信息寫給他們兩個,或者一個也不寫。儘管我將會話事務設置爲true,但似乎並未發生。以下是我的配置:同一事務中的出站通道適配器
<int:publish-subscribe-channel id="test.pubsub" ignore-failures="false" ></int:publish-subscribe-channel>
<jms:outbound-channel-adapter channel="test.pubsub" order="1" destination-name="${outbound.queue}" session-transacted="true"
connection-factory="${connection.factory}"></jms:outbound-channel-adapter>
<jms:outbound-channel-adapter id="jmsOutputMirror" session-transacted="true"
destination-name="${outbound.queue.mirror}"
connection-factory="${connection.factory}"
channel="test.pubsub" order="2">
</jms:outbound-channel-adapter>
它們都從CachingConnectionFactory獲得它們的連接。
只是爲了我的理解:問題不在於我的流中的組件不能共享事務,而是我需要指定事務的邊界是什麼。對於每一個流量,Spring都不會在「開始」 – neesh
M-m-m處開始交易。如果你不這樣說,Spring不會開始交易。所有關於'sessionTransacted'的知識都取決於JMS會話中的本地TX以進行特定的調用。在這兩個JMS調用之前,全局事務必須由上游控制。 –