EJB 容器
EJB 容器提供对全局事务的完整事务支持,包括容器管理的事务 (CMT) 和 Bean 管理的事务 (BMT)。会话 Bean 和消息驱动的 Bean 可以使用任一种类型。实体 Bean 仅限于使用 CMT。使用 BMT 的 Bean 负责事务划分并且必须使用 UserTransaction 接口来开始和结束事务。CMT 是首选的机制,因为它把事务控制委托给应用程序服务器,使应用程序开发人员能够专注于开发业务逻辑,同时仍可以根据部署决定应用程序的事务特性。CMT 的事务控制的关键是 EJB 事务属性,下面将讨论该属性。
事务属性
事务属性在 EJB 部署描述符(ejb-jar.xml 文件)中设置,事务属性是控制属性,在控制情形下当调用 Bean 方法时启动全局事务。此事务属性显示在“container-transaction”部分,并使用“trans-attribute”标记指定。例如,以下 XML 定义 CTGTesterCCI Bean 上的远程 execute() 方法具有“Required”事务属性:
CTGTesterCCI
Remote
execute
Required
显示了如何使用 IBM Rational® application Developer 中的 EJB 部署描述符编辑器定义这些设置的情况。
Rational Application Developer 中的事务属性
事务属性的可能值及其描述在表 1 中列出:
表 1. EJB 事务属性
事务属性描述
NotSupportedBean 方法不在事务的上下文中执行。
RequiredBean 方法将在事务的上下文中执行。
RequiresNewBean 方法将在新事务的上下文中执行。
SupportsBean 方法可以在事务上下文中执行,也可以不在事务上下文中执行。
MandatoryBean 方法必须在 EJB 客户机的事务上下文中执行。
NeverBean 不会在事务上下文中调用。
¥498.00
¥299.00
¥29.00
¥399.00