【发布时间】:2015-07-06 14:44:31
【问题描述】:
我想在创建 PDF 时处理大量数据,我知道 Jasper Reports 中有一个名为 Virtualizers 的东西,但我不知道如何处理从 DAO 检索数据时触发的内存不足异常,不知道如何在Jasper报告数据源中实现分页。
【问题讨论】:
标签: java jasper-reports out-of-memory
我想在创建 PDF 时处理大量数据,我知道 Jasper Reports 中有一个名为 Virtualizers 的东西,但我不知道如何处理从 DAO 检索数据时触发的内存不足异常,不知道如何在Jasper报告数据源中实现分页。
【问题讨论】:
标签: java jasper-reports out-of-memory
要了解虚拟器,您可以阅读 Jasper Reports 终极指南的“大文件支持”部分(可在此处获取:http://community.jaspersoft.com/documentation)。
JRSwapFileVirtualizer 使用示例可在此处找到: how to select and configure a JasperReports virtualizer?.
如果您仍然内存不足,您可能需要使用 -Xmx JVM 选项增加内存限制(在服务器启动脚本或 eclipse 运行配置参数中 - 取决于您的环境),例如:
-Xmx1024M
【讨论】:
您需要 JRDatasource 和 Virtualizer 的自定义实现,您的 JRDatasource 实现应该以块的形式加载数据
如果您使用 JRResultSetDataSource,您也可以在 jasperreports.properties 中设置 net.sf.jasperreports.jdbc.fetch.size
【讨论】: