Hi,
We were porting some of our crystal reports to use .Net WCF web services as data source. The whole work flow of reports execution is as follows:
1. From a WPF UI, residing on End user's machine, report printing request is initiated when user clicks the print button on the UI.
2. The request along with report parameters values is posted to our web server hosting a our WCF 4.0 web services. The web service, responsible for printing receives the request and starts a thread which submits the report printing request to the Crystal Server (2008) and waits for the report. Once received, it either redirects the report to the selected (by the user) printer or back to user's machine as PDF.
3. The Crystal Reports Server 2008 is deployed on another server and handles the reports printing requests from our web services.
4. The Crystal Report being printed is designed in Crystal Reports Designer 2008. It has following structure
a. A header, which is a sub-report with a constant string and image. It also has a formula which controls hiding or displaying a watermark. There is no database or any other external data source connection in this report.
b. Its body has a connection to WCF Web Service. The response objects as defined in the operation and data contracts are attached the report and their fields are attached to the report fields.
c. A footer, which is again a sub-report with all constant strings. There is no database or any other external data source connection in this report.
5. The report body as mentioned above, is responsible to get data from web service and render that data on the report.
6. The Web service data returned as one object containing a header object and a collection of detail objects. So the mapping to reports fields is very straight forward.
Now it is observed that when more than 5 users tried to print that report @ e.g. 11:00 p.m then following happened:
1. CPU usage shoots to 100%
2. Report submitted and started @ almost 11:01 p.m.
3. As per web services server log, no request for data from crystal reports server is received as yet.
4. At around 11:10 pmweb services server log, shows that it received a request from crystal reports server and web service finished within few hundred milliseconds and returned.
5. Almost the same time i.e. 11:10 pm the report finished and returned.
We could not figure out
1. What crystal report server is doing between Report Start and Web services call. i.e. almost 10 minutes because the CPU usage was 100% through out that period.
2. Definitely it is not doing any type of report rendering because it should happen after the web service call.
3. We have tried Blank Report (with only Web Service connections), removed verify database connection, no printer etc but nothing worked.
We are investigating to install all missing service packs but as per release notes of service packs (2 to 7 for us) I don't see any targeted fix for it. Please let us know if any one have encountered this problem or could recommend any area which needs further exploration.
Thakns