Atomikos spring例子

下载AtomikosTransactionsEssentials-3.7.0M5-bin.zip
ojdbc14.jar,mysql-connector-java-5.0.8-bin.jar,spring.jar(2.0),log4j-1.2.14.jar,commons-logging.jar
工程类似,其实不是web工程
[img]http://dl.iteye.com/upload/attachment/423535/16f92891-6935-35b0-ab95-69507322e1e5.jpg[/img]
import.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="mysqlDS"
class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init"
destroy-method="close">
<description>mysql xa datasource</description>
<property name="uniqueResourceName">
<value>mysql_ds</value>
</property>
<property name="xaDataSourceClassName">
<value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">root</prop>
<prop key="password">haoning</prop>
<prop key="URL">jdbc:mysql://localhost:3306/test</prop>
</props>
</property>
</bean>
<bean id="oracleDS" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<description>oracle xa datasource</description>
<property name="uniqueResourceName">
<value>oracle_ds</value>
</property>
<property name="xaDataSourceClassName">
<value>oracle.jdbc.xa.client.OracleXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">UNIFLOW</prop>
<prop key="password">UNIFLOW</prop>
<prop key="URL">jdbc:oracle:thin:@10.4.120.126:1521:E4CS</prop>
</props>
</property>
</bean>
<bean id="atomikosUserTransaction"
class="com.atomikos.icatch.jta.UserTransactionImp">
<description>UserTransactionImp</description>
<property name="transactionTimeout" value="300"/>
</bean>
<bean id="atomikosTransactionManager"
class="com.atomikos.icatch.jta.UserTransactionManager"
init-method="init" destroy-method="close">
<description>UserTransactionManager</description>
<property name="forceShutdown">
<value>true</value>
</property>
</bean>
<bean id="springTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<description>JtaTransactionManager</description>
<property name="transactionManager">
<ref bean="atomikosTransactionManager" />
</property>
<property name="userTransaction">
<ref bean="atomikosUserTransaction" />
</property>
</bean>
<bean id="transactionProxyFactoryBean"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="springTransactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<bean id="helloDao" class="com.jta.HelloDaoImpl">
<property name="dataSource" ref="mysqlDS" />
</bean>
<bean id="worldDao" class="com.jta.WorldDaoImpl">
<property name="dataSource" ref="oracleDS" />
</bean>
<bean id="helloBiz" class="com.jta.HelloBizImpl">
<property name="helloDao" ref="helloDao" />
<property name="worldDao" ref="worldDao" />
</bean>
<bean id="helloBizProxy" parent="transactionProxyFactoryBean">
<property name="target">
<ref bean="helloBiz" />
</property>
</bean>
</beans>

jta.properties
com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory
com.atomikos.icatch.console_file_name = tm.out
com.atomikos.icatch.log_base_name = tmlog
com.atomikos.icatch.tm_unique_name = com.atomikos.spring.jdbc.tm
com.atomikos.icatch.console_log_level = INFO


package com.jta;
public interface HelloBiz {
public void insertTwoDatabase() throws Exception;
}
package com.jta;
public class HelloBizImpl implements HelloBiz {
private HelloDao helloDao;
private WorldDao worldDao;
public void insertTwoDatabase() throws Exception{
this.getHelloDao().addHello();//mysql
this.getWorldDao().addWorld();//oracle
}
public HelloDao getHelloDao() {
return helloDao;
}
public void setHelloDao(HelloDao helloDao) {
this.helloDao = helloDao;
}
public WorldDao getWorldDao() {
return worldDao;
}
public void setWorldDao(WorldDao worldDao) {
this.worldDao = worldDao;
}
}
package com.jta;
public interface HelloDao {
public void addHello() throws Exception;
}
package com.jta;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
public class HelloDaoImpl extends JdbcDaoSupport implements HelloDao{
public void addHello() throws Exception{//mysql
String sql = "insert into user(name,age) values(?,?)";
Object[] params = new Object[]{"test","12"};
this.getJdbcTemplate().update(sql, params);
}
}
package com.jta;
public interface WorldDao {
public void addWorld() throws Exception;
}
package com.jta;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
public class WorldDaoImpl extends JdbcDaoSupport implements WorldDao {
public void addWorld() throws Exception {// oracle
String sql = "insert into test1(id,myname) values(?,?)";
Object[] params = new Object[] { 3, "ningge" };
this.getJdbcTemplate().update(sql, params);

}
}
package com.jta;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args)throws Exception{
ApplicationContext context=new ClassPathXmlApplicationContext("import.xml");
HelloBiz helloBiz=(HelloBiz)context.getBean("helloBizProxy");
helloBiz.insertTwoDatabase();
}
}
spring整合atomikos实现分布式事务的方法示例 本文整合了一个spring和atomikos的demo,并且通过案例演示说明atomikos的作用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

相关推荐

微信聊天记录解密,必须是root的手机

手机上安装x-plore软件,将/data/data目录的相关EnMicroMsg.db auth_info_key_prefs.xml拷贝到/storge/emulated/0目录后才可以拷贝到电脑。路径:/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml。但是是加密过的 需要解密 解密密码生成规则是手机IMEI+微信UIN md5(32位小写)后的前7位。安卓手机要root测试版本微信要7或者8版本都可以。选择message表。

venus60的专栏 1005

【Atomikos】分布式事务简单示例

【Atomikos】分布式事务简单示例

987

硬件工程师入门进阶,一文搞懂,看这篇就对了

