我目前正在尝试找出在 Tomcat 6.0.26 上运行的 Liferay 门户(6.0.6)上的内存泄漏。我们一直在查看 OutOfMemoryException 发生时产生的内存转储,并且有非常明显的异常。一到三个 ThreadWithAttributes 有一个 String / char 数组,每个数组占用超过 1GB 的内存。它的内容是“10970_LAYOUT_56_INSTANCE_1GnU=ADddfj6O, 536133_LAYOUT_49=J23g02gH”的形式......一遍又一遍地重复。
据我了解,这是某种 portlet-id 和它的实例 id,但是我如何使用这些信息来找出导致这种情况的 portlet?总的来说,我对 Liferay 和 webapps 基本上是全新的,尽管对常规 Java SE 应用程序有很好的背景。据我了解,Tomcat 正在使用一个线程池,该线程池要求 portlet 自行清理,但我们有大量的 portlet,很难猜出负责人。那么,有没有办法使用该 String 来精确定位 portlet?
提前致谢