事务是编程中必不可少的一项内容,基于此,为了规范事务开发,Java增加了关于事务的规范,即JTA和JTS,在网上搜索关于JTA和JTS,发现有效内容远少于EJB,这倒不是说它们的重要性低于EJB,而是说明JTA和JTS封装的更为透明,隐藏了大部分细节,通常情况下,我们仅仅需要使用几个简单的APIs就能解决问题。
JTA和JTS
JTA
JTA定义了一套接口,其中约定了几种主要的角色:TransactionManager、UserTransaction、Transaction、XAResource,并定义了这些角色之间需要遵守的规范,如Transaction的委托给TransactionManager等。
JTS
JTS也是一组规范,上面提到JTA中需要角色之间的交互,那应该如何交互?JTS就是约定了交互细节的规范。
总体上来说JTA更多的是从框架的角度来约定程序角色的接口,而JTS则是从具体实现的角度来约定程序角色之间的接口,两者各司其职。
因为JTA相对来说,更高层一些,我们主要关注JTA。
XA
XA协议,规定事务管理器和资源管理器接口,采用二阶段提交协议。