This is a migrated thread and some comments may be shown as answers.

Crosstab Report OutOfMemoryException

3 Answers 120 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
bdk0172
Top achievements
Rank 1
bdk0172 asked on 12 Nov 2010, 04:43 PM

Is there a limit to the amount of information the a crosstab report can return?  We have a report that generally runs fine, but when a user tries to run the report for a long date range, we are getting an OutOfMemoryException thrown.  I've included the information from Event Viewer.

Event code: 3005

Event message: An unhandled exception has occurred.

Event time: 11/12/2010 10:32:14 AM

Event time (UTC): 11/12/2010 3:32:14 PM

Event ID: 33249fffceea432586db46a80ca2637d

Event sequence: 617

Event occurrence: 14

Event detail code: 0

 

Application information:

Application domain: /LM/W3SVC/194803890/Root-1-129339523234331482

Trust level: Full

Application Virtual Path: /

Application Path: XXXXXXXXXX
Machine name: XXXXXXXXXXX

 

Process information:

Process ID: 3456

Process name: w3wp.exe

Account name: NT AUTHORITY\NETWORK SERVICE

 

Exception information:

Exception type: OutOfMemoryException

Exception message: Exception of type 'System.OutOfMemoryException' was thrown.

 

Request information:

Request URL: XXXXXXXXXXXXXX
Request path: /Telerik.ReportViewer.axd

User host address: 67.139.94.50

User: ADMIN

Is authenticated: True

Authentication Type: Forms

Thread account name: NT AUTHORITY\NETWORK SERVICE

 

Thread information:

Thread ID: 7

Thread account name: NT AUTHORITY\NETWORK SERVICE

Is impersonating: False

Stack trace: at System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity)

at System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength)

at System.Text.StringBuilder.Append(Char value)

at System.IO.StringWriter.Write(Char value)

at System.Web.UI.HtmlTextWriter.RenderBeginTag(HtmlTextWriterTag tagKey)

at Telerik.Reporting.HtmlRendering.HtmlPage.RenderScripts(HtmlTextWriter writer, List`1 scripts)

at Telerik.Reporting.HtmlRendering.HtmlPage.Render(HtmlTextWriter primaryWriter, HtmlRenderingContext renderingContext)

at Telerik.Reporting.HtmlRendering.HtmlReport.Render(HtmlTextWriter writer)

at Telerik.Reporting.HtmlRendering.HtmlRenderingExtension.Telerik.Reporting.Processing.IRenderingExtension.Render(Report report, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback)

at Telerik.Reporting.Processing.ReportProcessor.Render(IList`1 reports, ExtensionInfo extensionInfo, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback)

at Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, IReportDocument reportDocument, Hashtable deviceInfo, Hashtable renderingContext, CreateStream createStreamCallback)

at Telerik.ReportViewer.WebForms.ServerReport.Render(HttpResponse response, String format, Int32 pageIndex)

at Telerik.ReportViewer.WebForms.ReportPageOperation.PerformOperation(NameValueCollection urlQuery, HttpContext context)

at Telerik.ReportViewer.WebForms.HttpHandler.ProcessRequest(HttpContext context)

at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

3 Answers, 1 is accepted

Sort by
0
Peter
Telerik team
answered on 17 Nov 2010, 05:11 PM
Hi bdk0172,

Indeed when very large reports are being rendered you may get OutOfMemoryException, but we are constantly working on improving the reporting engine and the rendering extensions. Can you share how many rows of data you're trying to display and how many report items you render?

It will be of a great help for us if we can take a look at your particular report. We will appreciate it if you can share with us your report and more information about the hardware and software configuration of the computer running the reporting engine. In contrast to Grid controls, where usually a small subset of data records are displayed, the reporting engines usually need all the data to layout the pages depending on the selected media. In this line of thoughts we would advise you to try to limit the report's data source. 

Sincerely yours,
Peter
the Telerik team
See What's New in Telerik Reporting in Q3 2010 on Wednesday, November 17, 11am Eastern Time: Register here>>
0
Ramesh
Top achievements
Rank 1
answered on 01 Apr 2011, 04:47 PM
Hi

Has anyone looked into the possiblity of paging in reports such that data is not fully loaded?  We have a report that brings more than 1 million records back, and it throws OutOfMemory Exception.  Any recommendations on how to handle this?

0
Andrew
Top achievements
Rank 1
answered on 01 Apr 2011, 05:01 PM
Shadi: That sounds like a heavy load for a report. Possibly consider refactoring your approach rather than rendering a report with that amount of data.  One option could be to categorize the data (if possible) programmatically and divide that up into multiple reports. Kind of like an html book, you could divide the reports as if they were chapters, reducing the current load. The only downside would be the inbetween rendering that must occur. 

On the other hand, I have wondered if there were plans for a paging system to help with memory loads.
Tags
General Discussions
Asked by
bdk0172
Top achievements
Rank 1
Answers by
Peter
Telerik team
Ramesh
Top achievements
Rank 1
Andrew
Top achievements
Rank 1
Share this question
or