We have a windows forms app that uses CR for VS (13_0_5). A client has recently upgraded their PCs from ancient XP ones where their reports ran perfectly to reasonably spec'd Windows 7 ones where every few minutes a report that normally opens in seconds will take ages to load - anywhere from 2 to 5 minutes.
Each user is running the same report over and over again e.g. an invoice or a purchase order. Very roughly, three times out of five it will load in seconds, the other twice it will take minutes (even if they use the same parameter values)
We have not seen this issue at any other site and have been unable to find a cause.or a solution by other means (google et al.) and so wondered if anyone here had come across anything similar
Updating the install to SP 8 will not be a bad idea. There are always performance improvements from SP to SP.
One thing I wonder about; is it the same report(s) running slowly, or would the same report run fast one time and slowly the next time?
Perhaps a bit of logging may also help. Process Monitor is a great utility for that. Logging in your own app to see where the slow downs occur may also be an idea (e.g.; is the slow down occurring on report load, db connection, printing, exporting, parameter passing, etc.).
Look at the printers. If a report is set to use a specific printer and the printer is not there, the report may take time looking for it, eventually substituting the default printer.
For OLE DB then use:
MS SQL 2005 - OLE DB Provider
MS SQL 2008 - SQL Native 10
MS SQL 2013 - SQL Native 11
For ODBC then use:
MS SQL 2005 - SQL Native
MS SQL 2008 - SQL Native 10
MS SQL 2013 - SQL Native 11
Also, see if using the search string 'crystal net performance' or 'crystal net slow', etc. will help. Search box is in the top right corner of this web page.
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter
I know it has been some time since I originally posted but this is still an issue for our client i.e. the same report will be run 50-60 times to produce invoices - sometimes the report will load in a second or two and sometimes it can take up to 5 minutes to load. Over the past few months we have tried many things, including the suggestions you made, to no avail and we're wondering what to try now.
We have not had this issue reported at any other site. The only thing different about this client is that they have a peer-to-peer network of Windows 7 machines in a homegroup as opposed to the more usual (for us) setup of a windows server with windows XP/7/8 clients.
Is there anything else you can suggest we try? Are there additional support options open to us?
Amazing and beautiful amount of work. There is nothing like working with someone that wants to work the issue rather than just be given the proverbial silver bullet to resolve the issue (but I'm ranting here LOL).
The timing "logs" / description you provided makes me think that this is some sort of a database issue. I am specifically looking at the Toolbar to Shown step, where the quick report has a value of 701 and the slow report has a value of 65429. Also the runReport Step (2853 vs. 622889).
In the Toolbar to Shown step, there are three events happening;
1) data transfer from the database to the engine
2) formatting of the first report page
3) transmission of the formatted page to the viewer
In the runReport Step, all of the above applies also - for each subsequent page.
Now as the reports do sometimes come up quickly, my assumption would be that the CR print engine is working fine. Also, remember this work well on other sites, just this one site has the issue. Thus the only variable left is the database.
I am still not sure what database you are using. And if it is MS SQL, what client is being used by the customer. This is critical to know in order for us to proceed. Once I have that info, I do have ways of tracing the database activity from the report perspective, but I'd like to know the db used and the client used first.
The other thing to consider is how the database is being used overall. Is it being hit by other applications? Is it being updated? E.g.; as difficult it may be, if the "system" is isolated such that no other process or application touches the database, do you still see the slow down?
Just on a far out thought....
Can you explain about this statement:
"The only thing different about this client is that they have a peer-to-peer network of Windows 7 machines in a homegroup as opposed to the more usual (for us) setup of a windows server with windows XP/7/8 clients."
There are known issues with performance and Printers ( Redirect x). If they install the printer drivers locally then there is no problem. But I'm not sure if this is related to Home Groups. The issue is open with Microsoft and at this time we have no solution.
Does each PC have ALL printers installed or does it share them? Not up on Work Group configurations and settings anymore, it's so easy to create a Domain Server now I didn't know anyone still using WG features. It could be you may have to log this issue with Microsoft and get them to debug the delays....
But I'm wondering if this may be related somehow....
And Ludek and I talked about the DB side of things, maybe it's the DB Server "cleaning up" temp files or something like that.
Can you turn on your database logging and see what it's doing when this slow down occurs?
It may even be a buffer issue in their PC's Network cards, you'll have to get IT guys to find/enable logging for that part. And if they have 2 Network cards ( most Motherboards now come with 2 ) you may want to Bridge them so they share resources. That was a common solution for our BI Servers.
From your logs it's clear it seems to start off with simply loading the report taking twice as long but then the major delay is within the Viewer itself so it's in the Windows.Forms Viewer and possibly GDIPlus or even USP10 dll's. I don't think this is an issue but with P2P not sure how Windows would share resources... I'll research P2P and see if any known problems for other software have been reported or post in forums.
In your code after you are done with the reports are you .Closing and .Disposing of the Report objects and any other objects you may have created and finally calling a GC.Collect to tell Windows to release the memory allocated NOW. If not try adding that to your code.
Turn on PerfMon also and monitor the Private Bytes, see if it steadily increases, give it about 50 reports to stabilize, until then CR resources and OS resource can fluctuate a lot.
Watch for spikes when the delay occurs and turn on Task Manager and the Network tab and see if it spikes at the same time....
I don't see this as being a CR issue but CR does has hardware and OS dependencies so the OS change may have altered your built and dependencies too.
Also curious if you built your app on a Windows 7 OS, if not maybe it is installing a dll conflict....