Report.load hangs...

Post Author: daryl
CA Forum: .NET
I am using vs2008 and crystal 10.2.xxx (which comes with vs2008)
I have a windows service which attempts to load a crystal report.
However on the load event, the program hangs (forever).
The report is a report that was created using vs2008.
one of the issues I have read about is that it may be trying to log into a database, which I don't want it to do.
I just want to load the report so I can get the parameter values.
assign a datasource then export the report.
Is this a problem with cr10.2?  This used to work with vs2003

Post Author: daryl
CA Forum: .NET
More information
When running in debug mode, the Report.load still hangs. but If I run the code in the immediate window, then
I get the following error.
CrystalDecisions.Shared.CrystalReportsException was unhandled  Message="Load report failed."  Source="CrystalDecisions.CrystalReports.Engine"  StackTrace:       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)  InnerException: Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException       Message="An exception 'Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException' occurred"       Source="Microsoft.VisualStudio.Debugger.Runtime"       StackTrace:            at Microsoft.VisualStudio.Debugger.Runtime.Main.ThrowCrossThreadMessageException(String formatString)            at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)            at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)            at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
An exception 'Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException' occurred
Stack Trace:"   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()\r\n   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)\r\n   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)"
Is there anyone at BO looking at these posts?

Similar Messages

  • Report server hanging

    Hi
    Running Reports Server 9ias on win2000 box
    Users are reporting that when running reports, application hangs
    ( 2/3 times a day in worst case )
    Looking at windows event log, find out that timeouts are occurring
    Event Type: Error
    Event Source: Service Control Manager
    Event Category: None
    Event ID: 7011
    Date: 14/02/2006
    Time: 12:08:51
    User: N/A
    Computer: MOLLY2
    Description:
    Timeout (30000 milliseconds) waiting for a transaction response from the OracleReportServer-rep_molly service.
    How do I determine what is causing the timeout ?
    Can I increase the time out while trying to find the cause
    Awaiting more info from Usera via their IT dept
    Ian

    If you look at showjobs for that Reports Server, what is the error from Oracle on the failing jobs? The URL will be like: http://server:port/reports/rwservlet/showjobs?server=<SERVERNAME>
    I'm not quite sure how things are reported from Oracle into the OS Event Log and whether more important things are missing. Get that info & post if this doesn't help.
    Also, I'd recommend that you push up your engines. Look at your CPU load, but if the reports aren't overly complex, changing maxEngine to 4 and minEngine to 2 and initEngine to two. This might help things in general and prevent one report from hanging up lots of other users. If the system is a little bogged down, change the maxEngine to at least 2. A fair rule of thumb is 2 - 4 engines per processor, but if you're not constantly running them on a server, even a large one, I woudn't go more than 4 personally.
    Here is the default entry for a Reports Server from a Windows System. It is in the <REPORTS SERVER NAME>.conf file in ORACLE_HOME/reports/conf
    <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="90000">

  • Report load is slow after changing database servers

    Here is the problem:
    Crystal Reports saves the design time database connection info in the rpt.  When our application tries to run a report against a production database, the rpt takes a long time (60 sec.) to load.  After it has loaded we can change the database logon (in our code) and the report runs successfully.
    It seems like Crystal is trying to connect to the development DB server (but it cannot see it from the production environment).  If we edit the rpt and save the production database connection info in it, the report loads in less than a second. 
    We are an ISV and our application is used at over 2000 sights so it is not practical to edit each rpt at each location.  We have 737 reports and 908 subreports in our application!
    We are currently using the Visual Studio 2008 version of Crystal Reports.  This did not seem to be a problem with VB6/CR8.5.
    Is there some way to tell Crystal not to try connecting to the DB during the report.load?

    I had the same issue with Crystal Report XI R2. The issue seems to be when loading the *.rpt file. The Crystal Report API reads the *.rpt file and read all the relevant info from the report file and store it in the ReportDocument object and generates the object tree. It seem to do a database lookup for every database or table it finds in the main report and all the sub-reports and also for every SQL Expression you have in each report. Since the development database is different to the runtime database I think it waits until it times out. So more sub-reports you have the longer time it takes to load.
    You can resolve this issue by adding the design-time database name mapped to a runtime database ip. For this you need to update the host file in C:\Windows\System32\drivers\etc folder with the relevant info. By adding this there will be no name lookup.
    For example, if the report have the service ID as RACE, add the name RACE and the runtime database ip address in to the host file. Then there will be no lookup. Earlier it took 2 minutes to load the report but then the entry it took only 1 second.
    e.g.
    10.0.0.1     RACE
    Also have a look at http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/cb6d6fc9-9d57-486c-972e-33b03d4a5759
    Hope this helps.

  • Crystal Reports 2008 - Report Load error - Memory Leak Error?

    Hello
    <br>
    We have a problem with Crystal Reports 2008 with .NET 2.0.
    <br>
    CrystalDecisions.CrystalReports.Engine, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
    <br>
    The problem is that during high amount of report producing, errors in eventlog pops up and the production of reports using <br>
    Crystal Reports stops.
    <br>
    Below are examples of the three most common event logs.
    <br>
    We have tried to implement a cleanup method both as a destructor (with a global ReportDocument rdoc variable) and using direct call to cleanUpDoc() method when finished with loading doc:
    <br>
    ~IOServerClass()
    <br>
    <br>
                cleanupDoc();
    <br>
    <br>
    <br>
            private void cleanupDoc()
    <br>
    <br>
                try
    <br>
    <br>
                    if (rdoc != null)
    <br>
    <br>
                        rdoc.Close();
    <br>
                        rdoc.Dispose();
    <br>
                        rdoc = null;
    <br>
    <br>
                    this.CleanGlobalEvents();
    <br>
                    System.GC.Collect();
    <br>
    <br>
    <br>
    <br>
    The doc is loading using the "normal" method (in-process).
    <br>
    <br>
    try
    <br>
    <br>
                        rdoc = new ReportDocument();
    <br>
                        rdoc.Load(fullpathandreport); 
    <br>
    <br>
                   catch (Exception ex)
    <br>
    <br>
                    cleanupDoc();
    <br>
    <br>
    ...process doc....
    <br>
    cleanupDoc();
    <br>
    <br>
    Furthermore we have tried during Scalable tests of the system - but cannot produce the below errors ourselves. Only the customer can.
    <br>
    Please help with solving this problem.
    Is the above advisable to do?
    Should the document be loaded in another way?
    Is it a memory leak?
    <br>
    Regards
    Kristian
    <br>
    <br>
    event logs:
    <br>
    <br>
    #1
    <br>
    <br>
    Event Type:     Error
    Event Category:     None
    Event ID:     1102
    Date:          12-02-2010
    Time:          10:22:05
    User:          N/A
    Description:
    IO_ServerClass.IO_ServerPrepareReportBeforeExecute() Report load Error:
    Loading reportfile=C:\Inetpub\wwwroot\xxx\Reports\321.rpt
    Source=CrystalDecisions.CrystalReports.Engine
    Message=Load report failed.
    Stacktrace=   at
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename,
    OpenReportMethod openMethod, Int16 parentJob)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
       at xxx.IOServer2.IOServerClass.IO_ServerPrepareReportBeforeExecute(String
    WebRootRelPathNameRepName, String init, Hashtable ParmsVals, Int32 JobId, Int32 JobStep,
    Page webpage) in C:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\xxx.IOServer2\IOServerClassClassic.cs:line 290
    InnerSource:Analysis Server
    InnerMes:
    Error in File 321 {19463E3B-D404-45EB-88AE-5722A7FF9E90}.rpt:
    The request could not be submitted for background processing.
    InnerStack:
       at
    CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object&
    DocumentPath, Int32 Options)
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object&
    DocumentPath, Int32 Options)
       at
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
    <br>
    <br>
    #2
    <br>
    <br>
    IO_ServerClass.IO_ServerPrepareReportBeforeExecute() Report load Error:
    Loading reportfile=C:\Inetpub\wwwroot\xxx\Reports\321.rpt
    Source=CrystalDecisions.CrystalReports.Engine
    Message=Creating an instance of the COM
    component with CLSID {D7F5D7C3-B06C-4CAC-BC47-A06E66D2EE9B} from the IClassFactory failed
    due to the following error: 8007000e.
    Stacktrace=   at
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()
       at Kimik.IOServer2.IOServerClass.IO_ServerPrepareReportBeforeExecute(String
    WebRootRelPathNameRepName, String init, Hashtable ParmsVals, Int32 JobId, Int32 JobStep, Page webpage) in C:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\xxx.IOServer2\IOServerClassClassic.cs:line 289
    <br>
    #3
    <br>
    <br>
    IO_ServerClass.IO_ServerPrepareReportBeforeExecute() Report load Error:
    Loading reportfile=C:\Inetpub\wwwroot\xxx\reports\340.rpt
    Source=CrystalDecisions.CrystalReports.Engine
    Message=Load report failed.
    Stacktrace=   at
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename,
    OpenReportMethod openMethod, Int16 parentJob)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
       at Kimik.IOServer2.IOServerClass.IO_ServerPrepareReportBeforeExecute(String
    WebRootRelPathNameRepName, String init, Hashtable ParmsVals, Int32 JobId, Int32 JobStep,
    Page webpage) in C:\Documents and Settings\xxx\My Documents\Visual Studio 2008
    \Projects\xxx.IOServer2\IOServerClassClassic.cs:line 290
    InnerSource:CrystalDecisions.ReportAppServer.ClientDoc
    InnerMes:
    Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
    InnerStack:
    at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object&
    DocumentPath, Int32 Options)
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object&
    DocumentPath, Int32 Options)
       at
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
    Edited by: kristians on Feb 16, 2010 2:57 PM

    Hi;
    First, ensure you have the latest service pack / hot fix for your version of Crystal Reports, and that the client has the same updates as well. Fix Pack 2.4 is the current latest, and can be downloaded from our downloads section.
    One of the errors is the Background Processing error, so have a look at the following article:
    http://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/50a6f5e8-8164-2b10-7ca4-b5089df76b33&overridelayout=true
    Regards,
    Jonathan
    Follow us on Twitter u2013 http://twitter.com/SAPCRNetSup

  • Better user experience for slow reports (loading in background, progressbar

    Hi
    In our application, some reports take a long time till they are displayed. Therefore it would be nice, if i could provide the user with some feedback (example: progressbar). Is it possible to have this? Upon print, when a pdf file is being constructed (in web) we already have such functionality in place, is it possible to have it generally?
    Mayb,e it would also be possible to have the report load the first page quickly, so the user has already something to look at, and load all the other needed data in a background thread. (i dont think it is possible, however, somebody may have an idea)
    Does anybody have an idea how we could achieve a better user experience for our reports. Any help is appreciated. Thanks.
    Greetings
    I am using:
    Crystal Reports 2008 (in Asp.net, Windows Forms)
    Version .NET 3.5 (SP1)
    PS: of course a very fast report would be the finest solution. However, i guess this will not be possible with our reports and the volume of data they access

    Hi Daniel,
    Crystal Report 2008 we have a inbuilt functionality of progress bar .If you are not getting progress bar for every report that means those reports are not taking to much time.
    For more info regarding progressbar  this check this link:
    [https://boc.sdn.sap.com/node/8035]
    Look for processingIndicatorDelay and processingIndicatorText.
    If you want to improve performance of report then we need to keep in mind few thing while creating report in Crystal report designer:
    Here are a few points related to performance issue .
    The performance of a report is related to:
    External factors:
    1. The amount of time the database server takes to process the SQL query.
    ( Crystal Reports send the SQL query to the database, the database process it, and returns the data set to Crystal Reports. )
    2. Network traffics.
    3. Local computer processor speed.
    ( When Crystal Reports receives the data set, it generates a temp file to further filter the data when necessary, as well as to group, sort, process formulas, ... )
    4. The number of records returned
    ( If a SQL query returns a large number of records, it will take longer to format and display than if was returning a smaller data set.)
    Report design:
    1. Where is the Record Selection evaluated?
    Ensure your Record Selection Formula can be translated in SQL, so the data can be filter down on the server, otherwise the filtering will be done in a temp file on the local machine which will be much slower.
    They have many functions that cannot be translated in SQL because they may not have a standard SQL for it.
    For example, control structure like IF THEN ELSE cannot be translated into SQL. It will always be evaluated
    in Crystal Reports. But if you use an IF THEN ELSE on a parameter, it will convert the result of the condition to
    SQL, but as soon as uses database fileds in the conditions it will not be translated in SQL.
    2. How many subreports the report contains and in section section they are located.
    Minimise the number of subreports used, or avoid using subreports if possible because
    subreports are reports within a report, and if you have a subreport in a details section, and the report returns 100
    records, the subreport will be evaluated 100 times, so it will query the database 100 times. It is often the biggest
    factor why a report takes a long time to preview.
    3. How many records will be returned to the report.
    Large number of records will slow down the preview of the reports. Ensure you only returns the necessary data on the report, by creating a Record Selection Formula, or basing your report off a Stored Procedure, or a Command Object that only returns the desired data set.
    4. Do you use the special field "Page N of M", or "TotalPageCount"
    When the special field "Page N of M" or "TotalPageCount" is used on a report, it will have to generate each page
    of the report before it displays the first page, therfore it will take more time to display the first page of the report.
    If you want to improve the speed of a report, remove the special field "Page N of M" or "Total Page Count" or formula that uses the function "TotalPageCount". If those aren't use when you view a report it only format the page requested. It won't format the whole report.
    5. Link tables on indexed fields whenever possible.
    6. Remove unused tables, unused formulas, unused running totals from the report.
    7. Suppress unnecessary sections.
    8. For summaries, use conditional formulas instead of running totals when possible.
    9. Whenever possible, limit records through selection, not suppression.
    10. Use SQL expressions to convert fields to be used in record selection instead of using formula functions.
    For example, if you need to concatenate 2 fields together, instead of doing it in a formula, you can create a SQL Expression Field. It will concatenate the fields on the database server, instead of doing in Crystal Reports.
    SQL Expression Fields are added to the SELECT clause of the SQL Query send to the database.
    11. Using one command as the datasource can be faster if you returns only the desired data set. It can be faster if the SQL query written only return the desired data.
    12. Perform grouping on server
    This is only relevant if you only need to return the summary to your report but not the details. It will be faster as less data will be returned to the reports.
    Hope this helps!!
    Regards,
    Shweta

  • Report Load Failed

    Post Author: jigmewangchuk
    CA Forum: Crystal Reports
    I am totally new to ASP.NET and I have developed a web application in VS2005 (VB) and Crystal report 10.  I am getting an error u201CReport Load Failedu201D when I run report from main page linked to report viewer page (url) but it works fine when I run report viewer page directly (view in browser from VS2005.   Here is my code:
    Dim oRpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    oRpt.Load("F:\BDFCL\CrystalReport11.rpt")
    Dim ds As New DataSet1
    Dim da As New DataSet1TableAdapters.BranchInformationTableAdapter
    da.Fill(ds.BranchInformation)
    oRpt.SetDataSource(ds)
    CrystalReportViewer1.ReportSource = oRpt
    I shall be grateful if you could kindly advice me accordingly.
    Thanks in advance
    Jigme

    Hi Don,
    Thanks for the reply.  I had downloaded a set of samples from SAP and I have looked through a few of the set you supplied.  I am worried that I'm going to have some trouble because the samples have the reports loaded as part of the solution but I was looking to create a more generic viewer.  I don't want to have to reprogram for each and every report that is created.  That is why I was trying to use the generic parameter dialog.  After the Report Load Failed dialog comes up, it does bring up the parm dialog and hits SQL Server just fine.  Yes...the reports are passing Parms to Stored Procs in SQL Server.  The report has default parameter values. 
    What I am trying to do is search thru the application folder and gather the names of the reports located there and fill the combo box with the names of the reports.  Then the user should just be able to select a report and run it.  I can't save the data in the reports because they must be ran per the requester's date range and other desired parameters.
    Does this seem valid or am I going to have to program for EVERY single report and reprogram/recompile for every report added?  Not particularly what I want to hear.   I would have used the standard Crystal Report Viewer and had the users use that but it doesn't seem to allow you refresh the data from the viewer.
    Thanks for your help,
    Chris

  • Javascript on report load

    Hi to all,
    i have a problem with a prompt.
    I need to launch a Javascript at the same time a report load.
    In practice this javascript function must reset my selection
    in the prompt linked to this report.
    Thanks for replies.
    p.s.:I hope i was clear,sorry for my bad english ;-)

    I have resolved.
    Thanks anyway

  • Report.Load Error with ASP application

    Hi,
    I experienced a few instances where my the follow statement where my ASP application (using VS2005, CRXI-R2+SP4, Datasets and CR Viewer on the server) thows an error on my server (running Server 2003).
            Dim Report As CrystalDecisions.CrystalReports.Engine.ReportDocument = _
                New CrystalDecisions.CrystalReports.Engine.ReportDocument()
            Try
                Report.Load(Server.MapPath("~/Private/Event/WebEvent.rpt"))
            Catch ex As Exception
                JavaMessage("Report Not Found")
                Exit Sub
            End Try
    I don't know what the exception is at this point. But something happens and the crystal reports in all my websites break uniformly. I need to restart IIS to get things back working. This has happended to me 3x now.
    Any ideas?
    Thanks,
    Eric

    Hi,
    As a best practice use Close() and Dispose() method also gc.Collect();
    Check if this helps!!
    Amit

  • Loading hanging every few days.

    Hi experts,
    I have a scheduled loading of stored procedure, its loading normally, but today it is hanging at some step to loading a physical table. this is not the first time for this issue. this issue occurred multiple time recently. it normally occurred after successfully loading multiple times. for this time, procedure loading successful for 24/25/26/27/28/29 Aug 2012. on 30 Aug 2012, its loading hanging at step 2 to loading some physical table. will you please tell me how to check issue cause ? I am not DBA, just a procedure developer. so will you please recommend some method suited for me?
    appreciate very much.

    918440 wrote:
    Hi experts,
    I have a scheduled loading of stored procedure, its loading normally, but today it is hanging at some step to loading a physical table. this is not the first time for this issue. this issue occurred multiple time recently. it normally occurred after successfully loading multiple times. for this time, procedure loading successful for 24/25/26/27/28/29 Aug 2012. on 30 Aug 2012, its loading hanging at step 2 to loading some physical table. will you please tell me how to check issue cause ? I am not DBA, just a procedure developer. so will you please recommend some method suited for me?
    appreciate very much.This forum is for SQL*PLUS issues. Yours is a detailed situation with a stored procedure and you will get a better, faster answer in the SQL and PL/SQL forum.
    Something is happening to make the procedure run slowly on the dates you listed. You will have to analyze the program to find inefficies. Check the SQL very carefully (slow programs are usually due to SQL) but there are analysis tools like DBMS_PROFILER (older) and the Heirarchical profler (newer) that can help you find the slow points in your program

  • Report Load Error

    After running 30-40 Crystal Reports we get a 'Report Load' error on the .Load() command. At this point we cannot run any of our 8 reports created with Crystal Reports. To resolve the issue we restart IIS and then the reports load and run without problem.
    Recently we upgraded our project from .NET 1.1x, VS2003, CR 9.X  to  .NET 2.0, VS2005, CR 10.2. This intranet web site runs under IIS 6 on WS 2003. Prior to the upgrade we did not see this behavior.
    To create the report we send Crystal Rerports a dataset and then output the report to a PDF. Any ideas on how we can resolve this issue?
    Here is sample code for producing our reports:
    <code>
                       Dim amortReportDocument As ReportDocument
                       Dim reportPath As String = Server.MapPath("./amort.rpt")
                        amortReportDocument = New ReportDocument
                        amortReportDocument.Load(reportPath)
                        amortReportDocument.SetDataSource(ds1)
                        Dim myExportOptions As CrystalDecisions.Shared.ExportOptions
                        Dim myDiskFileDestinationOptions As                                                                           CrystalDecisions.Shared.DiskFileDestinationOptions
                        Dim myExportFile As String = FilePath & FileStamp & ".pdf"
                        myDiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions
                        myDiskFileDestinationOptions.DiskFileName = myExportFile
                        myExportOptions = amortReportDocument.ExportOptions                    myExportOptions.DestinationOptions = myDiskFileDestinationOptions
                        myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
                        myExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
                        amortReportDocument.Export()
                        Response.ClearContent()
                        Response.ClearHeaders()
                        Response.ContentType = "application/pdf"
                        Response.WriteFile(myExportFile)
                        Response.Flush()
                        Response.Close()
                        Response.End()
                        amortReportDocument.Close()
                        amortReportDocument.Dispose()
    We added the following to the page unload event:
        Private Sub page_unload(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Unload
            GC.Collect()
        End Sub
    </code>

    Ok lets try this:
    Right click on the temp folder (where the .rpt filed are getting created at runtime) -> properties.
    go to Security tab.
    click on Add.
    enter (with out "") "IIS_WPG" in Object name window.
    Click on Locations.
    Select the machine name in the tree.
    Ok.
    Click on "Check names".
    OK.
    Give full control to it. (For testing purpose please ignore any warning signs).
    OK.
    Also please include the ReportDocumentObject.Close(), ReportDocumentObject.Dispose() and GC.Collect() in your page_upload event.
    Does it help?
    AG.

  • Report (not Page) caching to improve report loading times

    We are trying out Cystal Reports Server 2008 as a replacement for Crystal Reports CR XI R2 for an ASP.NET Web Application. Running some tests we found that the same report loaded from the server was far slower than loading the same report locally, using the CRXI SDK.
    Being the Clone/Refresh strategy on the standalone SDK several times faster than the reportAppFactory.OpenDocument on the server platform, i think that the server is loading from scratch the report each time I execute the OpenDocument method. So what I am seraching for is, Is there a way to setup or tweak report caching on Crystal Server 2008? What I need is not page caching, but the whole report, which is used different databases each time it's executed (implying different data for each execution).
    Some insight on the problem:
    As I posted on a previous thread we are moving from CR XI due to a limit on the number of active instances suported by the SDK (74 instances). We reach this limit because of a workaround for improving report execution times, leaving instances of each report active, so the next execution just recicles the active instance, greatly reducing the overall process time. Therefor introducing Crystal Server is a setback on this module (due to it's actual performance).
    Part of the problem resides on the complexity of the report. Using the standalone SDK the report takes several seconds to load from disk, and several seconds to execute. Regretably, we are not at liberty to change the reports' structure, so optimizing it is beyond posibility for now.
    Thanks in advance,
    Gustavo

    Hello Maggie,
    >> How can I get an all-encoompassing CSV file of the main report (Page 2014)?
    This might be possible using the advanced print server configuration, with BI Publisher, using the same technique that is being used to print master-details reports (which is a type of a multi-region report) - http://www.oracle.com/technology/products/database/application_express/html/configure_printing.html . The standard print server configuration only supports reports with a single region. If you have BIP in your organization, that’s great. Otherwise, CSV files don’t warrant it.
    The only other option, I can see, is to create the CSV file manually, using the technique described in the following Blog entry, by Scott Spendolini - http://spendolini.blogspot.com/2006/04/custom-export-to-csv.html .
    Regards,
    Arie.

  • Sql loader hangs

    Hi All,
    I have a java program which runs sql loader in a timer. That is the sql loader is used to load some tables with the data contained in a flat file. And I want this to be run every night.
    I am using Runtime class to initiate a process which will invoke the sql loader. This works fine when I directly call my function in main.
    But since I want this to run every night, I decided to invoke it thru the timer class. And when I do that the sql loader hangs and I have to terminate the process manually.
    Is there any solution for the above problem?
    Any help will be appreciated.
    Regards,
    Chitra

    Just to give a lil bit more added clarity on the issue.
    The requirement is like this. I have a flat file which needs to be uploaded to a database periodically. Every 24hrs. Now I am using Oracles SQL Loader to upload the data flat file. I am calling SQL loader from with a java program using Runtime class. Now I initiated this using a standard Java application and put it in the main class. It works fine. Now since I needed to have this running every 24hrs I used a Timer class to set the timer and to have it running evry 24 hrs. Now if I execute the same class above within the timer class, the SQL loader pops up in a new window and the program does not complete the execution. It just hangs. Which requires for me to terminate the process manually. All the data in the flat file is uploaded to the database but that is shown only after the proecess is treminated. Is there any solution for this ? Or does anyone have any idea as to why this is happenin ?
    heres the code that I have written.
    public class RmsDataLoader
    Toolkit toolkit;
    Timer timer;
    public RmsDataLoader()
    toolkit = Toolkit.getDefaultToolkit();
    timer = new Timer();
    timer.schedule(new RMSJobThread(),
         0, //initial delay
         24*60*60*1000); //subsequent rate
    public static void main(String[] args)
    RmsDataLoader rms = new RmsDataLoader();
    class RMSJobThread extends TimerTask
    public RMSJobThread()
    public void run()
    RMSJob rmsjob = new RMSJob();
    rmsjob.runJob();
    and the function in runJob is
    public void runJob (String errorlog) {
    try {
    // Validation 1 : The datafile exists and the file size is not 0
    String strDataFile = "W:\\rms_amps\\" + todayDate + "\\inv_company_label.dat";
    File dataFile = new File(strDataFile);
    if(!dataFile.exists()){
    rmsExp.createLog(filename, filename, " Data File does not exist", todayDate);
    } else {
    long len = dataFile.length();
    if (len <= 0) {
    rmsExp.createLog(filename, filename, " File size is 0 ", todayDate);
    // End of Validation 1
    // create a process to invoke sql loader
    Process process = Runtime.getRuntime().exec("sqlldr USERID=scott@umidb/tiger CONTROL=load_company_label.ctl LOG=load_company_label.log BAD=inv_company_label.bad DATA=inv_company_label.dat");
    return ;
    } catch (Exception ei) {
    rmsExp.createLog(filename, filename, ei.getMessage() , todayDate);
    ei.printStackTrace();
    System.out.println (" Error while initiating the data loading " );
    return ;

  • Crystal reports 11 hangs

    Hello,
    I have crystal reports 11. When i click for "database expert" or "set database location" , nothing happend and crystal reports just hangs.

    hi
    just check all the credentials. if there is a mistake it will hang. i got this problem, which was solved by checking login credentials.

  • Reproducible error when loading many reports (Load report failed - Not enough memory for operation)

    Environment:
    Win 7 SP 1
    Visual Studio Pro 2012 Update 4
    Crystal Reports for Visual Studios Service Pack 10 (13.0.10.1385)
    Report created in Crystal Reports XI Release 2 (11.5.8.826)
    Targeting x86 .NET 4.0
    Scenario:
    We have a program that runs and creates a large number of reports before the process is ended. When running after many hours we'd get a Load report failed/Not enough memory of operation exception. I kept removing code and found i could reproduce just using the report.Load call. I simplified the report to a completely blank report to make sure it was nothing specific to a report I was loading. (Opened Crystal Reports XI Release 2, Save As, "Blank.rpt".). I then created, loaded, and disposed of this report in a loop. I was able to cause the same exception after 32,764 iterations on my machine. I also tried using .NET 3.5 same result. I added a counter to our main program and it also went through 32,764 report loads before the same exception was thrown. Main program uses 15 or so different reports with a variable number of subreports in each.
    Sample Code to illustrate the problem:
    I did this as a WinForms project since our main program is using winforms.
    References added:
    CrystalDecisions.CrystalReports.Engine
    CrystalDecisions.ReportSource
    CrystalDecisions.Shared
    CrystalDecisions.Windows.Forms
    using System;
    using System.Windows.Forms;
    using CrystalDecisions.CrystalReports.Engine;
    namespace CrystalTest
        public partial class Form1 : Form
            public Form1()
                InitializeComponent();
                int i = 0;
                try
                    while (true)
                        i++;
                        ReportDocument report = new ReportDocument();
                        report.Load("Blank.rpt");
                        report.Close();
                        report.Dispose();
                catch(Exception ex)
                    MessageBox.Show(i.ToString() + ex.Message);
    Exception:
    CrystalDecisions.Shared.CrystalReportsException: Load report failed. ---> System.Runtime.InteropServices.COMException (0x80041004):
    Not enough memory for operation.
       at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
       --- End of inner exception stack trace ---
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
       at CrystalTest.Form1..ctor() in c:\Test Projects\CrystalTest\CrystalTest\Form1.cs:line 27

    int = Int32. No it's not the "counter" that's causing the problem. The max size of an int32 is far far larger than 32764.
    I am disposing and cleaning up the datasets in the main app. That is why I didn't include them in this test; they aren't relevant.
    I'm unsure why this test program is completely irrelevant. It throws the same exception, at the same count, as the main program. It does it in substantially less lines of code than our main program. I spent days running long tests to figure out exactly what I needed to make the problem appear so I could post a clean and precise post on these forums. I then created the test program to illustrate that.
    The "real" code as I said does stuff in sections and in a certain order.
    For each report I need to export based on rows in a table
    1. Creates a new Report Document
    2. Loads the report document with the report
    3. Creates a dataset of the data to display
    4. Calls SetDataSource
    5. Calls Report.ExportToDisk
    6. Disposes DataSets
    7. Closes/Disposes Reports
    To help isolate the problem I first took out the export to disk part (Step 5). The problem still occurred. I then took out everything related to our data. (Step 3, Step 4, Step 6). The problem still occurred. And yes I commented out this code in our main real program. This left me with:
    1. Creates a new Report Document
    2. Loads the report document with the report
    7. Closes/Disposes Reports
    At this point i had to prove it was not dependent on the report. This makes sure it's not a database connection, or pulling too much data into the report. The most efficient test for this is a blank report.
    So my order of operations becomes...
    1. Creates a new Report Document
    2. Loads the report document with a blank report
    7. Closes/Disposes Reports
    So you'll see this is exactly why I wrote this test the way that I did.
    I've had a run where it error on iteration 32761. My last runs have errored on 32764. I have had many runs over many weeks that all error with the same exception.
    There are no temp files left behind, With a test running you can see the temp files being added but they are immediately removed.

  • Oracle 11g Reports : Report is hanging

    Hi All
    We are using below code to run few reports
    IF p_report IN ('RLRRSENQ', 'RLRSENQ1','RLRLABPR','RLRLABP1') THEN
         l_request := UTL_HTTP.BEGIN_REQUEST(l_report_url);
         l_response := UTL_HTTP.get_response(l_request);
         UTL_HTTP.end_response(l_response);
    ELSE
         l_resp := UTL_HTTP.REQUEST(l_report_url);
    END IF;
    Few reports are hanging when used the above code
    Just would like to know if the request is taking time to process, whether the package UTL_HTTP.GET_RESOPONSE waits till it gets the response.?
    Thanks
    Sandeep

    No, that is not possible. There is no signal from the browser to the Reports Server that the user closes the window. Just like there is no signal to the Forms Server when a user just closes the browser (or browser tab) instead of properly logging out of a Forms session.
    Similar questions are asked quite often (like "I want to logout the user when the browser is closed"). It is just not possible.

Maybe you are looking for