gpt4 book ai didi

java - 排查 EJB 缓存已满异常

转载 作者:行者123 更新时间:2023-12-01 14:57:40 27 4
gpt4 key购买 nike

引用问题:: EJB weblogic.ejb20.cache.CacheFullException

我试图了解 EJB 容器如何管理实体 bean,我知道 EJBHome 对象上的 create/finder 方法调用会导致 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 作为缓存值,缓存命中是否足够成功。

关于java - 排查 EJB 缓存已满异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com