这是我在eclipse启动的weblogic服务器中运行birt报告时遇到的错误。它在开发环境(本地)中工作正常。当我在测试服务器中部署时,我收到此错误。请任何人帮我解决这个问题。请在下面找到我发布的错误详情:
## 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:2371)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:277)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:86)
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1325)##
## Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.reflect.Array.newArray(Native Method)##
答案 0 :(得分:4)
这个bug似乎存在于BIRT 4.2.2之后,并且仍然存在于BIRT 4.4.2中。
我通过在DataSet的高级属性选项卡中将Row Fetch Size
设置为10
来成功修复了此行为。
DataSet详细信息对话框中的行获取大小似乎被忽略,事实并且正在使用默认值10000
,这会将更小的查询转换为内存提升者。
该错误似乎特别影响Oracle JDBC驱动程序,特别是在提取大量更大的VARCHAR列时,即使只有几行。
答案 1 :(得分:0)
当您尝试将更多数据添加到内存中的堆空间区域时,将触发“java.lang.OutOfMemoryError:Java堆空间”错误,但此数据的大小大于JVM在Java中可容纳的大小堆空间。
您可以通过在JVM启动参数中指定(或增加,如果存在)以下内容来增加允许Java进程使用的堆大小:
-Xmx1024m