EJB 事务与异常处理全解析
1. EJB 事务管理
在 EJB 中,事务管理对于分布式企业应用至关重要。事务管理分为容器管理事务(CMT)和 bean 管理事务(BMT)两种方式。
1.1 默认事务属性定义
若 bean 中的某个方法应指定事务属性却未指定,它将被标记为默认属性。以下是定义默认属性的示例:
<container-transaction>
<method>
<ejb-name> FortuneCookieBean </ejb-name>
<method-name> * </method-name>
</method>
<trans-attribute> RequiresNew </trans-attribute>
</container-transaction>
这里的通配符 *
表示 FortuneCookieBean
的所有方法都将被标记为 RequiresNew
。不过,任何按方法名的指定都会覆盖此默认设置。
1.2 事务同步
当事务涉及内存数据与数据库数据时,保持两者同步十分关键。实体 bean 通过 ejbLoad()
和 ejbStore()
等方法与数据库交互,以实现数据同步。例如,在提交事