0

質問を参照して:: EJBweblogic.ejb20.cache.CacheFullException

EJBコンテナがエンティティBeanを管理する方法を理解しようとしています。EJBHomeオブジェクトでcreate/finderメソッドを呼び出すと、Beanインスタンスがキャッシュにロードされますが、Beanがロードされる原因となる他の操作/構成はありますか。キャッシュ(例:コンテナ管理の関係)?

また、weblogicコンソールに非常に高い値のキャッシュアクセス数(百万)が表示されます。これらの値をコードまでさかのぼるにはどうすればよいですか?

max-beans-in-cacheを8000に設定しています。

4

1 に答える 1

1

このリンクはそれを少し説明していますが、私はあなたがすでにこれを知っているかもしれませんhttp://docs.oracle.com/cd/E11035_01/wls100/perform/EJBTuning.html#wp1143320

注意すべき点は、各エンティティBeanがデータベース内の1つのレコードにマップされるため、キャッシュ内のmax-beansが8000の場合、事実上、最大8000の異なるレコードを格納することになります。選択した同時実行戦略によっては、キャッシュが同じ主キーを持つ複数のejbインスタンスを格納できるため、8000未満の一意のレコードを持つこともできます。

コードの観点からは、ejbActivate()の呼び出しは、キャッシュからの既存のBeanを使用するか、プールからのBeanをキャッシュに入れると思います。したがって、ejbactivateでいくつかのロギング方法を試して、アクセスされた回数をカウントすることができます。しかし、これについてはよくわかりません。

キャッシュアクセス数が百万単位である場合、キャッシュヒットとミスの数はどうですか?キャッシュ値として8000を使用すると、キャッシュヒットは十分に成功しますか。

于 2013-01-04T06:14:23.443 に答える