非springBoot 分布式事务JTA(atomikos)解决方案

atomikos + spring + jboss 6

atomikos transactions Essentials 为分布式事务开源免费版本

背景

业务需要跨多个数据库进行处理。

分布式事务主流有几种解决方案,最初选型为SEATA,
而系统架构比较久,spring4.2 + hibernate 4.3, 且现行大部分方案都基于springBoot,直接升级为springboot风险和成本比较高。

在不大幅度改动现有架构的前提, 采用JTA 协议的实现 atomikos transactions Essentials。
优点:小范围对依赖包进行升级,通过配置可以实现分布式事务的控制;

xml 配置(核心内容参考)

数据源 与JPA配置

	<bean id="xxx_dataSource" class="com.alibaba.druid.pool.xa.DruidXADataSource" init-method="init" destroy-method="close"> 
	    <!-- 基本属性 url、user、password -->
		<property name="url" value="jdbc:oracle:thin:@ (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=ip)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sid)))" />
	    <property name="username" value="ss" />
	    <property name="password" value="ss" />
	
	    <!-- 配置初始化大小、最小、最大 -->
	    <property name="initialSize" value="1" />
	    <property name="minIdle" value="1" /> 
	    <property name="maxActive" value="20" />
	
	    <!-- 配置获取连接等待超时的时间 -->
	    <property name="maxWait" value="60000" />
	
	    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
	    <property name="timeBetweenEvictionRunsMillis" value="60000" />
	
	    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
	    <property name="minEvictableIdleTimeMillis" value="300000" />
	
	    <property name="validationQuery" value="SELECT 1 from dual" />
	    <property name="testWhileIdle" value
  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值