要创建使用业务活动支持的应用程序组件,必须在相关应用程序组件的部署描述符中设置在业务活动范围中运行 EJB 方法,如果有错误,请在需要时创建并指定要使用的应用程序的补偿处理程序。然后在应用程序中构建该组件,并在启用了业务活动支持的服务器上部署该应用程序。应用程序组件可以是企业 Bean
或作为企业 Bean 实现的 Web Service。
开始之前
有关使用 Rational® Application
Developer 编辑部署描述符的信息,请参阅 Rational Application Developer 信息。
关于此任务
为在启用了业务活动的服务器上运行的应用程序完成此任务以在运行时使用业务活动支持,并执行稍后可能由补偿处理程序进行补偿的工作。
如果该应用程序在业务活动范围结束时需要补偿,那么该应用程序会通过使用业务活动 API 将补偿过程需要的数据间接传递至补偿处理程序。补偿过程需要的数据的格式可以为可序列化对象或服务数据对象 (SDO)。
过程
- 设计需要业务活动支持的应用程序组件。特别是定义补偿和关闭活动的应用程序组件要求。如果应用程序组件需要补偿,请定义可序列化对象或 SDO 中数据的特性,该应用程序组件将这些数据传递至补偿处理程序。
- 必要时,通过使用应用程序设计中的信息,为应用程序组件创建补偿处理程序。 此处理程序定义在业务活动范围(已经通过应用程序组件添加了处理程序)完成时运行的关闭和补偿逻辑。
- 打开所选的 WebSphere® Application Server 组装工具。
- 根据补偿过程需要的数据格式,创建实现相应接口的新 Java™ 类:
- 对于可序列化对象,实现 com.ibm.websphere.wsba.serializable.CompensationHandler 接口。
- 对于 SDO,实现 com.ibm.websphere.wsba.CompensationHandler 接口。
- 对新的补偿处理程序对象实现 close 和 compensate 方法,以根据调用该对象时传递至处理程序的可序列化或 SDO 数据执行相应的操作。
补偿处理程序类现在可供应用程序组件引用,也可以组装到应用程序中。
- 在组装工具中打开应用程序组件。
- 在部署描述符查看器中对应用程序组件打开部署描述符。
- 滚动至补偿部分并选择在业务活动范围中运行
EJB 方法复选框。
- 在补偿处理程序类文本字段中,输入之前创建的补偿处理程序类的标准类名。
- 保存部署描述符。
- 构建同时包括应用程序组件和补偿处理程序的应用程序。 如果该应用程序是 Web Service,那么该应用程序必须符合 Java 规范请求 (JSR) 109 标准。
- 在启用了业务活动的应用程序服务器上部署应用程序。
结果
应用程序现在已经启用了业务活动,并且可以在运行时通过业务活动 API 来使用业务活动支持。该应用程序组件具有相关联的补偿处理程序,并因此会在运行时调用 setCompensationDataImmediate 和 setCompensationDataAtCommit
方法以将补偿处理程序添加至业务活动范围。有关这些方法的更多信息,请参阅有关业务活动 API 的主题。如果与业务活动范围相关联的工作单元失败,那么补偿处理程序将执行某些操作以对错误作出补偿。
下一步做什么
请确保补偿处理程序类位于 WebSphere Application Server 运行时环境的应用程序类路径中。