2009-04-05 6 views
5

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

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

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

答えて

2

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

1

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

通常のライフサイクルでのキャッシングに関しては、これは問題ありません。私はこれをEJB2とEJB3の両方で何年もやってきましたが、問題は一度もありませんでした。一般的に私は静的な 'LookupServices'クラスを持っているだけで、家を探したり、すでにある場合は既存のものを返したりしてマップに格納します。

関連する問題