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