spring+jotm 多数据源事务管理系列
spring+jotm 多数据源事务管理(一)jdbc
spring+jotm 多数据源事务管理(二)hibernate
spring+jotm 多数据源事务管理(三)JNDI+Tomcat
首先需要将jotm相关jar包加入到tomcat中,如下:
o jotm.jar
o jotm_jrmp_stubs.jar
o ow_carol.jar
o jta.jar
o jta-spec1_0_1.jar
o jts1_0.jar
o objectweb-datasource.jar
o xapool.jar
o howl.jar
o commons-cli-1.0.jar
o connector-1_5.jar
tomcat中配置context:
<Context docBase="D:\workspace\test\WebContent" path="/test" reloadable="true" > <Resource name="jdbc/test1" auth="Container" factory="org.objectweb.jndi.DataSourceFactory" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8" username="root" password="123456" maxActive="20" maxIdle="10" maxWait="10000"/> <Resource name="jdbc/test2" auth="Container" factory="org.objectweb.jndi.DataSourceFactory" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf-8" username="root" password="123456" maxActive="20" maxIdle="10" maxWait="10000"/> <Transaction factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/> </Context>
spring配置文件中使用jndi的方式关联数据源:
<jee:jndi-lookup id="dataSource1" jndi-name="jdbc/test1" /> <jee:jndi-lookup id="dataSource2" jndi-name="jdbc/test2" /> <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean" /> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="userTransaction" ref="jotm" /> </bean>
只需要将数据源换成jndi的方式即可,其它不变,
另外记得要在项目编译路径下添加前文中提到的carol.properties。