10005---Java事务(七) - 分布式事务 - spring + JTA + jotm

转载 2015年07月08日 17:57:45

原 文


一. 前言:

在写这篇博客之前,我们需要弄清楚两个概念:本地事务和分布式事务。

本地事务:只处理单一数据源,比如单个数据库

分布式事务:处理多种异构的数据源, 比如某个业务操作中同时包含JDBC和JMS

       或者某个操作需要访问多个不同的数据库。

Java通过JTA完成分布式事务,JTA本身只是一种规范, 本篇博客将使用JOTM作为实现, 后续还会使用Atomikos实现。

  ---JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——

      在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。

      JTA-百度百科

  ---JOTM (Java Open Transaction Manager)是由ObjectWeb协会开发的功能完整的且资源开放的独立的事务管理器。

      JOTM百度百科

  ---Atomikos TransactionsEssentials 是一个为Java平台提供增值服务的并且开源类事务管理器

     Atomikos百度百科


二. 业务背景:   

   假定我们有这样一个需求:当我们新建一个用户的时候需要往一个DB中插入一条用户记录,

   还需要往另一个DB中记录日志。因为是不同的DB操作,所以这里就涉及到分布式事务的处理。


三. 代码实现:

2. 建表语句:

create database log;
DROP TABLE IF EXISTS `log`;
CREATE TABLE `log` (
  `id` varchar(20) NOT NULL,
  `content` varchar(100) default NULL,
  PRIMARY KEY  (`id`)
);
 
create database user;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` varchar(20) NOT NULL,
  `name` varchar(40) default NULL,
  PRIMARY KEY  (`id`)
);


3. 配置文件ApplicationContext.xml




分布式事务JTA 实现之 JOTM

JOTM介绍 JOTM (Java Open Transaction Manager)是由ObjectWeb协会开发的功能完整的且开源的事务管理器。 JOTM 提供了以下功能,有助于增强 WEB 应...
  • conquer0715
  • conquer0715
  • 2015年09月05日 17:53
  • 4927

Spring配置多数据源和JOTM分布式事务解决方案

因为会有在一个项目中需要操作多个数据库的情况,所以本人在网上查看了多篇别人写的博客,并结合自己的认识改写了一些代码最终得到了下面的多数据源和分布式事务的整体解决方案。篇幅有点长,还请耐心看完。本人知识...
  • u013632755
  • u013632755
  • 2016年06月01日 21:01
  • 10268

Spring实现分布式事务JTA(使用atomiko实现)

分布式事务是指事务的参与者、支持事务的服务器、资源管理器以及事务管理器分别位于分布系统的不同节点之上,在两个或多个网络计算机资源上访问并且更新数据,将两个或多个网络计算机的数据进行的多次操作作为一个整...
  • zmx729618
  • zmx729618
  • 2017年01月11日 14:15
  • 3433

Spring分布式事务- 三种实现方式(Spring+JTA)

分布式事务是指事务的参与者、支持事务的服务器、资源管理器以及事务管理器分别位于分布系统的不同节点之上,在两个或多个网络计算机资源上访问并且更新数据,将两个或多个网络计算机的数据进行的多次操作作为一个整...
  • u010605082
  • u010605082
  • 2016年01月15日 17:38
  • 14221

分布式事务操作之Spring+JTA+mybatis

一、技术背景 在项目中需要操作多个数据库,同时,需要保证操作的原子性,保证对多个数据库的操作一致性,而传统的JDBC事务被限定在一个单一的数据库连接中,故引用JTA,即Java Transact...
  • zhaoliangbao2778
  • zhaoliangbao2778
  • 2016年04月14日 15:49
  • 7215

分布式事务操作之Spring+JTA

什么是分布式事务?在网上找了一段比较容易理解的"定义".      分布式事务是指事务的参与者、支持事务的服务器、资源管理器以及事务管理器分别位于分布系统的不同节点之上,在两个或多个网络计算机资源上...
  • u010207995
  • u010207995
  • 2016年06月15日 10:29
  • 631

Java事务(七) - 分布式事务 - spring + JTA + jotm

一. 前言: 在写这篇博客之前,我们需要弄清楚两个概念:本地事务和分布式事务。 本地事务:只处理单一数据源,比如单个数据库。 分布式事务:处理多种异构的数据源, 比如某个业务操作中同时包含JDBC和J...
  • zdp072
  • zdp072
  • 2014年09月21日 00:34
  • 1947

SpringMVC+MyBatis+JMS+JTA(分布式事务)

SpringMVC+MyBatis 相信已经是现在企业开发中常用技术了。 因为一些需求,我们需要集成JMS(我使用的是ActiveMQ),大家应该都知道,MQ也可以认为是一个数据源,数据也是数据源。...
  • catoop
  • catoop
  • 2015年12月17日 09:51
  • 16333

Spring分布式事务实现jotm,atomikos

分布式事务是指操作多个数据库之间的事务,spring的org.springframework.transaction.jta.JtaTransactionManager,提供了分布式事务支持。如果使用...
  • zhousenshan
  • zhousenshan
  • 2017年05月06日 09:08
  • 518

JDBC高级特性(三)分布式事务和JTA基本原理

在进入主题之前我们首先来了解一下JNDI和连接池~ 一、JNDI 1)是一组在Java应用中访问命名和目录服务的API(Java命名与目录接口) 命名服务将名称和对象联系起来,使得我们可以通过名称访问...
  • Victor_Cindy1
  • Victor_Cindy1
  • 2015年06月28日 20:44
  • 2727
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10005---Java事务(七) - 分布式事务 - spring + JTA + jotm
举报原因:
原因补充:

(最多只允许输入30个字)