Skip to Content
0
Former Member
Dec 14, 2009 at 04:54 PM

Performance issue in CrystalReportViewer.processHttpRequest(), Java SDK

83 Views

Hi,

We are using BOXI R2 sp3. We have a schedular which schedule the reports on daily basis and create the file on boxi server. These reports are shown to the user on web UI through jsp. Below are the steps I am following while showing the report on UI:

1) Create the IEnterpriseSession object for the user session and save it for future use.

2) Get a reference to the IReportSourceFactory using EnterpriseSession.GetService(u201CPSReportFactoryu201D).

3) Open the report source using IReportSourceFactory.openReportSource(<report id>, Locale) call.

4) Create the CrystalReportViewer object and set the report source in it. Below I am showing all the settings for crystal report viewer object.

CrystalReportViewer reportViewer = new CrystalReportViewer();

reportViewer.setEnterpriseLogon(es);

try {

reportViewer.setReportSource(reportSource);

} catch (ReportSDKExceptionBase e) {

logger.log(Level.SEVERE, "", e);

}

reportViewer.setDisplayPage(true);

reportViewer.setDisplayGroupTree(false);

reportViewer.setDisplayToolbar(true);

reportViewer.setOwnPage(true);

reportViewer.setHasViewList(true);

reportViewer.setHasLogo(false);

reportViewer.setHyperlinkTarget("_blank");

reportViewer.setHasRefreshButton(false);

reportViewer.setEnableDrillDown(true);

5) Call processHttpRequest() function on crystal report viewer object to display the report on UI.

These steps works fine in order to display the report on UI but the issue I am facing is related to time. This entire process is taking almost 1 minute to display 10,000 pages of reports which is not acceptable in our case. This time delay is happening for first time when user is viewing the report since later it is being served from cache but problem doesn't get resolved using cache. The cache size is limited and we have lot of these kind of reports so cache will get swapped often.

I tried debugging the above code and found that processHttpRequest() call itself takes 55 seconds. Could anybody tell me what this function is doing internally and why it is taking so much time.

My manager is thinking to get rid of crystal reports because of this issue and develop our own custom solution. Please provide any help if anybody knows about it.