Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的关系表抛出OutOfMemoryError?_Java_Sql_Jasper Reports_Out Of Memory_Ireport - Fatal编程技术网

Java 为什么我的关系表抛出OutOfMemoryError?

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

我正在使用iReport构建jaspersoft报告,并使用Fishbowl作为我的DBMS

我构建了我的表,在iReport中显示我的表是关系型的,但由于某些原因,它会抛出错误,并且不会运行。应该很简单。我正在输入zipcode、日期范围或州名称,并输出产品名称、完成的总数量、邮政编码和州缩写

当我将报告上传到Fishbowl时,它会运行,但最终会崩溃,并出现一个错误,表示内存不足。我不认为这是问题所在,但这是导致报告无法正确运行的原因之一。也许是我的错

这是我的SQL 错误是: java.lang.OutOfMemoryError:java堆空间

这里有一些截图也有帮助


当内存不足时,一般操作是:

与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);