1

Stateless Session Bean を実行して、さまざまな場所からデータを取得しています。

この SLSB のキャッシュを実現する最善の方法は何ですか?

インターセプターを使用していますか? JBossCache を使用していますか?

JBoss 5.0.1 を使用しています。

4

2 に答える 2

1

技術的には、ステートレス セッション Bean で状態を保持することが許可されています。これは、呼び出しの間にコンテナーによって状態がクリアされる可能性があるということだけです。その結果、キャッシュ自体が消える可能性があるため、Bean にキャッシュ自体を保持しないでください。

すでに JBoss Appserver を使用しているため、ここでは JBossCache が明らかに勝者のように思えます。jboss サービス記述子を使用して JBossCache インスタンスを設定すると、EJB は JMX/JNDI からキャッシュ インスタンスをルックアップできます。JBossAS にはすでにすべて含まれているため、追加の依存関係は必要ありません。

JBossCache を使用すると、クラスター全体にキャッシュが分散されるという追加のボーナスも得られます (興味がある場合)。

于 2009-12-15T17:26:54.810 に答える
0

steteless セッション Bean 自体は、その名前が示すようにステートレスであるため、呼び出し間でデータを保持できません。でも。キャッシュを保持するステートフル セッション Bean を作成し、この Bean をステートレス Bean メソッドに渡すことができます。

void someMethod(StateFulBean sfb){
  Cache cahce = sfb.getCache();
  ...

}

EBJ 3.1 を使用する場合、Singleton アノテーションを利用して、キャッシュをシングルトンとしてステートレス セッション Bean に注入することもできます。

于 2009-12-15T15:48:00.457 に答える