6

J2SE アプリケーションからリモート ステートレス セッション Bean を呼び出しており、ルックアップのコストを削減するためにセッション Bean への参照をキャッシュしたいと考えています。これでよろしいですか?

EJB2 では ServiceLocator パターンを使用してリモート リソースへのルックアップをキャッシュするのが一般的でしたが、EJB3 には個別の EJB ホーム (通常はキャッシュされていた) とリモート オブジェクトがありません。

これに対する一般的な答えは、EJB3 インジェクションを使用することですが、J2SE クライアントからリモート EJB サーバーへの呼び出しを行っているため、インジェクションを使用できません。

4

2 に答える 2

2

はい、キャッシュできます。しかし、キャッシュされた参照があり、その下でサーバーが再起動された場合に何が起こるかが定義されているかどうかはわかりません。そのシナリオをテストできますが、動作はコンテナーによって異なる場合があります。

于 2009-04-05T05:51:38.013 に答える
1

サーバーがなくなると、参照は無効になります。

通常のライフサイクル中のキャッシングに関しては、これで問題ありません。EJB2 と EJB3 の両方で何年もこれを行ってきましたが、問題はありませんでした。一般的に、家を検索するか、既存のものがある場合はそれを返し、それをマップに保存する静的な「LookupServices」クラスがあります。

于 2009-04-15T21:28:47.947 に答える