2013-07-10 1 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을 서비스로 설정하면 setenv는 호출되지 않습니다.

는 설정 이 tomcat8w.exe을 실행 톰캣 서비스 후에는 창을 얻을

(I 바람둥이 버전 8을 사용하고, 버전에 해당하는 실행 파일을 사용) 초기 설정 Java 탭 클릭 메모리 풀 및 최대 메모리 풀. 귀하의 허망한 보고서가 제대로 작동하기 시작합니다.

서비스로 tomcat을 설치할 때 기본 서비스 이름을 사용해야한다는 것을 이해해야합니다. 다른 이름을 제공 한 경우 다음

를 사용 tomcat8w // MS //

이것은 당신이 바람둥이의 JVM을 구성 할 수 있습니다.

자세한 내용은 Apache Howto 링크를 확인하십시오.

관련 문제