Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Could Size Of .rptdocument File Cause Render Failure?
gsgsoln
<p>Could the size of a rptdocument file cause failure when trying to render?</p><p> </p><p>Running BIRT 252, using genreport command line, on AIX. Using a perl script that loops through a set of parameters and calls genreport (run, create rptdocument, then render) for each set of params to create PDF and CSV output files. Of the 7 set of parameters, 6 are created successfully. The 7th set fail on the render with:</p><div> </div><div style="margin-left:40px;">SEVERE: Failed to close the indexes</div><div style="margin-left:40px;">Throwable occurred: java.io.IOException: unexpected node type:0 for node 1508</div><div style="margin-left:40px;">at org.eclipse.birt.core.btree.BTree.loadBTreeNode(BTree.java:478)</div><div style="margin-left:40px;">at org.eclipse.birt.core.btree.IndexNode.insert(IndexNode.java:180)</div><div style="margin-left:40px;">at org.eclipse.birt.core.btree.BTree.insertEntry(BTree.java:227)</div><div style="margin-left:40px;">at org.eclipse.birt.core.btree.BTree.insert(BTree.java:361)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.internal.index.v2.IndexWriter.flushBtree(IndexWriter.java:153)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.internal.index.v2.IndexWriter.close(IndexWriter.java:128)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.internal.index.v2.DocumentIndexWriterV2.close(DocumentIndexWriterV2.java:44)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.internal.index.DocumentIndexWriter.close(DocumentIndexWriter.java:34)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.close(ReportDocumentWriter.java:112)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.api.impl.RunTask.closeReportDocument(RunTask.java:179)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:281)</div><div style="margin-left:40px;">at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)</div><div style="margin-left:40px;">at com.cgi.momentum.reports.birt.ReportRunner.runReport(ReportRunner.java:258)</div><div style="margin-left:40px;">at com.cgi.momentum.reports.birt.ReportRunner.execute(ReportRunner.java:160)</div><div style="margin-left:40px;">at com.cgi.momentum.reports.birt.ReportRunner.main(ReportRunner.java:127)</div><p> </p><div> </div><p>Running same process on Windows machine, all executions are successful, no errors.</p><p> </p><p>For the 7th set of parameters, the resulting .rptdocument file is just over 1 GB in size. Taking the .rptdocument file from the AIX server and using it to render on Windows machine results in this error: </p><p> </p><div style="margin-left:40px;">SEVERE: An error happened while running the report. Cause:</div><div style="margin-left:40px;">org.eclipse.birt.report.engine.api.EngineException</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.ReportPageExecutor.<init>(ReportPageExecutor.java:50)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.api.impl.RenderTask$PageRangeRender.render(RenderTask.java:480)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:221)</div><div style="margin-left:40px;"> at com.cgi.momentum.reports.birt.ReportRunner.renderReport(ReportRunner.java:309)</div><div style="margin-left:40px;"> at com.cgi.momentum.reports.birt.ReportRunner.execute(ReportRunner.java:164)</div><div style="margin-left:40px;"> at com.cgi.momentum.reports.birt.ReportRunner.main(ReportRunner.java:127)</div><div style="margin-left:40px;">Caused by: java.io.EOFException</div><div style="margin-left:40px;"> at java.io.DataInputStream.readInt(Unknown Source)</div><div style="margin-left:40px;"> at org.eclipse.birt.core.util.IOUtil.readUTF(IOUtil.java:1124)</div><div style="margin-left:40px;"> at org.eclipse.birt.core.util.IOUtil.readString(IOUtil.java:795)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.v4.FixedLayoutPageHintReader.readPageVariable(FixedLayoutPageHintReader.java:286)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.v4.FixedLayoutPageHintReader.readPageVariables(FixedLayoutPageHintReader.java:278)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.v4.FixedLayoutPageHintReader.getPageVariables(FixedLayoutPageHintReader.java:133)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.PageHintReader.getPageVariables(PageHintReader.java:78)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.v4.AbstractReportExecutor.<init>(AbstractReportExecutor.java:124)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.v4.ReportPageExecutorV4.<init>(ReportPageExecutorV4.java:42)</div><div style="margin-left:40px;"> at org.eclipse.birt.report.engine.internal.document.ReportPageExecutor.<init>(ReportPageExecutor.java:41)</div><div style="margin-left:40px;"> ... 5 more</div><div> </div><div>Obviously there's a lot of data that's being rendered and in our setup, things that typically have issues on the Windows machine will work on the AIX server better. This is the first time we're seeing a failure on the AIX side and success on the Windows side.</div><div> </div><div>To rule out a setup issue, we have attempted running this on two completely different AIX environments, both resulting in same failure.</div><div> </div><div>With no other clue as to what might be causing this issue, I'm wondering if the size of the .rptdocument file could be the culprit. Does anyone have any thoughts? Any and all assistance will be greatly appreciated. Thanks in advance.</div>
Find more posts tagged with
Comments
mwilliams
<p>If you only run it for six of the parameters, does it complete? Or will the sixth one fail? The error come from the ReportDocumentWriter class. Here's the function:</p><p> </p><p></p><pre class="_prettyXprint _linenums:0">public void close( ) { if ( indexWriter != null ) { try { indexWriter.close( ); } catch ( IOException ex ) { logger.log( Level.SEVERE, "Failed to close the indexes", ex ); } indexWriter = null; } try { checkpoint = CHECKPOINT_END; saveCoreStreams( ); archive.setStreamSorter( new ReportDocumentStreamSorter( ) ); archive.finish( ); } catch ( Exception e ) { logger.log( Level.SEVERE, "Failed in close the archive", e ); } }</pre><p> </p><p>Do you need the separate run and render tasks? Could you use the runAndRender, which would skip the .rptdocument?</p>
gsgsoln
<p>Thanks for the reply Michael. I had long looked at the code but it wasn't very helpful in pointing me to the issue. Also, due to our setup we were not able to use the runAndRender so I had to use the run and then render method.</p><p> </p><p>However, I was able to resolve the issue. Turns out that the problem was on the Unix server and had nothing to do with BIRT. The filesize ulimit on our Unix box was set at 1 GB so it was preventing the rptdocument from being larger than 1 GB. After working with server admins to change the fsize ulimit to unlimited, report ran and completed successfully.</p><p> </p><p>For those interested in the topic, you can look at <a data-ipb='nomediaparse' href='
http://www.unix.com/aix/57504-increase-filesize-ulimit-user.html'>http://www.unix.com/aix/57504-increase-filesize-ulimit-user.html</a>.</p><p> </p><p>Thanks
again for the feedback.</p>
mwilliams
<p>Great! Glad you found the solution to the issue! Let us know whenever you have questions!
</p>