0

プロジェクトを Spring 2.5.6 から 3.2.3 に、Hibernate/JPA を 4.2.3 にアップグレードしています。

トランザクション管理用の spring-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 クラスは最新の WAS で置き換えられているため、以下に :

<bean id="transactionManager"
class="org.springframework.transaction.jta.WebSphereUowTransactionManager" />

JMS msg リスナーの構成は次のようになります。

<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>

上記の構成では、WAS ログで以下のエラーが発生しています。

宛先 queue://xxQueue?busName=zzBus' の JMS メッセージ リスナー呼び出し元のセットアップが失敗しました - 回復を試みています。原因: JTA UserTransaction が利用できません - プログラムによる PlatformTransactionManager.getTransaction の使用はサポートされていません

spring 3.2.3 にアップグレードするために必要な他の構成/プロパティはありますか? または、WebSphereUowTransactionManager を構成するには、プロパティを設定する必要がありますか?

4

2 に答える 2

0

で、プロパティを にDefaultMessageListenerContainer設定してみてください。これにより、WebSphere でのトランザクション サポートが有効になります。sessionTransactedtrue

于 2013-07-17T10:39:34.023 に答える