Author: fhanik
Date: Wed Dec 10 21:49:10 2008
New Revision: 725586
URL: http://svn.apache.org/viewvc?rev=725586&view=rev
Log:
Implemented closure notification. Turns out generics only work on an instance
level, so you cant use static methods without having to use reflection.
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=725586&r1=725585&r2=725586&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Wed Dec 10 21:49:10 2008
@@ -291,7 +291,14 @@
}
size.set(0);
if (this.getPoolProperties().isJmxEnabled()) stopJmx();
-
+ PoolProperties.InterceptorDefinition[] proxies =
getPoolProperties().getJdbcInterceptorsAsArray();
+ for (int i=0; i<proxies.length; i++) {
+ try {
+
proxies[i].getInterceptorClass().newInstance().poolClosed(this);
+ }catch (Exception x) {
+ log.debug("Unable to inform interceptor of pool closure.",x);
+ }
+ }
} //closePool
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java?rev=725586&r1=725585&r2=725586&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java
Wed Dec 10 21:49:10 2008
@@ -90,4 +90,14 @@
public void setUseEquals(boolean useEquals) {
this.useEquals = useEquals;
}
+
+ /**
+ * This method is invoked by a connection pool when the pool is closed.
+ * Interceptor classes can override this method if they keep static
+ * variables or other tracking means around.
+ * <b>This method is only invoked on a single instance of the interceptor,
and not on every instance created.</b>
+ * @param pool - the pool that is being closed.
+ */
+ public void poolClosed(ConnectionPool pool) {
+ }
}
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=725586&r1=725585&r2=725586&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
Wed Dec 10 21:49:10 2008
@@ -454,9 +454,9 @@
public Class<? extends JdbcInterceptor> getInterceptorClass() throws
ClassNotFoundException {
if (clazz==null) {
- clazz = Class.forName(getClassName(), true,
JdbcInterceptor.class.getClassLoader());
+ clazz = Class.forName(getClassName(), true,
this.getClass().getClassLoader());
}
- return clazz;
+ return (Class<? extends JdbcInterceptor>)clazz;
}
}
Modified:
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java?rev=725586&r1=725585&r2=725586&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/interceptor/SlowQueryReport.java
Wed Dec 10 21:49:10 2008
@@ -184,6 +184,16 @@
}
}
+
+ /**
+ * [EMAIL PROTECTED]
+ */
+ @Override
+ public void poolClosed(ConnectionPool pool) {
+ perPoolStats.remove(pool.getName());
+ super.poolClosed(pool);
+ }
+
public CompositeData[] getSlowQueriesCD() {
return null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]