cancel
Showing results for 
Search instead for 
Did you mean: 

Not enough memory for operation

Former Member
0 Kudos

I currently have a ASP.NET web application (developed with VS.NET 2005, running on Windows Server 2003 SP2 with IIS 6.0), with functions that generate or view crystal reports (the server is installed with Crystal Report XI Release 2 SP2).

Recently we have found a problem that when crystal report is getting loaded frequently, then it will return one of these exceptions:

1) Not enough memory for operation.

2) Error in File C:\WINDOWS\TEMP\XXXXXXXXX {F00410E9-19B3-42A2-88B0-12D3DAD6B098}.rpt: The request could not be submitted for background processing.

3) Failed to open report.

After a series of investigation, I found that whenever I continously load up 110+ reports, then it will return the above exceptions. Once the above exception is returned, the only option I have is to reset the IIS!!

In my program code, I have already done report.Close() and report.Dispose() as well as GC.Collect() after finishing with the report. But it seems to me that crystal report still cannot release the memory consumption.

Can anyone advise on this? Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

former_member183750
Active Contributor
0 Kudos

Make sure you have SP 6:

https://smpdl.sap-ag.de/~sapidp/012002523100015859952009E/crxir2win_sp6.exe

MSM:

https://smpdl.sap-ag.de/~sapidp/012002523100000634042010E/crxir2sp6_net_mm.zip

MSI:

https://smpdl.sap-ag.de/~sapidp/012002523100000633302010E/crxir2sp6_net_si.zip

Have a look at [this|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/50a6f5e8-8164-2b10-7ca4-b5089df76b33] article and at [this|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f053713e-3e3d-2c10-2a81-f79259e54023] article.

Ludek

Follow us on Twitter http://twitter.com/SAPCRNetSup

Former Member
0 Kudos

We tried SP6, but the result is the same.

Some resources cannot be released and causes the error.

former_member183750
Active Contributor
0 Kudos

Well, you're the only lucky one I know of... Did you take a look at the articles I referenced?

Ludek

Former Member
0 Kudos

We have read the articles but it does not help to tackle the problem. Also we monitored the memory allocated for ASP .NET when error occurs and found lots of Crystal objects still in the memory:

CrystalDecisions.CrystalReports.Engine.DataDefinition

CrystalDecisions.CrystalReports.Engine.EngineObjectFactory

CrystalDecisions.CrystalReports.Engine.FormatEngine

CrystalDecisions.CrystalReports.Engine.PrintOptions

CrystalDecisions.CrystalReports.Engine.ReportDocument

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_OnClosedEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_OnClosingEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_OnPropertyChangedEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_OnPropertyChangingEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_OnSavedEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_OnSavingEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_PreClosingEventHandler

CrystalDecisions.ReportAppServer.ClientDoc._ISCDClientDocumentEvents_PreSavingEventHandler

CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass

CrystalDecisions.ReportAppServer.DataDefModel.DataDefinitionClass

CrystalDecisions.ReportAppServer.InternalEnterpriseLogonInfo

CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider

CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_SinkHelper

CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper

CrystalDecisions.ReportAppServer.ReportDefModel.PrintOptionsClass

CrystalDecisions.ReportAppServer.ReportID

CrystalDecisions.ReportSource.EromReportSource

CrystalDecisions.Shared.ExportOptions

CrystalDecisions.Shared.OSVersion

CrystalDecisions.Shared.ReportServiceVersionHeader

Please advise

former_member183750
Active Contributor
0 Kudos

I'm not sure what that tells us? Those objects will be in memory until the app is terminated or the pool is recycled. It may be that you are simply loading the box too much. Remember that the CR print engine will only handle 3 concurrent users. Subsequent requests are queued up and wait for an available license. It may be that you either need to move to a more scalable product such as the Crystal Reports Application Server, or consider webfarms. It may be a good idea to discuss this over the phone:

http://store.businessobjects.com/store/bobjamer/DisplayProductByTypePage&parentCategoryID=&categoryI...

Ludek

Answers (1)

Answers (1)

Former Member
0 Kudos

Further findings, can anyone advise whether I'm on the right track?

(1) When loading a report the web crystal report viewer, I found that even if I put the report document object in the session, if I do ReportDocument.Close() inside Page_Unload(), it will have problems when I click "zoom" or "next page" button in the viewer. Is that a normal behaviour?

(2) After the server has opened lot of report instances without Close() and Dispose(), when the number reaches a certain quantity (sometimes 80+ and sometimes over 100 depending on which report), it will throw out of memory exception whenever I try to load further reports. From there, the only thing I can do is to reset IIS. Is there a limit of how many report instances can be opened simulataneously? Can the limit be changed?

Since the above (1) behaviour, I have to make my program to close the report instance only when users logout from the application, thus I have the risk of the (2) exception above to happen. It's simply not possible to reset IIS everytime!! Is there any other ways that I can handle this problem?