配置事务部署属性
可以配置与 EJB 或 Web 模块相关联的事务性部署描述符属性,以使企业应用程序能够使用事务。
开始之前
关于此任务
可以使用组装工具来配置应用程序的部署属性。
可以使用 Rational® Application Developer 或等效工具来配置应用程序的部署属性。
要使用 Rational Application Developer 来设置应用程序组件(企业 Bean 或 servlet)的部署描述符中的事务性属性,请完成以下步骤。
过程
- 启动组装工具。 有关更多信息,请参阅 Rational Application Developer 信息。
- 创建或编辑应用程序 EAR 文件。 例如,要更改现有应用程序的属性,请使用导入向导将 EAR 文件导入到组装工具中。要启动导入向导:
- 单击文件 > 导入 > EAR 文件。
- 单击下一步,然后选择 EAR 文件。
- 单击完成。
- 在 Java EE 透视图的 Project Explorer 视图中,右键单击组件实例,然后单击打开方式 > 部署描述符编辑器。 要找到组件实例,请使用适当的步骤:
- 对于会话 Bean,请展开 EJB 模块 > ejb_module_instance > 部署描述符 > 会话 Bean,然后选择 Bean 实例。
- 对于 servlet,请展开 Web 模块 > web_application > 部署描述符 > Web 组件,然后选择 servlet 实例。
- 可选: 仅限于会话 Bean:设置“事务类型”属性,它定义了容器调用方法的事务方式。 您可以将该属性设置为“容器”或 Bean,如下所示:
- 要使用容器管理的事务,请将该属性设置为“容器”。
- 要使用 Bean 管理的事务,请将该属性设置为 Bean。
- 在部署描述符笔记本中,选择 Bean 选项卡。(可选)在“WebSphere 扩展”部分中配置“局部事务”属性。 要启用局部事务容器的管理,请配置以下各项组件扩展属性。
对于组件,这些属性配置每次未出现全局事务时容器所建立的局部事务包含范围 (LTC) 环境的行为。
- 边界
- 此设置指定容器边界,必须在此处完成所有包含的资源管理器局部事务 (RMLT)。可能值为 BeanMethod 或 ActivitySession。
- Bean 方法:这是缺省值。如果选择此选项,那么必须在启动 RMLT 的 Bean 方法中解析这些 RMLT。
- [仅适用于 EJB 组件] ActivitySession:必须在启动 RMLT 的任何 ActivitySession
的范围中解析这些 RMLT,或者如果没有 ActivitySession
上下文,那么在启动 RMLT 的 Bean 方法中解析它们。注: Web 容器中不支持 ActivitySession 选项。
- 解析器
- 此设置指定负责启动和结束 RMLT 的组件。可能值为“应用程序”或 ContainerAtBoundary。
- 应用程序:这是缺省值。应用程序负责启动 RMLT 并在局部事务容器 (LTC) 范围内完成它们。根据未解析操作属性的值,在 LTC 范围末尾未完成的所有 RMLT 将被容器清除。
- ContainerAtBoundary:容器负责启动 RMLT 并在 LTC 边界内完成它们。第一次在 LTC 范围内使用连接时,容器将开始 RMLT,并且会在 LTC 范围末尾自动完成它。如果边界设置为 ActivitySession,那么 RMLT 将登记为 ActivitySession 资源并且由 ActivitySession 引导完成。如果边界设置为 BeanMethod,那么 RMLT 将由容器在方法结束时落实。
- 未解析的操作
- 指定容器请求 RMLT 执行的指令(如果那些事务在 LTC 边界范围结束时未解析,并且解析器设置为“应用程序”)。可能值为“回滚”或“落实”。
- 回滚:这是缺省值。在 LTC 范围末尾,容器将指导所有未解析的 RMLT 回滚。
- 落实:在 LTC 边界范围结束时,容器将引导所有未解析的 RMLT 落实。容器仅在缺乏未处理异常的情况下才指示 RMLT 落实。如果在局部事务上下文中运行的应用程序方法结束并产生异常,那么容器将回滚所有未解析的 RMLT。此行为与全局事务的行为相同。
- 可共享
- 指定组件能否共享 LTC。只有尚不存在可共享的 LTC 时,才启动新的 LTC。使用可共享 LTC 的应用程序不能显式落实或回滚在可共享 LTC 中使用的资源管理器连接(虽然它们可以使用具有 autoCommit 功能的连接)。
如果应用程序在“解析器”属性设置为 Application 以及“可共享”属性设置为 true 的 LTC 中启动任何非自动落实工作,那么运行时期间会抛出异常。 例如,在 JDBC 连接上,非自动落实工作是应用程序使用 setAutoCommit(false) 方法对连接关闭自动落实选项后执行的工作。使用 Bean 管理的事务 (BMT) 不能与在 LTC 配置中设置的“可共享”属性聚集。
您必须指定共享 LTC 的所有组件的可共享属性。创建可共享 LTC 的组件确定共享的 LTC 的其他属性,例如,“解析器”属性的值。
- 在“WebSphere 扩展”部分中配置“全局事务”属性。这些属性为组件配置了全局事务存在时的行为。
- 组件事务超时
- 仅限于使用容器管理的事务的企业 Bean:为容器代表企业 Bean 启动的任何新全局事务指定事务超时(以秒计)。对于代表组件启动的事务,“组件事务超时”设置会覆盖在应用程序服务器的事务服务设置中配置的缺省事务生存期总超时。
以下属性仅对 JAX-RPC 应用程序启用 WS-AtomicTransaction 和 WS-BusinessActivity 支持:
- 使用 Web Service 原子事务
- 仅限于企业 Bean:选择了此属性时,如果应用程序组件发出任何 Web Service 请求,将按照应用程序服务器中的 Web Service 原子事务支持中描述的 WebSphere WS-AtomicTransaction 支持随 Web Service 请求传播所有事务上下文。如果未选择此属性,那么 Web Service 请求不会携带事务上下文。
- 根据请求发送 Web Service 原子事务
- 仅限于 Web 组件:选择了此属性时,如果应用程序组件发出任何 Web Service 请求,将按照应用程序服务器中的 Web Service 原子事务支持中描述的 WebSphere WS-AtomicTransaction 支持随 Web Service 请求传播所有事务上下文。如果未选择此属性,那么 Web Service 请求不会携带事务上下文。
- 使用入局请求的 Web Service 原子事务执行
- 仅限于 Web 组件:如果选择此属性,那么 Web 应用程序组件会准备在接收的 WS-AtomicTransaction 上下文中运行。Web 应用程序组件可以在接收的 WS-AtomicTransaction 上下文中运行,其方式类似于使用容器事务类型“支持”部署的企业 Bean。如果未选择此属性,那么 Web 应用程序组件的容器会暂挂所有接收的事务上下文,其方式类似于使用容器事务类型“不受支持”部署的企业 Bean 的 EJB 容器的行为。
如果应用程序使用 JAX-WS,请通过创建策略集、将 WS-Transaction 策略类型添加至策略集并将该策略集连接至服务或客户机来启用对 WS-AtomicTransaction 或 WS-BusinessActivity 的支持。
如果连接至客户机的策略集包括 WS-Transaction 策略类型,那么所有活动全局事务上下文将与 Web Service 请求一起传播,其方式类似于请求上的部署描述符“使用 Web Service 原子事务”和“发送 Web Service 原子事务”,如本主题早先时候所描述的那样。此外,如果包含了 WS-Transaction 策略类型,那么服务将在任何接收到的 WS-AtomicTransaction 上下文下运行,其方式类似于入局请求上的部署描述符“使用 Web Services 原子事务来执行”,如本主题早先时候所描述的那样。
- 仅限于 EJB 组件:对于容器管理的事务,将方法调用委派给企业 Bean 的业务方法时,配置容器管理事务边界的方法:
- 在部署描述符笔记本中,选择组装选项卡。 “容器事务”部分显示了企业 Bean 的方法表。
- 对于企业 Bean 的每个方法,将“容器事务类型”设置为相应的值。 “容器事务类型”的缺省值是“必需的”,表示在事务上下文中会发生方法调用。此事务是(本地或远程)客户机组件事务或由组件容器启动的新事务(如果客户机组件没有在事务中运行)。
如果应用程序使用 ActivitySession,那么容器在委派方法调用时管理事务边界的方式取决于此任务中设置的“容器事务类型”和设置 EJB 模块 ActivitySession 部署属性中描述的“ActivitySession 种类”属性。有关两个属性之间的关系的更多详细信息,请参阅ActivitySession 与组合的事务容器策略。
- 对于使用 SOAP/JMS 绑定并参与 WS-AtomicTransaction 的 Web Service 应用程序, 将名为“JMS 路由器 MDB”的消息驱动的 Bean 的“容器事务类型”设置为值“不受支持”,如先前步骤中所述。 使用 SOAP/JMS
绑定的 Web Service 应用程序在组装的 EAR 中包含名为“JMS 路由器 MDB”的路由器消息驱动的 Bean。如应用程序服务器中的 Web Service 原子事务支持中所述,如果 Web Service 使用 SOAP/JMS 绑定并参与 WS-AtomicTransactions,那么应将“JMS 路由器 MDB”的“容器事务类型”设置为值“不受支持”。
对于使用 SOAP/HTTP 绑定和参与 WS-AtomicTransactions 的 Web Service 应用程序,您不必执行此操作。
- 仅限于客户机应用程序组件:如果需要,启用客户机对事务定界的支持。 在部署描述符笔记本中,选中允许 JTA 定界复选框。 此选项指导客户机容器将 Java™ 事务 API (JTA) UserTransaction 接口绑定至位于客户机组件的 java:comp/UserTransaction 中的 JNDI。事务的客户机支持中描述了客户机容器中对事务支持功能的一些约束。
- 保存对部署描述符所作的更改。
- 关闭部署描述符编辑器。
- 接收到提示时,单击是以保存对部署描述符所作的更改。
- 验证归档文件。 有关使用 Rational Application Developer 来验证文件的更多信息,请参阅 Rational Application Developer 资料。
- 在项目菜单中,单击部署,以生成 EJB 部署代码。
- 可选: 在安装的应用程序服务器上测试完成的模块。右键单击模块,单击在服务器上运行,并且按照显示的向导中的指示信息进行操作。 要点: 仅将在服务器上运行选项用于单元测试。组装工具控制应用程序服务器安装,当远程发布应用程序时,组装工具将覆盖该服务器的服务器配置文件。请勿在生产服务器上使用在服务器上运行选项。
下一步做什么


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjta_entra2
文件名:tjta_entra2.html