2013-07-10 73 views
0

我正在使用BIRT在已知能夠處理相對較大的數據集的服務器上運行報告。爲什麼內存限制將達到給定的這個報告的性質BIRT運行時錯誤 - java.lang.OutOfMemoryError:超出GC開銷限制

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 

我不知道:但是,這份報告將無法正常運行,並引發以下錯誤。它返回大約20行,對數據進行有限的預處理。

完整的錯誤是下面:

org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report. 
Hide Exception Stack Trace 
Stack Trace: 
org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report. 
    at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2256) 
    at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:270) 
    at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:86) 
    at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1325) 
    at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158) 
    at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81) 
    at org.eclipse.birt.report.service.actionhandler.BirtChangeParameterActionHandler.runReport(BirtChangeParameterActionHandler.java:58) 
    at org.eclipse.birt.report.service.actionhandler.AbstractChangeParameterActionHandler.__execute(AbstractChangeParameterActionHandler.java:53) 
    at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) 
    at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) 
    at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) 
    at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleChangeParameter(BirtDocumentProcessor.java:100) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) 
    at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) 
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) 
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) 
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) 
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) 
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) 
    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) 
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 
+0

我遇到了同樣的問題。當我以Excel格式導出數據時也會出現這種情況。任何新聞?謝謝。 –

+0

我從來沒有解決它,也不知道我用作解決方法。太久以前。抱歉。 – zgall1

+0

非常奇怪:報告成功運行在7.5GB RAM的盒子中,但在16GB RAM的盒子中失敗。有沒有人找到解決方案 – DWGuru

回答

0

我這最後 setenv.bat或setenv.sh解決只有當您使用啓動腳本啓動Tomcat運行。如果您將tomcat設置爲服務,setenv將不會被調用。

你安裝tomcat服務 執行tomcat8w.exe後(我用的tomcat版本8,使用與您的版本可執行)

你得到一個窗口中,單擊設置初始Java選項卡 上內存池和最大內存池。您的birt報告開始正常工作

理解是您在安裝tomcat作爲服務時使用默認服務名稱。 如果你提供了一個不同的名字,然後用

tomcat8w // // MS

這將允許您配置JVM爲Tomcat。

檢查Apache Howto鏈接以獲取更多信息

相關問題