事务管理 JTA - 2

JTA是只是一组java接口用于描述,J2ee框架中事务管理器与应用程序,资源管理器,以及应用服务器之间的事务通讯。
  它主要包括高层接口即面向应用程序的接口;XAResource接口即面向资源的接口;以及事务管理器的接口。值得注意的是JTA只提供了接口,没有具体的实现。
  JTS是服务OTS的JTA的实现。简单的说JTS实现了JTA接口,并且符合OTS的规范。
  资源管理器只要其提供给事务管理器的接口符合XA接口规范,就可以被事务管理器处理。
  所以,JTA可以处理任何提供符合XA接口的资源。包括:数据库,JMS,商业对象等等
“Java 事务 API”(JTA)启用两阶段提交功能
。当配置 WebSphere Application Server 以访问数据库时,可选择具有 JTA 能力的驱动程序。如果需要两阶段提交功能,则必须使用启用 JTA 的驱动程序。
  只要您在事务中调用了多个数据库连接,就需要 JTA。只要您在事务中调用了多个数据库服务器,就需要两阶段提交。这些连接可以是相同的物理数据库服务器或多个数据库服务器。例如:* 实体企业Bean Entity1 在应用程序服务器 AppServer1 中部署。
  * 实体企业 Bean Entity2 在应用程序服务器 AppServer1 中部署。
  * 会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。
   如果 Session1 对同一事务内的 Entity1 和 Entity2 调用了方法而这两个企业 Bean 正在使用不同的物理数据库连接,则必须对 Entity1 和 Entity2 使用的数据源启用 JTA。当从相同的数据源对象获取那些连接时,这也是成立的。这需要具有 JTA 能力的驱动程序以提交事务。
  当事务涉及到多个进程时,JTA 也是必需的。例如,一个事务可能会涉及在多个应用程序服务器中部署的企业 Bean。
  * 实体企业 Bean Entity1 在应用程序服务器 AppServer1 中部署。
  * 实体企业 Bean Entity2 在应用程序服务器 AppServer2 中部署。
  * 会话企业 Bean Session1 在应用程序服务器 AppServer1 中部署。
  如果 Session1 对同一事务(此事务构成一个分布式事务)内的 Entity1 和 Entity2 调用了方法,则必须对 Entity1 和 Entity2 使用的数据源启用 JTA。
  性能实现JTA 启用的连接与非 JTA 启用的连接执行情况不同。基于此原因,如果您的应用程序不需要 JTA,则最好使用非 JTA 启用的驱动程序。

你可能感兴趣的:(事务管理)