有段时间没写博客了,主要原因还是换了工作环境,会忙会迷茫会惆怅,不知道大家会不会这样,从一个熟悉的城市来到一个陌生的城市(一个这辈子没有想过的城市---天津),一个天津本地人都觉得很LOW的一个城市,来这里的目的也只有一个。。。。。。。好,我们看JTA
来到公司有段时间,公司用的框架SSM+Druid+JTA+Dubbo+Redis,主要是一个微型分布式框架,以spring+springMVC+Mybatis为基础,加上Dubbo去暴露和接受消费,JTA管理事务的方式来实现编程,Redis用来缓存,Druid做连接池(管理多个数据源),废话有点多了,来说JTA事务
事务在前面的博客写过一点Spring管理实务,毕竟现在培训班对于事务讲的很少,例如:达内(不推荐去培训),事务最主要的是,保持数据库一致,让我们用百度都能搜到一个例子来说明一下,银行取钱:我们去取钱,插卡,提交取1000的请求,银行接收请求,从银行出1000,并且在你账户扣掉1000,如果你中途不取了,那么这个事务必须回滚,也就是说回银行1000,你的账户退回1000,这样才能保证一致性,让银行和客户都不损失钱。这是事务。
Spring中的事务很少,他只是提供管理事务的接口,例如我们可以用JDBC,来管理事务
JTA管理事务主要是:
a、UserTransaction接口:让应用程序得以控制事务的开始、挂起、提交、回滚 等。由Java客户端程序或EJB调用。
b、TransactionManager 接口:用于应用服务器管理事务状态
c、Transaction接口:用于执行相关事务操作
d、XAResource接口:用于在分布式事务环境下,协调事务管理器和资源管理器的工作
e、Xid接口:为事务标识符的Java映射
JTA编程的基本步骤:
a、首先配置JTA ,建立相应的数据源
b、建立事务:通过创建UserTransaction类的实例来开始一个事务。代码如下:
Context ctx = new InitialContext(p) ;
UserTransaction trans = (UserTransaction) ctx.lookup("javax.Transaction.UserTransaction")
c、开始事务:代码为 trans.begin() ;
d、找出数据源:从Weblogic Server上找到数据源,代码如下:
DataSource ds = (DataSource) ctx.lookup(“mysqldb") ;
e、建立数据库连接:Connection mycon = ds.getConnection() ;
f、执行SQL操作:stmt.executeUpdate(sqlS);
g、完成事务:trans.commit(); / trans.rollback();
h、关闭连接:mycon.close() ;
参考文献:http://www.cnblogs.com/drizzlewithwind/p/5711653.html
相关推荐
本篇文章将深入探讨如何在Spring中配置JTA事务管理,以实现跨数据库和资源的事务一致性。 首先,让我们了解JTA的基本概念。JTA是一个规范,它定义了接口和API,使得应用程序可以控制跨越多个数据存储(如数据库、...
本文将详细介绍如何在Spring中使用JTA事务管理,包括通过集成JOTM(Java Open Transaction Manager)以及引用Tomcat的JTA事务。 ### 1. 通过集成JOTM,直接在Spring中使用JTA事务 #### 1.1. 添加JOTM类库到类路径...
- 使用`@EnableJtaTransactionManagement`注解开启JTA事务管理。 5. **编写代码**: - 在需要进行多数据源事务操作的服务类上,使用`@Transactional`注解声明事务边界。 - 在事务方法内部,根据业务逻辑切换数据...
标题中的“Spring3.1+Hibernate4.1+Atomikos3.9+MySql5.1+Tomcat5/6/7实现JTA事务管理”揭示了一个集成开发环境,用于构建分布式、事务一致性的Java应用程序。这个组合利用了Spring框架的依赖注入和AOP(面向切面...
XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。 JTA事务比JDBC事务更强大。一个JTA事务...
-- JTA事务管理器 --> class="org.springframework.transaction.jta.JtaTransactionManager"> <!-- 数据源A --> ${jdbc.driver}"/> ${jdbc.url}"/> ${jdbc.username}"/> ${jdbc....
JOTM(Java Open Transaction Manager)是一个开源的JTA事务管理器,可以在非J2EE环境下提供分布式事务服务。本篇文章将详细讲解如何利用Spring+iBatis+JOTM来实现JTA事务。 首先,我们需要理解JTA的核心概念。JTA...
Spring Boot支持JTA事务管理,主要通过以下组件实现: 1. Atomikos:这是一个开源的JTA实现,提供了一种在Spring Boot中实现分布式事务的方式。 2. Bitronix:另一种JTA实现,也可以与Spring Boot集成,处理分布式...
在Spring Boot中实现JTA,我们需要引入相关的依赖,如Atomikos或Bitronix,这些是开源的JTA事务管理器。这里我们以Atomikos为例,它能很好地与Spring集成,并支持分布式事务。 接下来,Druid是一个优秀的数据库连接...
Java Web即Java EE,它是面向企业级的网络系统,其中的“企业级”和“网络”(分布式)代表了Java Web开发的核心目标。在Java EE最新的规范中提供了进行企业级开发的框架组件EJB,并同时提供了多种分布式服务开发...
但在迁移到基于Mina框架的API时,Resin不再作为依赖,因此需要寻找新的JTA事务管理工具。在这个过程中,Atomikos 2.Api被选中作为替代方案。然而,一个主要的问题出现了:Atomikos的数据库连接配置缺少类似于`...
Atomikos是一个开源的JTA事务管理器,它提供了对分布式事务的支持。在分布式系统中,由于多个资源(如数据库、消息队列等)需要进行原子操作,因此需要一个事务管理器来协调这些操作,确保事务的ACID特性(原子性、...
我们可以使用`org.springframework.transaction.jta.JtaTransactionManager`来配置JTA事务管理器。通过Spring的`@Transactional`注解,可以在方法级别声明事务边界,使得事务管理更加简洁。 2. **Hibernate与JTA的...
在提供的"SimpleDemo"示例中,可能包含了一个简单的JTA事务管理的例子,比如如何在Java代码中启动和结束一个事务,以及如何在事务中操作数据库。具体实现细节可能包括使用JPA、JDBC或其他持久化框架与JTA集成的方法...
对于分布式事务,Spring支持JTA事务管理,并且可以无缝集成JOTM。 1. **配置JOTM**:首先,你需要在项目的类路径下添加JOTM的依赖库。然后,在Spring的配置文件中定义JOTM的事务管理器 bean,例如: ```xml ...
JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。 要用 JTA 进行事务界定,应用程序要调用 javax.transaction.UserTransaction 接口中的方法。
- 如何在Spring配置文件中设置JTA事务管理器。 - MyBatis是如何与JTA配合进行事务控制的,比如在XML映射文件或Mapper接口中定义的事务边界。 - JTA事务的开始、提交、回滚过程,以及异常传播规则。 - 如何处理...
在tomcat 中配置JTA 事务,方便管理web项目
在提供的XML配置示例中,我们可以看到Spring框架是如何配置两个不同的数据源,并为它们设置JTA事务管理器的。 ##### 数据源配置 首先,我们来看数据源的配置部分: ```xml <value>200 <value>70...
配置`Atomikos`或`Bitronix`这样的JTA事务管理器,可以实现对JMS和数据库操作的两阶段提交(2PC)协议,确保所有参与的资源要么全部完成事务,要么全部回滚。 在压缩包文件"shanhy-springjms"中,可能包含了以下...