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.

Similar Messages

  • How to improve the load time of my swf group

    Hi,
    I need help to have some tricks to improve my load time on my swf captivate online traning. My training has 6 sections and it takes 3 minutes to download each time I open the window of the training. It takes too much time and if there are 50 users at the same time, it will take lots of my website bandwidth. Do you have any tips on captivate settings or other tips to help reduce my training download time? I do not understand why the 6 modules loading simultaneously and not every time I click to start a new part of training.
    Can you help me with my problem?
    Thank you

    Bryan,
    If "read from spreadsheet file" is the main time hog, consider dropping it! It is a high-level, very multipurpose VI and thus carries a lot of baggage around with it. (you can double-click it and look at the "guts" )
    If the files come from a just executed "list files", you can assume the files all exist and you want to read them in one single swoop. All that extra detailed error checking for valid filenames is not needed and you never e.g. want it to popup a file dialog if a file goes missing, but simply skip it silently. If open generates an error, just skip to the next in line. Case closed.
    I would do a streamlined low level "open->read->close" for each and do the "spreadsheet string to array" in your own code, optimized to the exact format of your files. For example, notice that "read from spreadheet file" converts everything to SGL, a waste of CPU if you later need to convert it to DBL for some signal processing anyway.
    Anything involving formatted text is not very efficient. Consider a direct binary file format for your data files, it will read MUCH faster and take up less disk space.
    LabVIEW Champion . Do more with less code and in less time .

  • Increasing Report Loading Time

    I am currently generating a report table through Visual Studio 9 and uploading it to our SQL Server. Before I go any further, I am a complete novice/beginner with this and it is my first time, so sorry if what i'm saying doesn't make complete sense. The
    project deploys and I can open it, but it takes around 45 seconds to a minute to just load about 100 rows of data. What are some things that I can do to speed up this process? 
    Thanks in advance.

    Hi TIGSlayer1,
    In Reporting Services, the total time to generate a reporting server report (RDL) can be divided into 3 elements:
    Time to retrieve the data (TimeDataRetrieval).
    Time to process the report (TimeProcessing)
    Time to render the report (TimeRendering) 
    Total time = (TimeDataRetrieval) + (TimeProcessing) + (TimeRendering)
    Those 3 performance components are logged every time for which a deployed report is executed. This information can be found in the Executionlog view in the ReportServer database.
    References:
    Troubleshooting Reports: Report Performance
    ExecutionLog2 View - Analyzing and Optimizing Reports
    Hope this helps.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • How to improve jsp load time?

    Hi everyone --
    Got a question for all of you.
    I have a form in a JSP, which does a (Oracle 9i) db lookup on 13 fields and populates the drop-down boxes. The load time for the JSP is slooooww.
    These are my options for speeding up the load time (I think):
    1. When the web/app server starts the application, have it do all the db lookups and store the resultsets...somewhere. Maybe have some dblistener thread that periodically checks for updates to the db. Then, when someone actually requests the JSP, all the JSP has to do is read the pre-populated drop-down boxes and load.
    2. Wait until someone requests the JSP and store all the resultsets as cookies for the session. The resultsets will be good for the home JSP and its sister. This doesn't really solve the problem, since the initial load will still be slow.
    3. Combine all the lookup statements into one huge statement, and store the results somewhere. This method queries the db only once, and the drop-down boxes can be populated from one query (instead of 13 separate connections and queries).
    All of these ideas seem mediocre to me, and they don't address the fact that the results of the queries change contantly. What I need is a
    way to make the JSP load quickly and with the most current information.
    Does anyone have any ideas? Which of my suggestions is rather boneheaded?
    Thanks for any advice,
    -Kwj

    It's still not perfect, but it's better at least.
    I'm querying 4 different tables overall, and I have a Db class that the jsp instantiates.
    from home.jsp:
    Db d = new Db();
    ResultSet [] all = d.getAll();
    <body>
    %>
    <tr><td align=right>Correspondence ID: </td><td><select>
    <option label=""></option>
    <%
        rs = all [1];
        while(rs.next()){
    %>
            <option><%=rs.getString("sak_correspondence")%></option>
    <%
    %>
    </select></td>
    </body>
    [\code]
    from Db.java:public ResultSet [] getAll() throws SQLException
    ResultSet [] all = new ResultSet [4];
    all [0] = con.prepareStatement
    ("select nam_category from doco.corr_category " +
    "order by nam_category asc").executeQuery();
    all [1] = con.prepareStatement
    ("select sak_correspondence, dte_received, dte_response_due, " +
    "dte_sent, file_path, id_outref, subject " +
    "from doco.correspondence").executeQuery();
    all [2] = con.prepareStatement
    ("select nam from doco.corr_type order by nam asc").executeQuery();
    all [3] = con.prepareStatement
    ("select nam_subcategory from doco.corr_subcategory " +
    "order by nam_subcategory asc").executeQuery();
    return all;
    }//getAll()

  • Java cacheing options causeing long load time.

    I have a user that is claiming that if she has "Keep Temporary Files on my Computer" checked the applet takes four minutes or more to load and if it is unchecked the applet loads in under 30 seconds. Anyone ever seen this? Anybody know a good work around besides changing the settings on the JVM?
    Edited by: DavidDSiebert on Feb 20, 2009 5:53 PM

    Response time decreases due to CPU overhead (scan to find the class, loading and invocation) when applet is cached. Fine tune your applet to reduce the CPU overhead.
    Thanks,
    Mrityunjoy

  • Slow report - loading the function masterReport.Load

    Hi All,
    We use the crystal report runtime 12 in a .net program,
    we have a report that takes roughly a minute to run but 55 seconds of this is caused by a bottleneck on the feature masterReport.Load,
    I am wondering if there is anyone who could explain what would cause this bottleneck and/or assist with the matter?
    Many Thanks in Advance,
    Gavin

    Gavin, you say:
    crystal report runtime 12 in a .net program, we have a report that takes roughly a minute to run but 55 seconds of this is caused by a bottleneck on the feature masterReport.Load,
    But what is the performance of the report in the designer? E.g.; the runtime will not perform any better than the designer. If the performance is better in the designer by something like 5 or 10 seconds, then  remember the total performance needs to be take into account. E.g.; load of report, db connection, view. E.g.; comparing from the time you you have logged on to the database and possibly filled out any parameters, is forgetting about the report load time, etc.
    You also do not specify the CR 2008 Service Pack you are using...
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter

  • Improving load times in Linux LabVIEW executable

    I'm looking for (simple) ways to improve the loading times in a Linux LabVIEW executable. We're using a low performance, low cost CPU board, and loading times are terrible. The CPU is capable of doing everything after the application is loaded, but takes forever to get there.
    One of the problems is the size of the executable, that grows everytime you just look at it. Are there ways to create smaller executables? It runs from a Compact Flash card, which is ofcourse much slower than hard disk.
    Another problem is a dynamic vi, that is started for every TCP connection that connects to the application. It takes a long time to load, and connecting too fast can even effectively hang up the system. Starting a handler task takes about half a second, up to a few seconds for the first task.
    We're using the LabVIEW 7.1 runtime, system is a 300 MHz cyrix SBC, running from a Compact Flash.

    Dennisvr wrote:
    I'm looking for
    (simple) ways to improve the loading times in a Linux LabVIEW
    executable. We're using a low performance, low cost CPU board, and
    loading times are terrible. The CPU is capable of doing everything
    after the application is loaded, but takes forever to get there.   One
    of the problems is the size of the executable, that grows everytime you
    just look at it. Are there ways to create smaller executables? It runs
    from a Compact Flash card, which is ofcourse much slower than hard disk.   Another
    problem is a dynamic vi, that is started for every TCP connection that
    connects to the application. It takes a long time to load, and
    connecting too fast can even effectively hang up the system. Starting a
    handler task takes about half a second, up to a few seconds for the
    first task.   We're using the LabVIEW 7.1 runtime, system is a 300 MHz cyrix SBC, running from a Compact Flash.
    I'm
    not sure about the first part of your question. LabVIEW is highly
    binary and does a lot of memory allocations before even one VI is ready
    to be started. So maybe the memory manager is a problem. Another issue
    is that the Macintosh like resource file format that is used by LabVIEW to store its VIs etc. results in
    lots and lots of individual disk accesses with a rther random like
    character inside a single file. So if you can configure the read
    caching of your disk to use more memory this may significantly increase
    the speed of loading LabVIEW VIs or applications.
    And finally spawning VIs through VI server is a rather costly operation
    especially on low resoruce systems. A VI is more like an executable in
    many ways as far as resource consumption is concerned rather than a
    thread. A much better way would be to avoid spawning subVIs altogether
    and implement a queued TCP/IP server similar to the Date Time Server
    example. It is a little extra work to work with this shift register
    architecture but it will not have the issues of long load times for
    every new TCP/IP connection coming in.
    Rolf Kalbermatter
    Message Edited by rolfk on 03-07-2006 06:33 PM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Movie Load Time Too Slow

    Hello! 
    I've created three movies for a new website; all photo slide shows with 10-14 photos and some text.  The photos have all been optimized in Photoshop and saved for web...most are under 100kb, however the movies are taking a long time to load on the webpages.  Is there anything I can do through Edge Animate to reduce the load time?  Even with the preloader, the load time is way too long.  I've inserted the movies into the html pages using iframe.  Any suggestions are much appreciated.  Thanks!

    Hi Simon,
    I want to reduce Power View blank canvas / PowerView report load time from SSAS Tabular source in the SharePoint 2013 Portal.
    I have observed that a PowerView report with 1 View, loads faster than a PowerView report with multiple (4) Views, so I think that your statement "Power View only retrieves the data it needs at any given time for a data visualization" might
    be incorrect.
    I have read the link you have provided and have all the patches applied, besides I am not using a Power Pivot source.
    My tabular cube is complex and has about 200 measures, and the blank Power View canvas takes about 13 seconds to load in SharePoint 2013 URL from web browser. Appreciate if you can provide any insights here please.
    Thanks, Ashish Singh

  • PowerView (SharePoint 2013) Load time too slow

    I am using PowerView in SharePoint 2013 and when I access the SSAS 2012 Tabular Data Source through a "Report Data Source", the PowerView Canvas with the Field List takes a long while to load and the users get restless seeing the Blue spinning
    wheel. I tested this on different tabular models and am seeing different results based on the complexity of the model.
    Complex Model - 13 secs.
    Adventure Works Model - 9 secs.
    Very Simple Model (1 fact, 1 dim) - 8 secs.
    I think if the model is complex then the engine takes a longer time to render the field list. How to get around this limitation and bring the blank canvas load time to under 5 secs.? I am curious to know if anyone has ever seen lesser load times in their
    environment for the blank PowerView canvas and field lists.
    Alternatively, If the field list loading takes time, is it possible to disable it? Because, I have already created dashboards for the end users in PowerView and do not want to load the field list if it is slowing down the entire experience.
    Appreciate any guidance.
    Thanks, Ashish Singh

    Hi Simon,
    I want to reduce Power View blank canvas / PowerView report load time from SSAS Tabular source in the SharePoint 2013 Portal.
    I have observed that a PowerView report with 1 View, loads faster than a PowerView report with multiple (4) Views, so I think that your statement "Power View only retrieves the data it needs at any given time for a data visualization" might
    be incorrect.
    I have read the link you have provided and have all the patches applied, besides I am not using a Power Pivot source.
    My tabular cube is complex and has about 200 measures, and the blank Power View canvas takes about 13 seconds to load in SharePoint 2013 URL from web browser. Appreciate if you can provide any insights here please.
    Thanks, Ashish Singh

  • How can I speed up loading time on Android?

    Hello!
    I'm creating an AIR app for Android and I've run into an issue with the loading time: when the user first clicks on the icon, there's 10 seconds of black screen before the first screen of my app appears. At least this happens on older Android devices. The delay is only a second or two on newer devices. I know this question has been asked before:
    http://forums.adobe.com/thread/764981
    http://forums.adobe.com/message/4035208#4035208
    http://zehfernando.com/2011/a-mobile-air-application-post-mortem/
    But I haven't been able to find an answer that's worked for me. I've tried a a preloader and I've found that even loading the tiniest app takes around 10 seconds. This is how long it took me to load an app that was just a single frame with a simple rectangle image in it. From what I've read, the issue is that the Android device is loading the AIR runtime, and this takes time - no matter how small the actual app is. I should add that I'm using captive runtime.
    I'm OK with the performance on new Android devices but, as far as I can tell, Android is so fragmented that many people are still running older devices and OS versions. So, I'd like to provide a good user experience on older devices. I think a ten second wait is just too long and will kill the entire experience for many people.
    Is there any update on this? Does anyone have a solution?
    If I can't improve the loading time, I think I'll try to only make the app available for newer devices.
    I've heard people taking about creating 'native wrapper' and somehow embedding their swf file in native code that has a loading screen. Has anyone got something like this work? I'm currently reading up on Android splash screens in native code. They seem relatively simple to create. I hope I can somehow embed my swf in a native program with a splash screen. Any help is appreciated!
    Thanks!
    Damian

    Hi Anton,
    Yes, I tried launching an empty project with just one frame and a simple rectange image embedded in it. This also took 10 seconds to load. Yes, I'm using AIR 4.0 as well. As far as I can tell, the issue is AIR itself is taking time to load onto the device - and this is independent of what I put in my program. I think I have three options:
    1. learn to live with the delay
    2. decide it's too long and not support older Android devices with my app
    3. figure out if I can embed my swf in a "native wrapper" as suggested in one of my original three links.
    I'm hoping to do 3, but I don't know if it's possible.
    Damian

  • Loading Time in TPVS for entire MOT

    Hi ,
    I have an issue in TPVS planning. I have maintained Loading time based on Means of Transport in Condition "LOAD".Say Loading time is 4:00hrs.
    After the optimisation run,in the  planned shipment System is taking Loading time 4:00hrs for each freight unit rather than for entire Vehicle.For example,if i have 4 freight units in the Shipment,Total Loading time 16hours is being captured by system.It is understandable that since Transportation planning is based on Freight units in TPVS hence it is taking for each item.     Is there any way to capture only 4:00 hours for entire Truck(means of transport).
    Regards
    Ahmed
    Edited by: Aktar Ahmed Shaik on Feb 5, 2008 2:01 PM

    Hi Ahmed,
    TP/VS calls APO-scheduling per freight unit that is loaded or unloaded, and then the loading and unloading times will be calculated separately.
    Although it's possible to influence the individual scheduling result by a BAdI, I don't think it's possible to get the desired result as during the call you never know how many freight units will be loaded onto the truck in total. For this reason it's not possible to distribute the total loading time per truck to the number of freight units that is loaded or unloaded.
    For the optimizer it would of course be possible to update the loading/unloading durations in the shipments after they have been created, but as this will change the total duration for loading and unloading you will most likely end up with shipments that can not be posted to LC due to some resource capacity conflicts. I would not recommend to do this...
    For me it looks like there's no way to achieve the desired result, especially not in standard.
    To get to a solution that's at least close to what you want you could create some stepfunctions based on the capacity of the resource and the freight unit. However, if the resource will not be fully utilized this will lead to too small loading and unloading durations...
    Regards,
    Sebastian

  • I just updated my RAM and I keep getting a crash report. I have a 21.5 Inch mid 2010 imac. I also am experiencing slow load times and when I try to open Final Cut it says that quartz extreme is not compatible and that I have no VRAM even though I do.

    I just updated my RAM (replaced the two 2 gig cards with two Corsair 8 gig cards) and I keep getting a crash report. I have a 21.5 Inch mid 2010 imac. I also am experiencing slow load times with Photoshop and when I try to open Final Cut it says that quartz extreme is not compatible and that I have no VRAM even though I do.
    Here is the crash report:
    Interval Since Last Panic Report:  5426204 sec
    Panics Since Last Report:          2
    Anonymous UUID:                    2DD57DDB-BB42-5614-395A-CA6225BDAFD9
    Wed Mar 20 11:36:53 2013
    panic(cpu 0 caller 0xffffff801aa43d8e): "a freed zone element has been modified in zone: maps"@/SourceCache/xnu/xnu-2050.18.24/osfmk/kern/zalloc.c:219
    Backtrace (CPU 0), Frame : Return Address
    0xffffff81eb0eb950 : 0xffffff801aa1d626
    0xffffff81eb0eb9c0 : 0xffffff801aa43d8e
    0xffffff81eb0eba00 : 0xffffff801aa435d2
    0xffffff81eb0ebae0 : 0xffffff801aa663f7
    0xffffff81eb0ebb20 : 0xffffff801aa67398
    0xffffff81eb0ebc70 : 0xffffff801aa6887c
    0xffffff81eb0ebd20 : 0xffffff801ad5b8fe
    0xffffff81eb0ebf50 : 0xffffff801ade182a
    0xffffff81eb0ebfb0 : 0xffffff801aaced33
    BSD process name corresponding to current thread: launchd
    Mac OS version:
    Not yet set
    Kernel version:
    Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64
    Kernel UUID: 69A5853F-375A-3EF4-9247-478FD0247333
    Kernel slide:     0x000000001a800000
    Kernel text base: 0xffffff801aa00000
    System model name: iMac11,2 (Mac-F2238AC8)
    System uptime in nanoseconds: 1070542822
    last loaded kext at 707348380: com.apple.driver.AppleIRController    320.15 (addr 0xffffff7f9c53e000, size 28672)
    loaded kexts:
    at.obdev.nke.LittleSnitch    3908
    com.apple.driver.AppleIRController    320.15
    com.apple.driver.AppleUSBCardReader    3.1.0
    com.apple.driver.AppleFileSystemDriver    3.0.1
    com.apple.AppleFSCompression.AppleFSCompressionTypeDataless    1.0.0d1
    com.apple.AppleFSCompression.AppleFSCompressionTypeZlib    1.0.0d1
    com.apple.BootCache    34
    com.apple.iokit.SCSITaskUserClient    3.5.1
    com.apple.driver.XsanFilter    404
    com.apple.iokit.IOAHCIBlockStorage    2.2.2
    com.apple.driver.AppleUSBHub    5.2.5
    com.apple.driver.AppleFWOHCI    4.9.6
    com.apple.driver.AirPort.Atheros40    600.70.23
    com.apple.driver.AppleUSBEHCI    5.4.0
    com.apple.driver.AppleAHCIPort    2.4.1
    com.apple.iokit.AppleBCM5701Ethernet    3.2.5b3
    com.apple.driver.AppleUSBUHCI    5.2.5
    com.apple.driver.AppleEFINVRAM    1.6.1
    com.apple.driver.AppleACPIButtons    1.6
    com.apple.driver.AppleRTC    1.5
    com.apple.driver.AppleHPET    1.7
    com.apple.driver.AppleSMBIOS    1.9
    com.apple.driver.AppleACPIEC    1.6
    com.apple.driver.AppleAPIC    1.6
    com.apple.driver.AppleIntelCPUPowerManagementClient    196.0.0
    com.apple.nke.applicationfirewall    4.0.39
    com.apple.security.quarantine    2
    com.apple.driver.AppleIntelCPUPowerManagement    196.0.0
    com.apple.iokit.IOUSBHIDDriver    5.2.5
    com.apple.iokit.IOSCSIBlockCommandsDevice    3.5.1
    com.apple.iokit.IOUSBMassStorageClass    3.5.0
    com.apple.driver.AppleUSBMergeNub    5.2.5
    com.apple.driver.AppleUSBComposite    5.2.5
    com.apple.iokit.IOSCSIMultimediaCommandsDevice    3.5.1
    com.apple.iokit.IOBDStorageFamily    1.7
    com.apple.iokit.IODVDStorageFamily    1.7.1
    com.apple.iokit.IOCDStorageFamily    1.7.1
    com.apple.iokit.IOAHCISerialATAPI    2.5.0
    com.apple.iokit.IOSCSIArchitectureModelFamily    3.5.1
    com.apple.iokit.IOUSBUserClient    5.2.5
    com.apple.iokit.IOFireWireFamily    4.5.5
    com.apple.iokit.IO80211Family    500.15
    com.apple.iokit.IOAHCIFamily    2.2.1
    com.apple.iokit.IOEthernetAVBController    1.0.2b1
    com.apple.iokit.IONetworkingFamily    3.0
    com.apple.iokit.IOUSBFamily    5.4.0
    com.apple.driver.AppleEFIRuntime    1.6.1
    com.apple.iokit.IOHIDFamily    1.8.0
    com.apple.iokit.IOSMBusFamily    1.1
    com.apple.security.sandbox    220
    com.apple.kext.AppleMatch    1.0.0d1
    com.apple.security.TMSafetyNet    7
    com.apple.driver.DiskImages    344
    com.apple.iokit.IOStorageFamily    1.8
    com.apple.driver.AppleKeyStore    28.21
    com.apple.driver.AppleACPIPlatform    1.6
    com.apple.iokit.IOPCIFamily    2.7.2
    com.apple.iokit.IOACPIFamily    1.4
    com.apple.kec.corecrypto    1.0
    Model: iMac11,2, BootROM IM112.0057.B00, 2 processors, Intel Core i3, 3.2 GHz, 16 GB, SMC 1.64f5
    Graphics: ATI Radeon HD 5670, ATI Radeon HD 5670, PCIe, 512 MB
    Memory Module: BANK 0/DIMM1, 8 GB, DDR3, 1333 MHz, 0x029E, 0x434D5341384758334D314131333333433920
    Memory Module: BANK 1/DIMM1, 8 GB, DDR3, 1333 MHz, 0x029E, 0x434D5341384758334D314131333333433920
    AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x8F), Atheros 9280: 4.0.70.23-P2P
    Bluetooth: Version 4.0.9f33 10885, 2 service, 18 devices, 0 incoming serial ports
    Network Service: AirPort, AirPort, en1
    Serial ATA Device: ST31000528AS, 1 TB
    Serial ATA Device: HL-DT-STDVDRW  GA32N
    USB Device: hub_device, 0x0424  (SMSC), 0x2514, 0xfd100000 / 2
    USB Device: IR Receiver, apple_vendor_id, 0x8242, 0xfd120000 / 4
    USB Device: Built-in iSight, apple_vendor_id, 0x8502, 0xfd110000 / 3
    USB Device: hub_device, 0x0424  (SMSC), 0x2514, 0xfa100000 / 2
    USB Device: BRCM2046 Hub, 0x0a5c  (Broadcom Corp.), 0x4500, 0xfa110000 / 4
    USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x8215, 0xfa111000 / 6
    USB Device: Internal Memory Card Reader, apple_vendor_id, 0x8403, 0xfa120000 / 3

    There have been a few reports on here where Corsair RAM seems to have caused users a lot of grief with crashes.
    The recommendation on here, mostly, is to only buy RAM from macsales.com or crucial.com as they guarantee their modules will work and offer a no quibble lifetime guarantee.
    I'd put the original RAM back in, return the Corsair chips for a refund and re-order from one of those two companies.
    http://eshop.macsales.com/shop/apple/memory/iMac
    http://www.crucial.com/

  • 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.

  • 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

  • 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

Maybe you are looking for