Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第11章 Session Beanの実装> 11.6 Enterprise Beanクラスの作成

11.6.2 Enterprise Beanクラスのメソッドが実行可能な操作

 以下の操作については、Beanクラスのメソッドごとに実行できる操作が異なります。

 以下に実行できる操作についてまとめます。以下に示す以外の操作を実行した場合は、java.lang.IllegalStateExceptionが発生する場合があります。

[STATEFUL Session Beanの場合]

メソッド名

実行可能な操作

トランザクション管理種別が
Containerの場合

トランザクション管理種別が
Beanの場合

コンストラクタ

なし

なし

setSessionContext

  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
  • Enterprise Bean Environmentの利用
  • 他のEJBアプリケーションへのアクセス (注1)
  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
  • Enterprise Bean Environmentの利用
  • 他のEJBアプリケーションへのアクセス (注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インタフェースは実装できません)。(注2)

afterCompletion

  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
    − getCallerPrincipal
    − isCallerInRole
    − getEJBObject
    − getEJBLocalObject
  • Enterprise Bean Environmentの利用

(注1)EJB2.0規約では許可されていないため、アプリケーションの移行性を重視する場合には推奨しません。
(注2)詳細については、“Session Beanのsynchronization機能”を参照してください。

[STATELESS Session Beanの場合]

メソッド名

実行可能な操作

トランザクション管理種別が
Containerの場合

トランザクション管理種別が
Beanの場合

コンストラクタ

なし

なし

setSessionContext

  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
  • Enterprise Bean Environmentの利用
  • 他のEJBアプリケーションへのアクセス (注1)
  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
  • Enterprise Bean Environmentの利用
  • 他のEJBアプリケーションへのアクセス (注1)

ejbCreate
ejbRemove

  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
    − getEJBObject
    − getEJBLocalObject
  • Enterprise Bean Environmentの利用
  • 他のEJBアプリケーションへのアクセス (注1)
  • javax.ejb.SessionContextメソッド
    − getEJBHome
    − getEJBLocalHome
    − getEJBObject
    − getEJBLocalObject
    − getUserTransaction
  • javax.transaction.UserTransactionメソッド
  • Enterprise Bean Environmentの利用
  • 他のEJBアプリケーションへのアクセス (注1)

ビジネスメソッド

  • 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アプリケーションへのアクセス

(注1)EJB2.0規約では許可されていません。


 SessionContextインタフェースのgetRollbackOnlyメソッドとsetRollbackOnlyメソッドは、トランザクション内で実行されるEnterprise Beanメソッドの中でだけ使用してください。

 インスタンスがトランザクションに関連付けられていないときにこれらのメソッドが呼び出された場合は、java.lang.IllegalStateExceptionが発生する場合があります。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005