本主题仅适用于 IBM Business Process Manager Advanced 配置。

事务

在 SOA 环境中设置事务可能是错综复杂的练习。组合件编辑器提供帮助,以便于理解处理事务的方式,但在您尝试创建事务之前应了解事务机制。

设置事务时,您要相信操作将全部成功落实或完全回滚。 这表示确保事务可以传播至所有需要参与工作单元的组件。服务质量限定符和调用样式控制模块中事务的传播。需要满足一些条件才能成功传播事务:

组合件编辑器为您设置适当的服务质量限定符以确保事务传播。但是,存在一些与特定实现或绑定相关并且可能会影响这些设置的情况。下面将讨论这些特殊情况。

组合件编辑器允许您通过组件和连线突出显示事务传播以查看事务。如果将光标悬停在未能传播事务的组件或连线上,悬浮式帮助将提供有关了解和解决问题的指导。在连线上即可更改设置。 “属性”视图中的新限定符选项卡显示整个模块的服务质量设置。组合件编辑器将自动应用支持事务传播和消息可靠性的设置。下表中提供这些设置的列表。请参阅在组合件编辑器中查看和更改限定符设置,以获取有关使用这些功能的详细信息。

表 1. 服务质量的预置值
活动 服务质量设置
添加接口 添加连接事务限定符并将其设置为“true”。
添加引用
  • 添加暂挂事务限定符并将其设置为“false”。
  • 添加异步调用限定符并将其设置为“落实”。
  • 添加可靠性限定符并将其设置为“保险(持久)”。
创建实现 添加事务限定符并将其设置为“全局”。

事务类型

可以设置针对实现的事务限定符以监管两种类型的事务:
  • 本地事务
  • 全局事务
也可以将事务限定符设置为“任意”。该设置允许系统决定在运行时是连接全局事务还是建立本地事务环境。

本地事务不能传播。如果存在活动会话上下文,那么系统将自动在本地事务作用域内解析本地事务。 如果不存在活动会话上下文,那么系统将自动在实现完成时解析本地事务。

事务传播

事务的主要目标是原子性。保证原子性即是确保将资源作为一个单元落实或回滚。通过不同的组件或同一个组件通过多个调用更新这些资源时,需要将事务从一个组件传播至另一个组件。

组合件编辑器使用事务限定符设置和控制哪些组件参与同一个事务。 在组件的以下元素中指定这些限定符:
  • 接口
  • 引用
  • 实现

接口限定符公布目标服务支持的质量。它们表示与服务客户机的合同。影响事务的接口限定符为连接事务限定符。如果客户机传播事务,那么连接事务限定符将指定组件是否将连接该事务

引用限定符公布使用引用进行的调用的质量。 影响事务的针对引用的限定符为暂挂事务限定符。当调用同步时,暂挂事务限定符确定客户机是否将事务传播至目标组件。

实现限定符公布实现所使用的质量。影响事务的实现限定符为事务限定符。

调用样式

服务调用的调用样式是指客户机在调用服务时所作调用的类型。调用可以是同步异步。 样式将影响事务是否可以传播至目标服务。如果客户机同步调用目标服务,那么只可以传播全局事务。如果客户机异步调用服务,不管如何设置将影响事务传播的限定符,都不会传播全局事务。

与客户机所使用的调用样式无关,系统将始终异步启动某些目标实现。这些实现不能连接客户机的事务:
  • 长时间运行的 BPEL 流程
  • 业务状态机
  • 人员任务
  • JMS、MQ、MQ JMS 及通用 JMS 导入和导出
  • EIS 导出

首选交互样式

首选交互样式是可以在组合件图中对组件接口、导入或导出设置的属性。接口的首选交互样式反映服务的行为。系统异步调用目标实现时,组合件编辑器会将该服务的首选交互样式设置为异步。 一些实现允许您在组合件编辑器分配首选交互样式之后对其进行更改。其他实现则不允许这样做,因为系统始终以异步方式启动这些实现。 不能更改长时间运行的 BPEL 流程、业务状态机或待执行人员任务的调用样式。

对于用于 EIS 系统的导出,交互样式仅应用于单向操作,因此作为单向操作调用样式显示在用户接口中,并以“阻止”和“不阻止”作为值。

有关长时间运行的流程和微流动的更多信息,请参阅 IBM® Business Process Manager 文档,特别是长时间运行的流程的事务行为微流动的事务行为