2011-04-01 31 views
0

我想知道是否有人可以幫我一個大問題,我試圖用Spring 2.5.6實現更多的jmsTransactionManagers,但它不工作。JmsTransactionManager與更多的連接工廠

我有5個連接因素,因爲我必須從5個不同的環境讀寫。它們都在我的隊列xml bean中,但是因爲當我從一個隊列中讀取消息並且它們不符合選項時,我會使用事務管理器進行回滾。

所以我的問題是,我如何配置更多的JmsTransactionManagers。

+0

顯示你的配置而不是描述它;) – Bozho 2011-04-01 15:32:51

回答

-1

你可以給事務管理

<bean class="org.springframework.jms.connection.JmsTransactionManager"> 
    <property name="connectionFactory" ref="connectionFactory1"></property> 
</bean> 

<bean class="org.springframework.jms.connection.JmsTransactionManager"> 
    <property name="connectionFactory" ref="connectionFactory2"></property> 
</bean> 
+0

這將不起作用,爲了事務的工作,你需要給Spring一個PlatformTransactionManager,你在這裏做的是有效的語法,但是第二個JmsTransactionManager不能被使用 – 2011-04-03 07:13:51

1

你必須,如果你需要一個以上的JMS會話事務性訪問使用JTA添加connectionFactory的參考。在這種情況下,您根本不會使用JmsTransactionManager,您可以使用JtaTransactionManager並在分佈式事務中登記所有這些連接。這假定所有的JMS連接都是XA兼容的(通常連接工廠不同,例如ActiveMQXAConnectionFactory與ActiveMQConnectionFactory)。

如果您未使用應用程序服務器(glassfish,weblogic,jboss AS等),則可以部署獨立的JTA實現(atomikos或jboss TS)。它們的配置各不相同,但Spring支持其中的大部分。