我們正在將項目從Spring 2.5.6升級到3.2.3,並將Hibernate/JPA升級到4.2.3。JMS消息偵聽器調用程序的設置失敗,目標隊列:XYZ:沒有JTA UserTransaction可用
在彈簧ds.xml中的事務管理,我們更換原來的配置如下
<bean id="transactionManager"
class="org.springframework.transaction.jta.WebSphereUowTransactionManager">
<!-- This property is specifically required for JMS -->
<property name="transactionManager" ref="baseTransactionManager" />
</bean>
<bean id="baseTransactionManager"
class="org.springframework.transaction.jta.WebSphereTransactionManagerFactoryBean" />
<tx:annotation-driven transaction-manager="transactionManager" />
以下爲WebSphereTransactionManagerFactoryBean類取代在最近的一項是:
<bean id="transactionManager"
class="org.springframework.transaction.jta.WebSphereUowTransactionManager" />
和JMS味精監聽器的配置看起來像如下:
<bean id="xxtMsgListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsxxConnectionFactory" />
<property name="destination" ref="jmsxxQueue" />
<property name="messageListener" ref="xxMessageListener" />
<property name="transactionManager" ref="transactionManager" />
<property name="taskExecutor" ref="taskExecutor" />
</bean>
以上配置我們ar Ë得到下面的錯誤在WAS日誌:
JMS消息監聽器調用的安裝程序失敗目的地 隊列:// xxQueue busName = zzBus' - 試圖恢復?原因:沒有JTA UserTransactionavailable - 不支持編程式PlatformTransactionManager.getTransaction使用不支持
是否有升級到spring 3.2.3所需的任何其他配置/屬性?或配置WebSphereUowTransactionManager是否需要設置任何屬性?