OutOfMemory when rendering a crosstab report in WebViewer [message #720995] |
Wed, 31 August 2011 12:18  |
Eclipse User |
|
|
|
Hello,
I am desperately trying to configure the WebViewer demo web application (based on BIRT 3.7) to render reports that includes crosstabs.
My CrossTab Report is correctly and quickly rendering in the Designer but i got some OutOfMemory and other exceptions in the WebViewer. I did try to change the max memory allocated to the VM as well as the MaxPermGenSpace but still stuck!v 
I did try to render a basic report, .i.e with simple table and graph, and it works perfectly in designer AND in the WebViewer...
Is the WebViewer missing some dependencies preventing it from rendering properly crosstabs? do crosstabs need a very specific amount of RAM?
If anybody has any experience wit crosstabs with the demo WebViewer, it would be warmly welcome!
Regards,
Jean-Baptiste
PS: Here are the stack strace:
When running the report (JDK 1.6_26, Ubuntu 10, Tomcat 6), i got in catalina.out :
org.eclipse.birt.data.engine.core.DataException: A report document error occurred when getting the save stream.
The archive file has been closed.
at org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:359)
at org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.saveNamingRelation(DataEngineSession.java:415)
at org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.dataEngineShutdown(DataEngineSession.java:395)
at org.eclipse.birt.data.engine.impl.DataEngineImpl.shutdown(DataEngineImpl.java:565)
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.shutdown(DataRequestSessionImpl.java:509)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.shutdown(AbstractDataEngine.java:348)
at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.shutdown(DataGenerationEngine.java:151)
at org.eclipse.birt.report.engine.executor.ExecutionContext.close(ExecutionContext.java:480)
at org.eclipse.birt.report.engine.api.impl.EngineTask.close(EngineTask.java:1540)
at org.eclipse.birt.report.engine.api.impl.RunTask.close(RunTask.java:309)
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1337)
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:637)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
at org.apache.jsp.viewreport_jsp._jspService(viewreport_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: The archive file has been closed.
at org.eclipse.birt.core.archive.compound.ArchiveFile.createEntry(ArchiveFile.java:423)
at org.eclipse.birt.core.archive.compound.ArchiveWriter.openRandomAccessStream(ArchiveWriter.java:75)
at org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:350)
... 69 more
And in BIRT logs i got:
Aug 31, 2011 2:51:18 AM org.eclipse.birt.report.engine.api.impl.RunTask doRun
SEVERE: There is insufficient memory to execute this report.
|
|
|
Re: OutOfMemory when rendering a crosstab report in WebViewer [message #721116 is a reply to message #720995] |
Wed, 31 August 2011 18:31   |
Eclipse User |
|
|
|
Can you try the attached report and post the results?
Jason
On 8/31/2011 12:18 PM, jeanbaptiste.guillois wrote:
> Hello,
>
> I am desperately trying to configure the WebViewer demo web application
> (based on BIRT 3.7) to render reports that includes crosstabs.
>
> My CrossTab Report is correctly and quickly rendering in the Designer
> but i got some OutOfMemory and other exceptions in the WebViewer. I did
> try to change the max memory allocated to the VM as well as the
> MaxPermGenSpace but still stuck!v :(
>
> I did try to render a basic report, .i.e with simple table and graph,
> and it works perfectly in designer AND in the WebViewer...
>
> Is the WebViewer missing some dependencies preventing it from rendering
> properly crosstabs? do crosstabs need a very specific amount of RAM?
>
> If anybody has any experience wit crosstabs with the demo WebViewer, it
> would be warmly welcome!
>
> Regards,
>
> Jean-Baptiste
>
> PS: Here are the stack strace:
> When running the report (JDK 1.6_26, Ubuntu 10, Tomcat 6), i got in
> catalina.out :
> org.eclipse.birt.data.engine.core.DataException: A report document error
> occurred when getting the save stream.
> The archive file has been closed.
> at
> org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:359)
>
> at
> org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.saveNamingRelation(DataEngineSession.java:415)
>
> at
> org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.dataEngineShutdown(DataEngineSession.java:395)
>
> at
> org.eclipse.birt.data.engine.impl.DataEngineImpl.shutdown(DataEngineImpl.java:565)
>
> at
> org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.shutdown(DataRequestSessionImpl.java:509)
>
> at
> org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.shutdown(AbstractDataEngine.java:348)
>
> at
> org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.shutdown(DataGenerationEngine.java:151)
>
> at
> org.eclipse.birt.report.engine.executor.ExecutionContext.close(ExecutionContext.java:480)
>
> at
> org.eclipse.birt.report.engine.api.impl.EngineTask.close(EngineTask.java:1540)
>
> at org.eclipse.birt.report.engine.api.impl.RunTask.close(RunTask.java:309)
> at
> org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1337)
>
> 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:637)
> at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>
> at
> org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
>
> at
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
> at org.apache.jsp.viewreport_jsp._jspService(viewreport_jsp.java:110)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
>
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.io.IOException: The archive file has been closed.
> at
> org.eclipse.birt.core.archive.compound.ArchiveFile.createEntry(ArchiveFile.java:423)
>
> at
> org.eclipse.birt.core.archive.compound.ArchiveWriter.openRandomAccessStream(ArchiveWriter.java:75)
>
> at
> org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:350)
>
> ... 69 more
>
> And in BIRT logs i got:
> Aug 31, 2011 2:51:18 AM org.eclipse.birt.report.engine.api.impl.RunTask
> doRun
> SEVERE: There is insufficient memory to execute this report.
>
>
>
>
|
|
|
|
|
|
|
|
|
|
Re: OutOfMemory when rendering a crosstab report in WebViewer [message #722951 is a reply to message #722797] |
Wed, 07 September 2011 05:46  |
Eclipse User |
|
|
|
Hello Jason,
I successfully ran your report by "cleaning up" the additional dependencies i have added in the RportViewer web app.
I also successfully ran a very basic crosstab report.
I found that my crosstab report use Javascript expressions for computed columns in my datasets and there are some reported bugs in BIRT about this. Javascript expressions might generate memory leaks.
I will try with the latest BIRT build and check if this is better.
For sure, the problem is now on my side (i.e in my crosstab report).
Thanks again for your help,
Regards,
|
|
|
Powered by
FUDForum. Page generated in 0.11241 seconds