Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Report returns too much data
ttessitore
Several of our reports can be run for user specified time periods. If the report returns a lot of data, we will get the following error:
java.lang.OutOfMemoryError cannot be cast to java.lang.Exception
I realize that the reports are returning thousands of pages, but our users want the ability to create these huge reports. I have seen the entries that advise us to go into the eclipse.ini file and increase the memory allocation. I have done this to no avail. What is the best way to solve this? or is this simply a limitation of BIRT? Any help would be appreciated.
Find more posts tagged with
Comments
mwilliams
That is quite a lot of pages. If you've increased the memory allocation and haven't gotten to a point where you can show your largest report, I would guess you're maybe hitting the limit of BIRT on your system. That could be wrong though. You could set up a max number of returned rows from your dataSet and let your user know when their parameters have exceeded the limit of what you can process and return to them. If they didn't hit the limit, you wouldn't tell them you'd be limiting their data. Not sure if this is an option for you.
ttessitore
Thanks for the info. I set the maximum number of rows returned by the result set to 50000. The reports is limited to the 50000 rows, but the user doesn't know that it is not a full report. Is there a way to inform the user that the report does not contain all of the data?
mwilliams
You could check the amount of rows in your dataSet by creating a computed column with the COUNT aggregation. If it is 50000, then you maxed out your dataSet limit. You can then include a text element at the top or bottom or both in your report tied to the dataSet and in the visibility expression, you can hide the element if the value of the count field is less than 50000 or show it if it is equal to 50000.
ttessitore
That worked great. I was able to display an informational message when the result set exceeded 50000 rows. Thanks for the help.
mwilliams
You're very welcome. Glad to help!