【发布时间】:2020-11-23 16:37:39
【问题描述】:
我在 server.xml 中定义了两个数据源,我想将它们与 jta 事务管理器一起使用。但是如何关联 jndi 和事务管理器?
这里是 server.xml
<dataSource jndiName="jdbc/db1" id="jdbc/db1" auth="Container" type="javax.sql.XADataSource">
<jdbcDriver libraryRef="DBLIB" javax.sql.XADataSource="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
<properties databaseName="" URL="jdbc:mysql://ip:port/DB?useUnicode=true&characterEncoding=UTF-8&useSSL=false" user="user" password="pwd" />
<connectionManager id="jdbc/sqlPool" maxPoolSize="30" minPoolSize="20" connectionTimeout="180" reapTime="180" unusedTimeout="1800" agedTimeout="0" />
</dataSource>
<dataSource jndiName="jdbc/db2" id="jdbc/db2" auth="Container" type="javax.sql.XADataSource">
<jdbcDriver libraryRef="DBLIB" javax.sql.XADataSource="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
<properties databaseName="" URL="jdbc:mysql://ip:port/DB?useUnicode=true&characterEncoding=UTF-8&useSSL=false" user="user" password="pwd" />
<connectionManager id="jdbc/sqlPool" maxPoolSize="30" minPoolSize="20" connectionTimeout="180" reapTime="180" unusedTimeout="1800" agedTimeout="0" />
</dataSource>
这里是 applicationContext.xml
<!--jta-->
<bean id="jtaTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" >
<property name="forceShutdown" value="true"/>
</bean>
<bean id="userTransaction" class="com.atomikos.icatch.jta.J2eeUserTransaction">
<property name="transactionTimeout" value="300"/>
</bean>
<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager">
<property name="userTransaction" ref="userTransaction"/>
<property name="transactionManager" ref="jtaTransactionManager"/>
<property name="allowCustomIsolationLevels" value="true"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<jee:jndi-lookup id="datasource1" jndi-name="jdbc/db1"></jee:jndi-lookup>
<jee:jndi-lookup id="datasource2" jndi-name="jdbc/db2"></jee:jndi-lookup>
这个问题看起来和我的一样。但是 transactionManager 不允许 dataSource 属性 Spring Transaction with JNDI and JPA transaction manager
【问题讨论】:
-
我可以用 AtomikosDataSourceBean 配置数据源类型吗?
标签: spring transactions jndi jta