Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 190928

Summary: OutofMemory occurs when preview the attached report[1102]
Product: z_Archived Reporter: Tianli Zhang <tzhang>
Component: BIRTAssignee: Jerry Cheng <cyfgod>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: cyfgod
Version: 2.2.0Keywords: plan
Target Milestone: 2.2.1   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
attached design file none

Description Tianli Zhang CLA 2007-06-04 21:39:05 EDT
Description:
OutofMemory occurs when preview the attached report and my eclipse config is
-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=128m

Build number: 
2.2.0.v20070605-0630

Steps to reproduce:
1, Open attached report
2, Prevew

Expected result:
Preview successfully

Actual result:
Java.lang.OutofMemoryError warning occurs
Comment 1 Tianli Zhang CLA 2007-06-04 21:42:11 EDT
Created attachment 70060 [details]
attached design file
Comment 2 Zhiqiang Qian CLA 2007-06-05 00:06:39 EDT
After investigation, this is caused by a too big data feed for crosstab, 2000+ rows and 120+ columns. So the resulting html output is very big, about 140+M. This caused the memory issue when viewer try to load it in browser.

Note if we simply use report engine api to run and render this report, it just takes 20M memory all around.

So the suggestion is Dte provide a settting to limit the cube query result size during design time, like currently we do for table. This is a design-time enhancement. In production environment, we normally dont' face this issue. either we will use paged ouput, or we will have strong enough hardware resource.

P.S. optimize the engine html output can dramatically reduce the html file size, I've filed a bug 190942 to report engine.
Comment 3 xiaofeng zhang CLA 2007-08-01 01:47:04 EDT
Dte will provide a settting to limit the result size of edge cursor.
Comment 4 Lin Zhu CLA 2007-08-14 03:37:25 EDT
After discussion we decide to add two appContext settings to limit the number of row/column xtab. User can limit the size of xtab query result by pass appContext settings to Data Engine.

Meanwhile, it is not necessary for DtE to return the consistent execution result data for user. Instead, we should throw exceptions to let user know that they are dealing with trunked data.

The appContext setting only apply in direct presentation mode.
Comment 5 Mingxia Wu CLA 2007-08-16 05:38:18 EDT
Dte has added one setting key in DataEngine.CUBECURSOR_FETCH_LIMIT_ON_LEVEL, the value of this properties should be zero or positive integer. GUI should add this setting in crosstab preference page.
Comment 6 Zhiqiang Qian CLA 2007-08-16 06:53:26 EDT
Added preference page, reassign to viewer to apply the setting.
Comment 7 Jerry Cheng CLA 2007-08-17 03:43:20 EDT
Add a new option to limit cube fetching levels.
User can append __maxlevels in URL to set this setting and also can define it in web.xml.
Comment 8 Tianli Zhang CLA 2007-09-16 22:55:24 EDT
closed!

Regards!