Cosminexus 機能解説
Stateless Session Beanを実装するときの注意事項を示します。
ホームインタフェースを使用してStateless Session Beanを呼び出す場合,ホームインタフェースのcreateメソッドを呼び出してリファレンスを取得しますが,Session Beanの呼び出しが完了したあとに,必ずremoveメソッドを呼び出してリファレンスを解放してください。リファレンスを解放しない場合,J2EEサーバ上のメモリを消費したままの状態になります。
また,removeメソッド呼び出しを不要にするオプションを指定することで,Stateless Session BeanのEJBオブジェクトに対する,removeメソッドの呼び出しが不要になります。このオプションを有効にすると,removeメソッド呼び出しのあとに,ビジネスメソッドの呼び出しができます。
このオプションを無効にしている場合は,removeメソッドを呼び出す必要があります。また,removeメソッド呼び出しのあとにビジネスメソッドを呼び出した場合,java.rmi.NoSuchObjectException例外が呼び出し元に返ります。
removeメソッド呼び出しを不要にするオプションは,usrconf.propertiesのejbserver.rmi.stateless.unique_id.enabledキーに指定し,J2EEサーバ単位に定義します。キーの詳細については,マニュアル「Cosminexus リファレンス 定義編」を参照してください。また,構成ソフトウェアにCosminexus TPBrokerを含まないuCosminexus Developer Standardでは,プロパティの設定に関係なく常にこのオプションは有効になります。
EJB仕様では,ejbCreateメソッドまたは@PostConstructアノテーションを指定したメソッドで,リソースマネジャへアクセスすることは許されていません。
同じSession Beanを同じJ2EEアプリケーション内でStateful Session Bean,およびStateless Session Beanとして同時に利用しないでください。
Stateless Session BeanのejbRemoveメソッドまたは@PreDestroyアノテーションを指定したメソッドでは,javax.transaction.UserTransactionのbeginメソッドを呼び出せる場合がありますが,EJBの仕様上,呼び出して使用することはできません。呼び出さないようにしてください。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.