その他のメソッドについて
ejbCreateとビジネスメソッド以外に、Enterprise Beanクラスには、コンテナが処理の各フェーズで呼び出す以下のメソッドがあります。
以下のメソッドにはユーザが任意の処理を指定できます。以下のメソッドはすべて省略できません。
以下に使用できるメソッドの一覧を示します。
メソッド名 | 内容 |
---|---|
setSessionContext | コンテナによって保守されているコンテキストへのアクセスを与えます。 |
ejbPassivate | EJBアプリケーションのインスタンスが二次領域(注1)に退避されるときに呼び出されます(ただし本バージョンでは呼ばれません)。 |
ejbActivate | EJBアプリケーションのインスタンスが二次領域から復元されるときに呼び出されます(ただし本バージョンでは呼ばれません)。 |
ejbRemove | EJBアプリケーションのインスタンスが終了するときに呼び出されます。 |
注1) EJBアプリケーションのインスタンスを退避するための領域
SessionContextインタフェースのメソッド
SessionContextは、コンテナによって保守されているコンテキストへのアクセスを与えます。
このインタフェースは、setSessionContextのパラメタとして指定することにより取得できます。それにより SessionContextより拡張される EJBContextインタフェースのメソッドを使用できます。
以下に使用できるメソッドの一覧を示します。
メソッド名 | 内容 |
---|---|
getEJBObject() | 現在インスタンスに関連付けられている EJB objectの参照を取得します。 |
getEJBLocalObject() | 現在インスタンスに関連付けられている EJB local objectの参照を取得します。 |
getEJBHome() | Enterprise BeanのHomeインタフェースを取得します。 |
getEJBLocalHome() | Enterprise BeanのLocalHomeインタフェースを取得します。 |
getCallerPrincipal() | 呼出し側のjava.security.Principalを取得します。 |
isCallerInRole(java.lang.String) | 呼出し側がセキュリティーロールに割り当てられているか判定します。 |
setRollbackOnly() | カレントトランザクションを“rollback”にマークします。 |
getRollbackOnly() | そのトランザクションが“rollback only”でマークされているか判定します。 |
getUserTransaction() | トランザクション区別インタフェースを取得します。 |
注意
上記以外のメソッドは本バージョンでは使用上制限があります。
ejbPassivateとejbActivateについて
ejbPassivateと ejbActivateは、本バージョンでは呼ばれません。ただし、省略できないのでメソッドの記述はしてください。
ejbRemoveについて
EJBアプリケーションのインスタンスが終了するため、ファイルやデータベースの close処理を行ってください。
注意
EJBサービスでは、createメソッドで作成したSTATEFUL Session Beanのインスタンスを再利用することにより、サーバへの接続時間を短縮しています。そのため、STATEFUL Session Beanのcreate実行時に、コンストラクタの実行とフィールドの初期化がされないことがあります。
初期化処理はejbCreateメソッド内に記述してください。