排除EJB cachefull异常



关于问题::EJB weblogic.ejb20.cache.CacheFullException

我试图了解EJB容器如何管理实体Bean,我知道EJBHome对象上的创建/查找方法调用导致Bean实例在缓存中加载,但是是否有任何其他操作/配置导致Bean在缓存中加载(例如:容器管理的关系)?

我也看到一个非常高的值缓存访问计数(百万)在weblogic控制台。如何将这些值追溯到代码?

我把max-beans-in-cache设置为8000

这个链接解释了一点,但我想你可能已经知道了http://docs.oracle.com/cd/E11035_01/wls100/perform/EJBTuning.html#wp1143320

需要注意的是,每个实体bean映射到数据库中的一条记录,因此使用max-beans-in-cache为8000时,您将有效地存储最多8000条不同的记录。根据您选择的并发策略,您甚至可以拥有少于8000条唯一记录,因为缓存允许存储具有相同主键的多个ejb实例。

从代码的角度来看,我认为对ejbActivate()的调用要么使用缓存中的现有bean,要么将池中的bean放入缓存中。因此,您可以尝试在ejbactivate中使用一些日志方法来计算访问它的次数。我不确定这一点。

如果你的缓存访问计数以百万计,那么缓存命中和未命中计数呢?如果缓存值为8000,那么缓存命中是否足够成功?

相关内容

  • 没有找到相关文章

最新更新