以下の操作は、Beanクラスのメソッドごとに実行できる操作が異なります。
javax.ejb.MessageDrivenContextインタフェースのメソッド実行
javax.transaction.UserTransactionインタフェースのメソッド実行
Enterprise Bean Environmentの利用
データベースへのアクセス
他のEJBアプリケーションへのアクセス
実行できる操作は以下です。以下に示す以外の操作を実行した場合は、java.lang.IllegalStateExceptionが発生する場合があります。
メソッド名  | 実行可能な操作  | 
|---|
トランザクション管理種別が Containerの場合  | トランザクション管理種別が Beanの場合  | 
|---|
コンストラクタ  | なし  | なし  | 
setMessageDrivenContext  |  |  | 
ejbCreate  |  |  | 
ejbRemove  | javax.ejb.MessageDrivenContextメソッド getRollbackOnly (注1) setRollbackOnly (注1) getTimerService 
 リソースマネージャ(データベースなど)へのアクセス (注1) 他のEJBアプリケーションへのアクセス (注1) Enterprise Bean Environmentの利用 
  | javax.ejb.MessageDrivenContextメソッド getUserTransaction getTimerService 
 javax.transaction.UserTransactionメソッド (注1) リソースマネージャ(データベースなど)へのアクセス (注1) 他のEJBアプリケーションへのアクセス (注1) Enterprise Bean Environmentの利用 
  | 
メッセージリスナメソッド  | javax.ejb.MessageDrivenContextメソッド getRollbackOnly setRollbackOnly getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 リソースマネージャ(データベースなど)へのアクセス 他のEJBアプリケーションへのアクセス 
  | javax.ejb.MessageDrivenContextメソッド getUserTransaction getTimerService 
 javax.transaction.UserTransactionメソッド javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 リソースマネージャ(データベースなど)へのアクセス 他のEJBアプリケーションへのアクセス 
  | 
ejbTimeout  | javax.ejb.MessageDrivenContextメソッド getRollbackOnly setRollbackOnly getTimerService 
 javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 リソースマネージャ(データベースなど)へのアクセス 他のEJBアプリケーションへのアクセス 
  | javax.ejb.MessageDrivenContextメソッド getUserTransaction getTimerService 
 javax.transaction.UserTransactionメソッド javax.ejb.TimerServiceメソッド javax.ejb.Timerメソッド Enterprise Bean Environmentの利用 リソースマネージャ(データベースなど)へのアクセス 他のEJBアプリケーションへのアクセス 
  | 
注1) EJB規約では許可されていないため、アプリケーションの移行性を重視する場合には推奨しません。
注意
MessageDrivenContextインタフェースのgetRollbackOnlyメソッドとsetRollbackOnlyメソッドは、トランザクション属性がRequiredのときだけ使用してください。
トランザクション属性がNotSupportedのときにこれらのメソッドが呼び出された場合は、java.lang.IllegalStateExceptionが発生する場合があります。