为什么我的关系表会抛出OutOfMemoryError? [英] Why does my relational tables throw OutOfMemoryError?

查看:163
本文介绍了为什么我的关系表会抛出OutOfMemoryError?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我构建了我的表,并且在iReport中显示我的表是关系但是由于某种原因,它给我带来了错误,不会运行。它应该很简单。我正在接受邮政编码,日期范围或州名称,并输出productName,已实现的总数量,zip和州名缩写。



当我将报告上传到Fishbowl时运行,但最终崩溃,错误说它是内存不足。我不相信这是问题,但它是导致报告无法正常运行的结果。也许这是我的加入?



这是我的SQL



  SELECT 
STATECONST。CODEAS STATECONST_CODE,
ADDRESS。STATEIDAS ADDRESS_STATEID,
ADDRESS。ZIPAS ADDRESS_ZIP,
SOITEM。PRODUCTNUMAS SOITEM_PRODUCTNUM,
SOITEM。QTYFULFILLED作为SOITEM_QTYFULFILLED
来自
STATECONSTSTATECONST INNER加入地址地址STATECONST。ID= ADDRESS。STATEID
INNER JOINACCOUNT帐户开启ADDRESS。ACCOUNTID=帐户。ID
INNER加入客户客户账户。ID=客户。ACCOUNTID
内部加入SO因此客户。ID=所以。CUSTOMERID
INNER JOINSOITEMSOITEM ON SO。ID= SOITEM。SOID



错误是:




java.lang.OutOfMemoryError:Java堆空间


以下是一些有用的截图。





解决方案

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



Java堆空间内存不足



与生成的jasper报告相关默认内存中的整个报告,可以使用 JRVirtualizer ,请参阅示例参考



示例(来自使用文件虚拟器的示例引用)

  //在tmp director中保存2页后创建虚拟器
JRFileVirtualizer virtualizer = new JRFileVirtualizer(2,tmp);

//准备参数
Map parameters = new HashMap();
parameters.put(JRParameter.REPORT_VIRTUALIZER,virtualizer);


I am using iReport to build jaspersoft reports and I am using Fishbowl as my DBMS.

I built my tables and in iReport is shows that my tables are relational but for some reason it is throwing me errors and will not run. It should be very simple. I am taking in a zipcode, date range or State Name and outputing the productName, total quantity fulfilled, zip and state abbreviation.

When I do upload the report to Fishbowl it runs but eventually crashes with an error saying it's out of memory. I do not believe this is the issue but it is an effect of what ever is causing the report to not run correctly. Maybe it's my joins?

Here is my SQL

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"

The error is:

java.lang.OutOfMemoryError : Java heap space

Here are some screenshots to help as well.

解决方案

When you have out of memory the general action is:

Java heap space out of memory

Related to jasper report it generates by default the entire report in memory, this can be changed using JRVirtualizer, see example in sample reference

Example (from sample reference using file virtualizer)

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

这篇关于为什么我的关系表会抛出OutOfMemoryError?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