利用J2EE Connector Architecture(6)

    作者:课课家教育更新于: 2016-01-29 18:41:09

    大神带你学编程,欢迎选课

      本地事务容器

      EJB 2.0 规范没有指定如果在没有全局事务下运行方法时容器的行为。Servlet、使用 Bean 管理的事务的会话 Bean 和一些其他情况会发生这种现象。在该种情况下,应用程序被请求在“未指定的事务”上下文中执行。为了实现一致性和可移植性,webSphere application Server 使用本地事务容器 (LTC) 策略执行该未指定的事务上下文。此 LTC 策略是一种有效的划定范围的方法,Web 和 EJB 容器可以使用此方法划分在全局事务外分配的工作的开始和结束。在该 LTC 内对资源管理器的所有访问都通过资源管理器本地事务 (RMLT),在 LTC 结束时必须解决这种事务。没有办法以编程方法与 LTC 范围进行交互;并且 LPC 范围影响 J2EE 应用程序的方法由三个扩展的部署描述符 (XDD) 控制,这三个部署描述符可以在 J2EE 组件部署时设置,如下所示:

    利用J2EE Connector Architecture(6)_java敏捷开发_java网络开发_课课家

      Boundary——它可以有值 BeanMethod(缺省)或 ActivitySession。ActivitySession 是对仅仅在 WebSphere Application Server Enterprise Version 5 中适用的 EJB 容器的扩展。它在基于资源管理器的本地事务的边界方法之外提供了一个扩展的工作单元范围。(有关详细信息,请参见 Transactional services in WebSphere Application Server Enterprise V5, REDP3759。)

      Resolver——这个可以有值 ContainerAtBoundary 或 Application(缺省)。当在全局事务上下文(例如带有 Never 事务属性)外面的 EJB 容器发出 ECI 请求时,如果 Resolver 属性被设置为 Application,那么 ECI 调用类型是非扩展的。相反,如果 Resolver 属性被设置为 ContainerAtBoundary,那么将会启动资源管理器本地事务,且 ECI 调用类型是扩展的,会被容器在 EJB 方法的边界解决。

      UnresolvedAction——它可以具有值 Commit 或 Rollback(缺省)。它可以被指定用于 EJB 或 Web 容器,并表示容器如何使用 LTC 边界上未完成的 RMLT 来清除所有的连接。该属性是 Web 组件 (Servlet) 唯一可配置的 LTC 设置,通过在连接上使用 LocalTransaction.begin() 方法应用于 Bean 管理的事务。在交互完成后,所有的容器管理事务被自动提交,因此在 Web 容器中容器管理的事务不使用该属性。

      有关 LTC 策略的使用需要注意以下几点:

      LTC 范围对于每个 J2EE 组件而言都是本地的;因此如果在 LTC A 下分派 EJB 组件 A,并且该组件调用 EJB 组件 B,那么需要在一个单独的 LTC 下分派组件 B。

      如果应用程序在全局事务外执行,那么容器始终会建立 LTC 范围,除非 Web 组件或 BMT 企业 Bean 是 J2EE 1.3 以前的标准。

      事务部署场景

      在这一部分,我们将解释把 Servlet 和 EJB 组件部署到 WebSphere Application Server 环境中的事务本质,以及有效利用事务控制的方法。对于 Web 容器和 EJB 容器两个环境,我们给出了一组常见问题,并且提供了所提出的问题或场景的实际解决方案:

      在同一事务范围内,Servlet 能否发出多个 ECI 请求?

      如何链接到发出 SYNCPOINT 命令的 CICS 程序?

      在同一事务范围内,EJB 组件能否发出多个 ECI 请求?

      怎样发出对全局事务的 CICS 部分的 ECI 请求?

      如果使用 z/OS 平台上的 WebSphere Application Server,事务支持有什么不同?

      在 z/OS 上部署 CICS TG 的好处是什么?

      如果在两阶段提交处理过程中出现网络连接故障,会发生什么情况?

      是否存在单阶段提交协议比两阶段提交协议更有好处的情况?

      如果在全局事务中使用具有本地事务能力的资源适配器(如 CICS ECI 资源适配器),则会发生什么故障?

      如果在 WebSphere Application Server 中使用 ECIRequest 类或 Common Connector Framework (CCF) 类,可以提供什么支持?

      如果 CICS 区域或事务出现意外故障,会发生什么情况?

课课家教育

未登录