以下の操作については、Beanクラスのメソッドごとに実行できる操作が異なります。
javax.ejb.SessionContextインタフェースのメソッド実行
javax.transaction.UserTransactionインタフェースのメソッド実行
Enterprise Bean Environmentの利用
データベースへのアクセス
他のEJBアプリケーションへのアクセス
以下に実行できる操作についてまとめます。以下に示す以外の操作を実行した場合は、java.lang.IllegalStateExceptionが発生する場合があります。
STATEFUL Session Beanの場合
メソッド名  | 実行可能な操作  | 
|---|
トランザクション管理種別が Containerの場合  | トランザクション管理種別が Beanの場合  | 
|---|
コンストラクタ  | なし  | なし  | 
setSessionContext  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome 
 Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome 
 Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 
  | 
ejbCreate ejbRemove ejbActivate ejbPassivate  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getEJBObject getEJBLocalObject 
 Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getEJBObject getEJBLocalObject getUserTransaction 
 javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | 
ビジネスメソッド  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal getRollbackOnly isCallerInRole setRollbackOnly getEJBObject getEJBLocalObject 
 Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getEJBObject getEJBLocalObject getUserTransaction 
 javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス データベースへのアクセス 
  | 
afterBegin beforeCompletion  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal getRollbackOnly isCallerInRole setRollbackOnly getEJBObject getEJBLocalObject 
 Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | なし (トランザクション種別がBeanの場合、SessionSynchronizationインタフェースのAPIは使用できません)。 (注2)  | 
afterCompletion  |  | 
注1) EJB規約では許可されていないため、アプリケーションの移行性を重視する場合には推奨しません。
注2) 詳細については、“10.4.4 Session Beanのsynchronization機能”を参照してください。
STATELESS Session Beanの場合
メソッド名  | 実行可能な操作  | 
|---|
トランザクション管理種別が Containerの場合  | トランザクション管理種別が Beanの場合  | 
|---|
コンストラクタ  | なし  | なし  | 
setSessionContext  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal (注1) isCallerInRole (注1) getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal (注1) isCallerInRole (注1) getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 
  | 
ejbCreate  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal (注1) isCallerInRole (注1) getEJBObject getEJBLocalObject getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal (注1) isCallerInRole (注1) getEJBObject getEJBLocalObject getUserTransaction getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 
  | 
ejbRemove  |  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getEJBObject getEJBLocalObject getUserTransaction getTimerService 
 javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 
  | 
ビジネスメソッド (RemoteインタフェースもしくはLocalインタフェースで呼び出された場合)  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal getRollbackOnly isCallerInRole setRollbackOnly getEJBObject getEJBLocalObject getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getEJBObject getEJBLocalObject getUserTransaction getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | 
ビジネスメソッド (サービスエンドポイントインタフェースで呼び出された場合)  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal getRollbackOnly isCallerInRole setRollbackOnly getEJBObject getEJBLocalObject getMessageContext getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getEJBObject getEJBLocalObject getUserTransaction getMessageContext getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | 
ejbTimeout  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getRollbackOnly setRollbackOnly getEJBObject getEJBLocalObject getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | javax.ejb.SessionContextメソッド getEJBHome getEJBLocalHome getCallerPrincipal isCallerInRole getEJBObject getEJBLocalObject getUserTransaction getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド javax.transaction.UserTransactionメソッド Enterprise Bean Environmentの利用 他のEJBアプリケーションへのアクセス リソースマネージャ(データベースなど)へのアクセス 
  | 
注1) EJB規約では許可されていないため、アプリケーションの移行性を重視する場合には推奨しません。
注意
SessionContextインタフェースのgetRollbackOnlyメソッドとsetRollbackOnlyメソッドは、トランザクション内で実行されるEnterprise Beanメソッドの中でだけ使用してください。
インスタンスがトランザクションに関連付けられていないときにこれらのメソッドが呼び出された場合は、java.lang.IllegalStateExceptionが発生する場合があります。