谁用heapanalyzer分析过内存泄漏?

系统上线后,经常出现内存泄漏的情况,具体如下:

生产环境:AIX53+Weblog 9.2+Oracle

应用:SSH

 

项目中使用了自定义的tag,实现tab页的功能,即一个页面有多个tab页签构成。下面的错误是OutOfMemoryError报的错误信息,注意标红的地方,这个OutOfMemoryError总是出现在这个地方。

 

java.lang.OutOfMemoryError
 at com.ibm.oti.vm.VM.initializeClassLoader(Native Method)
 at java.lang.ClassLoader.<init>(ClassLoader.java:118)
 at sun.reflect.ClassDefiner$1.run(ClassDefiner.java:60)
 at java.security.AccessController.doPrivileged(AccessController.java:193)
 at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:57)
 at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:399)
 at java.security.AccessController.doPrivileged(AccessController.java:193)
 at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:395)
 at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:77)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:52)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:615)
 at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
 at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:208)
 at org.apache.commons.digester.Rule.end(Rule.java:228)
 at org.apache.commons.digester.Digester.endElement(Digester.java:1067)
 at weblogic.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:586)
 at weblogic.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:223)
 at weblogic.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java:596)
 at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:748)
 at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1478)
 at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:330)
 at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:526)
 at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:582)
 at weblogic.apache.xerces.parsers.XMLParser.parse(XMLParser.java:153)
 at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1176)
 at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
 at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:153)
 at org.apache.commons.digester.Digester.parse(Digester.java:1610)
 at com.gwssi.gwaic.common.taglib.html.TabsTag.parse(TabsTag.java:166)
 at com.gwssi.gwaic.common.taglib.html.TabsTag.doEndTag(TabsTag.java:36)
 at jsp_servlet._gwaic._module._qydj._sl._bg.__yxzrgs._jsp__tag22(__yxzrgs.java:947)
 at jsp_servlet._gwaic._module._qydj._sl._bg.__yxzrgs._jspService(__yxzrgs.java:265)
 at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
 at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:496)
 at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
 at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
 at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
 at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
 at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
 at com.gwssi.gwaic.common.GwssiController.doFilter(GwssiController.java:91)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
 at com.gwssi.framework.console.controller.GwssiControllerFilter.doFilter(GwssiControllerFilter.java:40)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
 at com.gwssi.framework.console.controller.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:102)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3212)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
 at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
 at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
 at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

标红的部分,业务上是点一个“受理”按钮,然后生成一个具有10几个的tab页签的页面。

 

附件里是我用heapAnalyzer打开宕机后产生的heapdump文件的分析结果,嫌疑最大的引起泄漏的地方分析出的大致的意思是一个hashmap里面放了35个list,一下子占了当前可用heap size 的60%,可是如何知道,这个“嫌疑犯”藏在应用程序的哪个角落???如何找到包名,类名?

 

哪位分析过内存泄漏的分析一下?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值