以下の操作については、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が発生する場合があります。