spring多数据源的配置(分布式事务管理)
来源:互联网 发布:致得软件 编辑:程序博客网 时间:2024/05/17 06:31
spring多数据源的配置(分布式事务管理)
不依赖于应用服务器(这里使用tomcat服务器)的开源jta分布式事务管理的实现有两种方式,分别为:Jotm、atomikos,下面着重讲解用这两种方式如何配置多数据源并支持分布式事务管理
1、Jotm(Java Open Transaction Manager)
1.1、jotm:即基于java开放事务管理器,实现jta规范,能够运行在非应用服务器环境中,web容器或独立java se环境,官网地址:http://jotm.objectweb.org/
1.2、依赖的jar文件
jotm-client.jar
jotm-core.jar
jotm-datasource.jar
jotm-jms.jar
jotm-standalone.jar
ow2-jta-1.1-spec.jar
xapool.jar
1.3、首先配置支持Jotm工厂Bean
<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"> <property name="defaultTimeout" value="500000"></property> </bean>
1.4、配置分布式数据源
<pre name="code" class="html"><bean id="dataSource" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm"/> <property name="driverName" value="${database.driverClass}"/> <property name="url" value="${database.jdbcUrl}"/> </bean> </property> <property name="user" value="${database.user}"></property> <property name="password" value="${database.password}"></property> </bean> <bean id="dataSource2" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm"/> <property name="driverName" value="${database2.driverClass}"/> <property name="url" value="${database2.jdbcUrl}"/> </bean> </property> <property name="user" value="${database2.user}"></property> <property name="password" value="${database2.password}"></property> </bean>
1.5、配置数据管理
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="userTransaction" ref="jotm" /></bean>
2.1、依赖的jar文件
transactions-jdbc
transactions-jta
transactions-api
transactions
atomikos-utils
transactions-jta
transactions-api
transactions
atomikos-utils
2.2、配置多数据源
下面以informix、Oracle数据库为例
<bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"><property name="uniqueResourceName" value="dataSource"/><property name="xaDataSourceClassName" value="com.informix.jdbcx.IfxXADataSource"/><property name="xaProperties"><props><prop key="ifxIFXHOST">${database.ifxhost}</prop><prop key="serverName">${database.serverName}</prop><prop key="portNumber">${database.portNumber}</prop><prop key="databaseName">${database.databaseName}</prop><prop key="user">${database.user} </prop><prop key="password">${database.password} </prop></props></property><property name="maxPoolSize"><value>30</value> </property></bean><bean id="dataSource2" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"><property name="uniqueResourceName" value="malldataSource"/><property name="xaDataSourceClassName" value="oracle.jdbc.xa.client.OracleXADataSource"/><property name="xaProperties"><props><prop key="URL">${database2.jdbcUrl} </prop><prop key="user">${database2.user} </prop><prop key="password">${database2.password} </prop></props></property><property name="maxPoolSize"><value>30</value> </property></bean>
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close"><property name="forceShutdown"><value>true</value></property></bean><bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"><property name="transactionTimeout" value="240"/></bean><bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"><property name="transactionManager"><ref bean="atomikosTransactionManager"/></property><property name="userTransaction"><ref bean="atomikosUserTransaction"/></property></bean>
经过测试,以上两种配置都可以实现分布式事务管理。
0 0
- spring多数据源的配置(分布式事务管理)
- JOTM分布式事务管理(多数据源)配置
- JOTM分布式事务管理(多数据源)配置
- Spring多数据源配置及事务管理(待续)
- atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA)
- Spring Boot多数据源及其事务管理配置
- springmvc+mybatis多数据源分布式事务管理
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- 多数据源的事务管理
- Spring中实现多数据源事务管理
- Spring中实现多数据源事务管理
- Spring 多数据源 @Transactional 注解事务管理
- 在spring、tomcat中使用多数据源并支持分布式事务管理
- 多数据源配置 情况 下的事务管理
- 多数据源配置 情况 下的事务管理
- Spring配置多数据源和JOTM分布式事务解决方案
- OCP 1Z0 053 72
- Qt5官方demo解析集18——Chapter 4: Using Custom Property Types
- UVA 465 Overflow 高精度加法和乘法运算
- [Liferay] 异常 :Could not initialize class com.liferay.util.portlet.PortletProps
- Bluez
- spring多数据源的配置(分布式事务管理)
- maven如何使用全教程
- 支持并行数据库的并行结构
- Split
- .net gridview根据时间节点改变字体颜色
- rtems交叉编译工具的安装
- C++设计模式实现--访问者(Visitor)模式
- 苹果receipt样例
- UVA 10129 Play on Words