Java 为什么我的关系表抛出OutOfMemoryError?
我正在使用iReport构建jaspersoft报告,并使用Fishbowl作为我的DBMS 我构建了我的表,在iReport中显示我的表是关系型的,但由于某些原因,它会抛出错误,并且不会运行。应该很简单。我正在输入zipcode、日期范围或州名称,并输出产品名称、完成的总数量、邮政编码和州缩写 当我将报告上传到Fishbowl时,它会运行,但最终会崩溃,并出现一个错误,表示内存不足。我不认为这是问题所在,但这是导致报告无法正确运行的原因之一。也许是我的错 这是我的SQL 错误是: java.lang.OutOfMemoryError:java堆空间 这里有一些截图也有帮助Java 为什么我的关系表抛出OutOfMemoryError?,java,sql,jasper-reports,out-of-memory,ireport,Java,Sql,Jasper Reports,Out Of Memory,Ireport,我正在使用iReport构建jaspersoft报告,并使用Fishbowl作为我的DBMS 我构建了我的表,在iReport中显示我的表是关系型的,但由于某些原因,它会抛出错误,并且不会运行。应该很简单。我正在输入zipcode、日期范围或州名称,并输出产品名称、完成的总数量、邮政编码和州缩写 当我将报告上传到Fishbowl时,它会运行,但最终会崩溃,并出现一个错误,表示内存不足。我不认为这是问题所在,但这是导致报告无法正确运行的原因之一。也许是我的错 这是我的SQL 错误是: java.l
当内存不足时,一般操作是: 与jasper report相关,默认情况下它会生成内存中的整个报告,可以使用更改,请参见中的示例 示例(来自使用文件虚拟化器的示例参考)
你确定这不是问题吗@AaronD如果这是个问题,我会做更多的工作测试,但我仍然怀疑这是个问题。我之所以这样说,是因为我传递的数据量非常小。我相信这是一个路径问题,但我无法理解:/@Ashton你检查过这个查询了吗?您得到了多少记录?@Ashton OutOfMemory内存不足,其他什么都没有,您可能在处理图像时得到,您需要检查您是否有泄漏,然后您只能增加内存,对于jasper report,请使用虚拟化程序。@Ashton您应该检查任何DB客户端的记录数量。你查过彼得的溶液了吗?我该怎么做?谢谢你一直以来的帮助!请看看我的新问题彼特!
SELECT
STATECONST."CODE" AS STATECONST_CODE,
ADDRESS."STATEID" AS ADDRESS_STATEID,
ADDRESS."ZIP" AS ADDRESS_ZIP,
SOITEM."PRODUCTNUM" AS SOITEM_PRODUCTNUM,
SOITEM."QTYFULFILLED" AS SOITEM_QTYFULFILLED
FROM
"STATECONST" STATECONST INNER JOIN "ADDRESS" ADDRESS ON STATECONST."ID" = ADDRESS."STATEID"
INNER JOIN "ACCOUNT" ACCOUNT ON ADDRESS."ACCOUNTID" = ACCOUNT."ID"
INNER JOIN "CUSTOMER" CUSTOMER ON ACCOUNT."ID" = CUSTOMER."ACCOUNTID"
INNER JOIN "SO" SO ON CUSTOMER."ID" = SO."CUSTOMERID"
INNER JOIN "SOITEM" SOITEM ON SO."ID" = SOITEM."SOID"
//Create the virtualizer after 2 pages filled save in tmp director
JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp");
//Preparing parameters
Map parameters = new HashMap();
parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);