我正在使用带有Hibernate 4的EHCache 2.6.9版。我在日志中看到以下警告:
net.sf.ehcache.pool.SizeOf.ObjectGraphWalker checkMaxDepth在尝试计算对象图的大小时达到了1000个对象引用的配置限制....
我没有将任何限制设置为1000.但是在看到此警告后,我将sizeOfPolicy定义为10000.但是我仍然看到警告。
尝试计算时,已达到配置的1000个对象引用限制net.sf.ehcache.pool.SizeOf deepsize
答案 0 :(得分:0)
您的问题的答案:
答案 1 :(得分:0)
幻数" 1000 "是ehCache在记录警告消息之前遍历的默认深度,然后继续调整对象图的大小。 (他们似乎从ehCache版本2.5.0开始引入了这个)。请参阅以下链接:
但是,可以使用正确的配置指令更改此默认行为。对于您提到的版本,请查看 限制已遍历对象图的配置 部分'来自以下官方文件:
http://www.ehcache.org/documentation/ehcache-2.6.x-documentation.pdf
我看到@Louis按顺序回答了你所有的问题。您可能必须运行一些测试(可能是加载/性能测试),以查看您希望控制遍历深度的程度,以根据您的应用程序行为和需求对其进行调整。
答案 2 :(得分:0)
没有人在您的问题中提到 Hibernate 的问题。
您看到的问题很可能是因为 SizeOf 组件正在遍历 Hibernate 基础架构的一部分,例如会话。
这在 sizeof 中由 FilterConfigurators 解决。我已经分叉了针对 Hibernate 4 的 ehcache-sizeof-hibernate 存储库并将其修复为适用于 Hibernate 5 here