I searched these forums and the internet for a definitive answer on asking the Crystal SDK for java to close the jdbc connection after it has generated a report. We have been using the Crystal Report SDK to generate reports within our JEE application, built upon the Spring framework, for the past two years. It works well, especially if you prepare views in the database for your reports.
From what I can tell once you have used ReportClientDocument to create your report you all the close() method to release resources associated with report generation, but this does not close the jdbc database connection.
Further research states that if you are using the CrystalReportViewer you can call the dispose method to close the database connection. We are not using JSP nor this class, so that does us little good.
Finally I found a post that one could call ((AdvancedReportDocument)reportClientDocument.getReportSource()).dispose(). This doesn't drop the connection either.
Each report actually opens 3 connections according to SQL Server. Each report will reuse the connections it has open, so for 50 reports, theoretically, we could have up to 150 connections. We explained to our client those connections remain inactive, however this is unacceptable to our client as they would like to minimize the number of connections left open to their database.
If anyone can post any further information on this issue, it is much appreciated.