Author: fhanik
Date: Wed Jun 6 01:02:41 2012
New Revision: 1346691
URL: http://svn.apache.org/viewvc?rev=1346691&view=rev
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=53367
Avoid pool hanging when database fails
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1346691&r1=1346690&r2=1346691&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Wed Jun 6 01:02:41 2012
@@ -750,7 +750,19 @@ public class ConnectionPool {
if (!con.isDiscarded() && !con.isInitialized()) {
//attempt to connect
- con.connect();
+ try {
+ con.connect();
+ } catch (Exception x) {
+ release(con);
+ setToNull = true;
+ if (x instanceof SQLException) {
+ throw (SQLException)x;
+ } else {
+ SQLException ex = new SQLException(x.getMessage());
+ ex.initCause(x);
+ throw ex;
+ }
+ }
}
if (usercheck) {
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java?rev=1346691&r1=1346690&r2=1346691&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PooledConnection.java
Wed Jun 6 01:02:41 2012
@@ -238,10 +238,14 @@ public class PooledConnection {
protected void connectUsingDriver() throws SQLException {
try {
- if (driver==null)
+ if (driver==null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Instantiating driver using class:
"+poolProperties.getDriverClassName()+" [url="+poolProperties.getUrl()+"]");
+ }
driver = (java.sql.Driver)
Class.forName(poolProperties.getDriverClassName(),
true,
PooledConnection.class.getClassLoader()
).newInstance();
+ }
} catch (java.lang.Exception cn) {
if (log.isDebugEnabled()) {
log.debug("Unable to instantiate JDBC driver.", cn);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]