ステートレスセッション Beans とエンティティー Beans はどちらも、サーバーのパフォーマンスを改善する目的でプール内に格納できます。さらに、ステートフルセッション Beans とエンティティー Beans はどちらも、パフォーマンスを改善する目的でキャッシュ内に格納できます。
表 3–1 Bean タイプ別のプール処理またはキャッシュ処理
Bean 型 |
プール |
キャッシュ |
---|---|---|
ステートレスセッション |
可 |
不可 |
ステートフルセッション |
不可 |
可 |
エンティティー |
可 |
可 |
プール Bean とキャッシュ Bean の違いは、プール Beans はどれも等価であり、互いに区別できない、という点にあります。これに対し、キャッシュ Beans には、ステートフルセッション Beans の場合は対話状態が格納され、エンティティー Beans の場合は主キーが関連付けられます。エンティティー Beans は、ejbActivate() 呼び出し時にプールから削除されてキャッシュに追加され、ejbPassivate() 呼び出し時にキャッシュから削除されてプールに追加されます。ejbActivate() は、必要なエンティティー Bean がキャッシュ内に存在しない場合に、コンテナによって呼び出されます。ejbPassivate() は、キャッシュがその設定された上限を超えた場合に、コンテナによって呼び出されます。
Sun Java Studio を使って EJB コンポーネントを開発および配備する場合、個々の Bean 記述子の設定を、Bean プールや Bean キャッシュ向けに編集する必要があります。これらの設定は、本番レベルの配備に適していない可能性があります。