快速业务通道

权衡Apache Geronimo EJB事务选项,第1部分: 容器管理事务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
端必须启动一个事务。这不会创建一个新的事务。在调用 bean 时,如果没有事务已经启动,则将抛出一个异常。当 bean 是某一较大系统的一部分时,请使用该属性。通常可能由第三方负责启动事务。对用户而言,这是一个安全选项,因为它可以确保 bean 将成为事务的一部分。

NotSupported —— 在事务中不能调用 bean。如果客户端已经启动一个事务,则挂起现有事务,直到 bean 的方法完成。在完成上述方法之后,现有事务将继续。如果客户端没有启动事务,则不会创建一个新事务。在不需要 bean 展示任何 ACID 属性(比如类似报表的非系统关键型操作)时,请使用该属性。

Never —— 如果客户端启动一个事务,则 bean 将抛出一个异常。在您可能永远都不想让您的 bean 参与到事务中的情况下,请使用该属性。

消息驱动 bean 的事务属性

只有两种消息驱动 bean 消息监听器方法使用的事务属性:

NotSupported —— bean 不能参与到事务中。如果客户端启动一个事务,那么现有事务将挂起,直到 bean 的方法完成为止。在完成上述方法之后,现有事务将继续。如果客户端没有启动事务,则不会创建一个新的事务。

Required —— bean 必须始终运行在事务中。如果客户端已经启动事务,则 bean 将加入到事务中。如果客户端没有启动事务,则 EJB 容器将启动一个新事务。

在为企业 bean 方法确定正确事务属性之后,就可以配置 EJB 部署描述符了。

配置 EJB 部署描述符

对于每个企业 bean,都要在部署描述符中配置事务的下列两个部分:

在 EJB 部署描述符中使用 <transaction-type> 元素指定 bean 使用的是容器管理的事务还是 bean 管理的事务。可能的值是 container 或 bean。由于实体 bean 必须使用容器管理的事务,这只对会话 bean 和消息驱动 bean 是必需的。

对于容器管理的事务,您可以为企业 bean 的方法随意指定事务属性。在 EJB 部署描述符中的 <container-transaction> 部分指定它。清单 1 中显示了每种方法的通用格式。

清单 1. 每种方法的通用格式

<method>        <ejb-name>EJBNAME</ejb-name>        <method-name>METHODNAME</method-name>        <trans-attribute>TRANSATTRIBUTE</trans-attribute> </method>

TRANSATTRIBUTE 可能的值有:

NotSupported

Required

Supports

RequiresNew

Mandatory

Never

权衡Apache Geronimo EJB事务选项,第1部分: 容器管理事务(4)

时间:2011-03-13 IBM Jonathan Sagorin

也可以对企业 bean 的所有方法指定事务属性。对 <method-name> 属性使用 *。

清单 2 显示了为容器管理的企业 bean 指定事务属性的示例。除了为 updateClaimNumber 方法分配 Mandatory 属性以外,ClaimRecord企业 bean 为所有方法都分配了 Required 属性。Coverage bean 对所有方法指派 RequiresNew 属性。

清单 2. ejb 部署描述符文件中的事务属性

<ejb-jar> ... <assembly-descriptor> ... <container-transaction>     <method>        <ejb-name>ClaimRecord</ejb-name>        <method-name>*</method-name>     </method>     <trans-attribute>Required</trans-attribute> </container-transaction> <container-transaction>     <method>        <ejb-name>ClaimRecord</ejb-name>     <method-name>updateClaimNumber</methodname>     </method>    <trans-attribute>Mandatory</trans-attribute&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号