要求: 我們需要從JMS隊列(由不同的應用程序發佈)檢索消息並將消息保存在我們的JMS隊列中。需要整個流程是事務性的,以防萬一消息不能保存在下游JMS隊列中,那麼從上游JMS隊列接收的消息就不應該被確認。 我的配置是如下應該在從一個JMS隊列持久化到另一個JMS隊列時使用JmsTransactionManager
<int-jms:message-driven-channel-adapter
id="MessageDrivenAdapter" channel=" jmsMessageChannel " destination="sourceDestination"
connectionFactory="CF1"
acknowledge="transacted"
/>
<int:channel id=" jmsMessageChannel " />
<int-jms:outbound-channel-adapter id="sendsomemsg"
channel=" jmsMessageChannel " destination=」finalDestination」
connectionFactory="CF2"
session-transacted="true" />
我需要在這種情況下使用一個JmsTransactionManager或者應該是上面的配置足矣。我們可以處理重複的消息,所以我相信我們不需要XA事務。
這些組件正在使用相同的連接工廠。 –
連接工廠不同。編輯過代碼。所以相信會需要使用JmsTransactionManager – vjm
不,如果您發現「ChainedTransactionManager」複雜,您需要'JtaTransactionManager'或任何其他XA實現。共享的單個'JmsTransactionManager'不適用於你的情況。 –