您有没有想过,为什么会有六种事务划分属性(NotSupported、Required、Supports、RequiresNew、Mandatory和Never)?这六种都是由容器托管事务 (CMT)的bean来支持的,但如果使用的是bean托管事务(BMT),EJB规范所能提供的功能难道就只有通过UserTransaction接口启动和提交/回滚事务吗?显然,CMT模型好像更强大,比如,BMT不能使当前事务挂起然后恢复,这就意味着在BMT bean中无法仿真RequiresNew和NotSupported划分,至少是在使用UserTransaction接口时。   虽然EJB规范并没有解释为 ...
  JTA 是事务服务的 J2EE 解决方案。本质上,它是描述事务接口(比如 UserTransaction 接口,开发人 员直接使用该接口或者通过 J2EE 容器使用该接口来确保业务逻辑能够可靠地运行)的 J2EE 模型的一部分 。JTA 具有的三个主要的接口分别是 UserTransaction 接口、TransactionManager 接口和 Transaction 接 口。这些接口共享公共的事务操作,例如 commit() 和 rollback(), 但是也包含特殊的事务操作,例如 suspend(),resume() 和 enlist(),它们只出现在特定的接口上,以便在实 ...
public class UserTransaction { private static Map threadDbconnectionMap = new HashMap(); public void begin() { dataSource.getConnection().setAutoCommit(false); threadDbConnectionMap.put(Thread.currentThread(), dataSource.getConnection()); dataSource.getConn ...
1.资料 《Java Transaction Design Strategies》  InfoQ minibook,最好的电子文档,Java事务处于懵懂状态的必读。 《Expert One on one J2EE Development Without EJB 中文版》与Spring参考手册中文版  中的相关章节可以看到Spring guys的意见。http://www.leftworld.net/online/j2ee/14.htmhttp://www.ibm.com/developerworks/cn/opensource/os-ag-ejbtran ...
随着网站(www.jzease.com)的扩大,在三个月的时间里Myslq的表格从四十几张,扩到现在的一百多张,以后肯定还会继续扩大为了更好的管理和运行,着手开始分数据库,这就涉及到跨数据库事务,我们使用的是Tomcat,它本身不支持XA,供我选择的就只有spring+JTA,JTA的实现就只有两种,一种是JOTM,另一种是AtomikosTransactionsEssentials.下面是JOTM的实现: DataSource: <bean id="jtaTxManager" class="org.springframework.transaction.jta.JtaTransacti ...
我根据自己的经验谈一下个人看法。这是一个非常复杂的话题。三言两语可能说不清楚。 1. Transaction 分两种,Local Transaction 和 Global Transaction。 涉及到一个Connection的Commit,称为Local Transaction。 涉及到多个Connection的Commit,称为Global Transaction。 楼主提到的是,Global Transaction. 2. Global Transaction 需要XA接口(包括在JTA里面)的支持。 import javax.sql.XAConnection; import j ...