每家公司的datasheet都有严格的规范,及独特的风格,有时候还会穿插一些原理性的介绍,比如ADI公司的一些ADC/DAC器件资料里面,还会包含AD/DA转换的原理性讲解内容,Datasheet既可以是我们设计上的好帮手,也是学习的好资料。在出货量大的产品中,尽量减少物料种类,比如开头说的,1%的电阻不得不用,那么5%的替换成1%的,物料种类就减少一种,量就大了,能不能争取更优的价格呢?如果说前面学的是内功,那这一关,是招式、是工具的使用,原理图和PCB设计都有对应的工具,教程也很多,且比较容易上手。

一路带飞的博客 5万+

【分布式事务系列七】Atomikos的分布式案例

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34106122的博客 151

AnolisOS网卡驱动源码编译与安装实战指南

本文提供了一份详尽的AnolisOS网卡驱动源码编译与安装实战指南。针对系统自带通用驱动不兼容导致网络无法使用的问题,文章从环境准备、源码获取、编译安装到新旧驱动替换与持久化配置,一步步解析了如何通过源码编译安装官方驱动,解决硬件兼容性问题,并确保驱动在系统重启后自动生效。

weixin_28358083的博客 304

PCL 点云八叉树射线相交

PCL 点云八叉树射线相交

dayuhaitang1的博客 850

java基于atomikos做分布式事务(简单实例)

做分布式系统时,我们经常会遇到不同资源管理器之间做事务同步的需求。最近手头的项目要求,数据从上游过来时要同步插入到消息中心和Oracle数据库中,这个是很典型的分布式事务场景。JTA是java给出分布式事务的通用解决方案。JTA介绍,这是一篇介绍JTA的很形象的一篇文章。 Atomikos TransactionsEssentials 是一个为Java平台提供增值服务的并且开源的事务管理器。

ggmaple2010的专栏 2722

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 822

spring+atomikos+JTA完整例子

xml version="1.0" encoding="UTF-8"?> DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> beans default-autowire="byName" > bean id="a

朕是白白编码小王子 580

[深入研究4G/5G/6G专题-31]: 5G NR开机流程5.2 - UE Attach流程(Registeration Request/Accept/Complete)

目录前言:前置条件:第1章 5G NR UE attach流程(从UE log的视角看)1.0 NAS消息解析器1.1 消息交互流程1.2 UE Registeration Request消息(AMF->基站->UE)1.3 AMF Registeration Accept消息(AMF->基站->UE)1.4 UE Register complete消息(UE->基站->AMF)第2章 UE Register...............

文火冰糖(王文兵)的博客 7万+

6.6kW的车载充电器(On-Board Charger, OBC)电路分析

图片展示了6.6kW的车载充电器(On-Board Charger, OBC)电路,其中包含双向和单向两种拓扑结构。接下来我们将深入分析每个模块的设计、原理及其优势,以帮助理解不同结构在实际应用中的选型和应用。

weixin_43199439的博客 5660

转载 spring+atomikos+JTA完整例子

原文:http://www.blogjava.net/pdw2009/archive/2008/05/25/202725.html applicationContext.xml配置 mysql/main ...

iteye_12188的博客 116

MOS管基础知识及应用电路Multisim仿真

本文系统介绍了MOS管的基础知识及其在电子电路中的典型应用。首先详细解析了MOS管的基本结构、分类和工作原理,包括NMOS、PMOS及CMOS的特性差异。重点阐述了MOS管的三种放大组态电路(共源、共漏、共栅)及其小信号模型分析。随后通过Multisim仿真验证了MOS管在防反接电路、开关电路、放大电路、逻辑门电路、电平转换电路和开关电源(BUCK、BOOST、BUCK-BOOST)等应用中的实际表现。文章还深入探讨了自给偏压和分压式偏置电路的设计要点。全文通过理论分析与仿真实验相结合的方式,全面展示了MO

XU157303764的博客 1483

分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)

在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。   请通过以下方式下载github源代码: git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git 本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据库),分布

愤怒de老鸟的专栏 792

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java jta 例子_Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)...

在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。请通过以下方式下载github源代码:本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据库),分布式事务可以处理多种异构的数据源,比如某个业务操作中同时包含了JDBC和JMS或者某个操作需要访问多个不同的数据库。Java通过JTA完成分布式事务,JTA本身只是一种规范,不同...

weixin_35143292的博客 422

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)

在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。   请通过以下方式下载github源代码: git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git   本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据

SunshineLPL的博客 572

Java事务处理全解析 分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)

请通过以下方式下载github源代码: git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git   本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据库),分布式事务可以处理多种异构的数据源,比如某个业务操作中同时包含了JDBC和JMS或者某个操作需要访问多个不同的

220

springboot1学习(三)atomikos分布式事务

文章目录spring事务分类声明式事务atomikos分布式事务 spring事务分类 spring事务可分为编程式事务和声明式事务 声明式事务又可分为xml版和注解版 声明式事务 写service层,注意添加 @Transactional注解 import org.springframework.transaction.annotation.Transactional; @Service public class User1Service { @Autowired private T

qq_19841133的博客 384

java事务学习笔记(八)--分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)

在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。   请通过以下方式下载github源代码: git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git   本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据

JordanInShenzhen的博客 982

spring+jta+atomikos

="1.0" encoding="UTF-8"?> ="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns

qq_21526409的博客 264

spring hibernate atomikos 分布式事务

&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframew

小兔子的窝 199
上一篇: 有用的工具AmaterasIDE
下一篇: perl教程
linux内核控
博客等级 码龄19年 41粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值