Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EJB缓存完全异常故障排除_Java_Ejb_Weblogic_Ejb 2.x_Weblogic8.x - Fatal编程技术网

Java EJB缓存完全异常故障排除

Java EJB缓存完全异常故障排除,java,ejb,weblogic,ejb-2.x,weblogic8.x,Java,Ejb,Weblogic,Ejb 2.x,Weblogic8.x,关于这个问题: : 我试图理解EJB容器是如何管理实体Bean的,我知道对EJBHome对象的create/finder方法调用会导致Bean实例加载到缓存中,但是是否有任何其他操作/配置会导致Bean加载到缓存中(例如:容器管理的关系) 我还看到weblogic控制台中的缓存访问计数(百万)值非常高。如何将这些值追溯到代码 我已将缓存中的最大bean设置为8000。此链接对此进行了一些解释,但我相信您可能已经知道这一点 需要注意的是,每个实体bean映射到数据库中的一条记录,因此,如果缓存中

关于这个问题: :

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

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


我已将缓存中的最大bean设置为8000。

此链接对此进行了一些解释,但我相信您可能已经知道这一点

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

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

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