【发布时间】:2011-02-18 06:17:51
【问题描述】:
在工作中,我们发现在某些情况下(尤其是速度较慢的情况),我们会在重新启动时获得不同的行为。
我们猜测缓存没有正确初始化,或者可能是并发问题...... 无论如何,它在生产之外的任何其他环境中都不可复制。
我们实际上没有要激活的记录器...它是一个旧组件...
因此我想知道是否有工具可以帮助我们查看 JVM 内存中存在的不同对象以检查缓存的内容...
谢谢!
编辑:
我无法直接访问生产服务器,我们的应用服务器是 weblogic 10,我没有指向对象的指针但我知道缓存对象类型...
编辑2:
我们的服务器在 jre 1.5 上运行,可以使用 jmap 吗?在 jdk5 中找不到它:( 此外,远程调试可能很好,但出于安全原因我们不能...
编辑3:
实际上 jhat + VisualVM 对我来说没问题,我在转储中找到了我的对象,但我无法正确读取哈希图(包含大约 60000 个项目的对象)... 是否有一种工具可以以友好的方式读取并发哈希图?我需要在不手动浏览 60k 记录的情况下找到键的值(或它在地图中的存在)。 实际上我在 eclipse MAT 论坛上读到它也不可能......
编辑4: 经过一些经验,我真的很喜欢 VisualVM 之类的工具。还使用了YourKit。 有一些有用的功能(例如 OQL)可以找到您需要查看的正确实例...
【问题讨论】:
-
我不知道在没有某种指针/变量引用的情况下访问对象的方法。
标签: java caching jvm production-environment