views:

229

answers:

2

The company has recently implemented software not written by us. The software uses Crystal Reports and whenever somebody draws a particularly large report and close their browser before the report is finished loading, we cannot draw anymore reports. The only way to fix it is to reset iis which is obviously exceptionally bad practice.

Any ideas on how to overcome this?

Thanks

A: 

If it's a SQL server it is pulling data from, you could kill the SPID on the SQL server, that may allow the CR process to exit more gracefully; if you're using IIS6, you could configure a worker process to cycle automatically after a fixed number of requests or a time frame. Creating multiple worker processes may help also.

I wonder why it is hanging though, will it succeed if you wait long enough for the prior query and the current one to finish?

Finding a way to speed up the query would be a good idea too; or have large reports run off-hours and delivered to the users.

SqlACID
+1  A: 

So if one person closes their browser prematurely, the app breaks for everyone? Can two people try loading one of these long-running reports at once? Are there multiple templates, and this only breaks one and leaves the others ok?

It sounds a bit like the app's implementation of Crystal is holding an exclusive lock on the original template, and so when the user quits prematurely the app doesn't release the template for other users to use.

CodeByMoonlight
I've left the company in the meantime but will forward this solution to them, I will mark as correct if they get back to me. Thanks for the answer
FailBoy