javax.ejb.EJBContextインタフェースのgetUserTransactionメソッド,getRollbackOnlyメソッド,setRollbackOnlyメソッドについては,Enterprise Beanのトランザクション管理モデルによっては発行できません。また,Enterprise Beanのメソッドのうち,EJB仕様で"Unspecified transaction"で動作するとされるものでは,発行できません。発行できない場合,EJBコンテナはjava.lang.IllegalStateExceptionを送出します。各メソッドの発行可否についてそれぞれの表に示します。
表4-2 トランザクション管理モデル別の発行可否
javax.ejb.EJBContextメソッド | 発行可否 | |
---|---|---|
BMT | CMT | |
getUserTransaction | ○ | × |
getRollbackOnly | × | ○ |
setRollbackOnly | × | ○ |
(凡例)○:発行できる。 ×:発行できない。
表4-3 EJBのメソッド別の発行可否
Bean種別 | メソッド | 発行可否 |
---|---|---|
SessionBean | コンストラクタ | × |
setSessionContext | × | |
ejbCreate | × | |
ejbRemove | × | |
ejbPassivate | × | |
ejbActivate | × | |
ビジネスメソッド | ○ | |
afterBegin | ○ | |
beforeCompletion | ○ | |
afterCompletion | × | |
EntityBean | コンストラクタ | ○ |
setEntityContext | × | |
unsetEntityContext | × | |
ejbCreate | ○ | |
ejbPostCreate | ○ | |
ejbRemove | ○ | |
ejbHome | ○ | |
ejbPassivate | × | |
ejbActivate | × | |
ejbLoad | ○ | |
ejbStore | ○ | |
ビジネスメソッド | ○ | |
Message-driven Bean | コンストラクタ | × |
ejbCreate | × | |
onMessage | ○ | |
メッセージリスナのメソッド | ○ | |
ejbRemove | × |
(凡例)○:発行できる。 ×:発行できない。