在同一个事务中协调对可以一阶段落实和两阶段落实的资源的访问

最后参与者支持实现了在同一全局事务中将一个可以一阶段落实的资源与任意个可以两阶段落实的资源配合使用。在同一事务内可以具有涉及一阶段落实资源的多次交互,但只能涉及一个这样的资源。

在落实事务时,首先使用两阶段落实协议准备两阶段落实资源,如果该操作成功,随后将调用一阶段落实资源进行落实。然后,根据一阶段落实资源的响应落实或回滚两阶段落实资源。

注: 如果全局事务分布在多个正在运行 WebSphere® Application Server V6.1 或更高版本的应用程序服务器上,那么您可以在有限数量的场景中利用最新参与者支持,在同一个事务中协调支持一阶段落实的资源及任何数量的支持两阶段落实的资源。
  • 在主方案中,在启动事务的应用程序服务器进程(“事务根”服务器)中访问一阶段落实资源提供程序。

    在该方案中,“最后参与者支持”可以在同一事务中协调单个支持一阶段落实的资源和任意数量的支持两阶段落实的资源。

  • 如果在不同于启动事务的应用程序服务器(“事务下级”服务器)中访问一阶段落实资源提供程序;例如,作为在远程 EJB 接口(EJB 实现在该接口上访问一阶段落实资源提供程序)上进行事务调用的结果。

    在该方案中,通常不能落实事务。要落实(这是全局事务的一部分)事务下级服务器中列出的某个一阶段落实资源,事务服务必须将协调职责从事务根授予下级服务器。仅当没有任何其他资源注册到事务根服务器时才能实现这一操作。

“最后参与者支持”为事务引入了更高的启发式结果风险。即事务管理器无法确保已按同一方向完成所有资源(已落实或已回滚)。因此,要使应用程序能够协调对同一事务中可以进行一阶段和两阶段落实的资源的访问,可将应用程序配置为接受试探风险,即接受增加的试探性结果风险。

如果事务服务 (JTS) 未从一阶段落实资源中的落实一阶段流接收到任何响应,将出现试探性结果。在这种情况下,事务服务无法确定是否已落实还是回滚对一阶段落实资源的更改,因此无法可靠地得出其他两阶段落实资源中全局事务的正确结果。

您可以将应用程序服务器的事务服务配置为接受试探风险,或者逐个配置应用程序以接受试探风险。可以在装配时或者在部署之后逐个配置应用程序。

您可以将应用程序服务器的事务服务配置为表明它是否记录即将落实一阶段落实资源。这不会降低试探性结果的危险,但可以确保一阶段落实阶段中应用程序服务器的任何故障和后续恢复都明确表明是否要求落实一阶段落实资源:
  • 如果要求落实一阶段落实资源,那么会将启发式结果报告到活动日志中。
  • 如果未要求落实一阶段落实资源,那么将一致回滚事务。

涉及一阶段和两阶段落实资源的事务异常

涉及一阶段落实和两阶段落实资源的事务可能抛出的异常与仅涉及两阶段落实资源的事务可能抛出的异常相同。

WebSphere Application Server 信息中心的应用程序编程接口 (API) 参考信息中列出了可能发生的异常状况。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cla_ovrvw
文件名:cla_ovrvw.html