I have a JSP page that is getting reported for not closing connections
in catalina.out. I'm running Tomcat 6.0.26, so I believe we are on DBCP
1.2. I've racked my brain trying to figure out how these connections
could possible remain unclosed. Does anyone have any tips or
suggestions on how I can further troubleshoot this?
Here's the latest version of our connection pool settings:
<Resource name="jdbc/myDB" auth="Container" type="javax.sql.DataSource"
maxActive="350" maxIdle="40" minIdle="10" maxWait="45"
removeAbandoned="true"
removeAbandonedTimeout="55"
validationQuery="select 1"
testWhileIdle="true"
testOnBorrow="true"
logAbandoned="true"
timeBetweenEvictionRunsMillis="100000"
minEvictableIdleTimeMillis="400000"
numTestsPerEvictionRun="3"
username="user" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://1.2.3.4/myDB?autoReconnect=true&jdbcCompliantTruncation=false"/>
The JSP page literally has everything enclosed in a try block and all
connections closed in a finally statement. See below:
Connection con = null;
Statement stmt = null;
ResultSet rset = null;
String query = "";
Statement stmt2 = null;
ResultSet rset3 = null;
try {
// page executes
}
catch (SQLException ex) {
out.println ("\n*** SQLException caught ***\n");
while (ex != null) {
out.println ("SQLState: " + ex.getSQLState ());
out.println ("Message: " + ex.getMessage ());
out.println ("Vendor: " + ex.getErrorCode ());
ex = ex.getNextException ();
out.println ("");
}
}
catch (java.lang.Exception ex) { // Got some other type of exception.
Dump it.
ex.printStackTrace ();
}
finally {
if(rset != null) {
try {rset.close();}
catch(Exception e) {
System.out.println("Exception in finally rset");
e.printStackTrace();
}
rset = null;
}
if(rset3 != null) {
try {rset3.close();}
catch(Exception e) {
System.out.println("Exception in finally rset3");
e.printStackTrace();
}
rset3 = null;
}
if(stmt != null) {
try {stmt.close();}
catch(Exception e) {
System.out.println("Exception in finally stmt");
e.printStackTrace();
}
stmt = null;
}
if(stmt2 != null) {
try {stmt2.close();}
catch(Exception e) {
System.out.println("Exception in finally stmt2");
e.printStackTrace();
}
stmt2 = null;
}
if(con != null) {
try {con.close();}
catch(Exception e) {
System.out.println("Exception in finally con");
e.printStackTrace();
}
con = null;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]