如何使用Spring和weblogic设置xa数据源

时间:2014-10-13 12:34:13

标签: java spring spring-mvc jpa weblogic

我在Spring 4.0中创建xa数据源时遇到了问题。

我使用xa驱动程序在weblogic中设置了我的数据源。 然后我在spring中为数据源添加了添加的jndi-lookup:

<jee:jndi-lookup id="dataSourceOne" jndi-name="/jdbc/XAONE" resource-ref="true" />
<jee:jndi-lookup id="dataSourceTwo" jndi-name="/jdbc/XATWO" resource-ref="true" />

然后我创建了实体管理器的配置:

<bean id="emfone" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSourceOne" />
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="packagesToScan" value="..." />
</bean>

<bean id="emftwo"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSourceTwo" />
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="packagesToScan" value="..." />
</bean>

<bean id="jpaVendorAdapter"
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <property name="database" value="ORACLE" />
    <property name="showSql" value="true" />
    <property name="generateDdl" value="false" />
    <property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" />
</bean>

在此之后我配置了我的事务管理器:

<tx:annotation-driven />
<tx:jta-transaction-manager />

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="emfone" />
    <qualifier value="tmOne"/>
</bean>

<bean id="docTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="emftwo" />
    <qualifier value="tmTwo"/>
</bean>

我有一个用@Transactional注释的服务类方法,它调用DAO。 DAO使用两个实体管理器来持久化数据。

当DAO尝试继续使用emftwo时,将抛出正在进行的事务错误。有人知道我哪里出错吗?

谢谢,

0 个答案:

没有答案