Skip to Content
0
Former Member
Jan 23, 2013 at 11:04 AM

Load report failed -

194 Views

Hello,

We are coding a VB.net application used in 1500 places around the world.

Sometimes (not always), when the user click on print, the following error raises: "Load report failed"

The stack trace is :

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

à CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)

à CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)

and the inner exception: "The maximum report processing jobs limit configured by your system administrator has been reached".

I did some researches on the web, and i found that i have to change my PrintJobLimit registry which is 75 by default.

In order to reproduce the Exception raised in production, I coded a small application which loads 100 reports in parallel (in different threads).

I reproduce the Exception.

In my reg editor, i have 2 PrintJobLimit registries:

- 1 in inprocServer

- 1 in Server

I don't know which one to choose.What is the difference between this two registry?

To continue my tests, i change both.

If i try to set the printJobLimit to -1 => I don't have this exception.

If i try to increase the printJobLimit to 100 => I always have the same Exception but for fewer reports.

If i try to increase the printJobLimit to 102 => I don't have this exception.

=> So the printJobLimit may be would allow to so solve our problem but it seems that 2 processes in addition to load processes are included in this job limit.

Do you know what are these 2 processes?

In my computer, on which i launch the small test program, when i set the printJobLimit registry to 102 or -1, i have other exceptions:

Exception 2:

- Exception message : "Load report failed"

Inner Exception message: "Failed to open report"

Exception Stack trace :

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

à CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)

à CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)

Inner Exception Stack trace:

à CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

Exception3:

- Exception message : "Load report failed"

Inner Exception message : "Not enough memory for operation."

Exception Stack trace :

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

à CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)

à CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)

Inner Exception Stack trace:

à CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)

à CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

I think i will have less memory problem on production server than on my PC but i have two questions:

- Could i have these exceptions on production server if i increase the printJobLimit registry?

- What are the printJobLimit increase impacts on memory?

For this small test, I launch several thread from one application. It is not exctly the same way as in production.

In production all users around the world have an access to the application through citrix to the server, we think that the Exception raises when several users want to access to one report at the same time, this is why the exception is not always raised.

We verified Rights on report files, on WINDOWS/Temp, and temp files => everything seems to be ok.

Do you have other solutions?

What do you think about our issue?

Configurations:

Developement server:

Server : windows server 2003 R2

Crystal report version:

- Crystal report 2008

- Installed in two places:

- "C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86" for native DLLs, its expected version is 12.0.0.840 for

crystal report DLLs (some other non crystal report DLLs are present in this folder with an other version)

- "C:\WINDOWS\assembly" for .NET assemblies, assemblies are prefixed by "CrystalDecisions" and their expected versions are 12.0.2000.0

and 12.0.1100.0

Production server:

Exactly the same configuration as the developmenet server.

Thank you for your answer

Best regards