You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2008/12/11 00:38:13 UTC
svn commit: r725487 - in
/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool:
ConnectionPool.java interceptor/SlowQueryReport.java
Author: fhanik
Date: Wed Dec 10 15:38:13 2008
New Revision: 725487
URL: http://svn.apache.org/viewvc?rev=725487&view=rev
Log:
refactor the slow query report a bit
also add the ability to remove a listener
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/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=725487&r1=725486&r2=725487&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 15:38:13 2008
@@ -263,6 +263,10 @@
listeners.add(listener);
}
+ public void removeCloseListener(CloseListener listener) {
+ listeners.remove(listener);
+ }
+
/**
* Closes the pool and all disconnects all idle connections
* Active connections will be closed upon the {@link java.sql.Connection#close close} method is called
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=725487&r1=725486&r2=725487&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 15:38:13 2008
@@ -29,6 +29,8 @@
import java.util.LinkedHashMap;
import java.util.Map.Entry;
+import javax.management.openmbean.CompositeData;
+
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.jdbc.pool.ConnectionPool;
@@ -110,7 +112,7 @@
*/
@Override
public void closeInvoked() {
- // TODO Auto-generated method stub
+ queries = null;
}
@@ -187,6 +189,10 @@
}
this.pool = parent;
}
+
+ public void finalize() {
+ if (pool!=null) pool.removeCloseListener(this);
+ }
public void poolClosed(ConnectionPool pool) {
@@ -194,6 +200,10 @@
perPoolStats.remove(pool);
}
+ public CompositeData[] getSlowQueriesCD() {
+ return null;
+ }
+
/**
@@ -326,29 +336,32 @@
long delta = (process)?(System.currentTimeMillis()-start):Long.MIN_VALUE;
//see if we meet the requirements to measure
if (delta>threshold) {
- //extract the query string
- String sql = (query==null && args!=null && args.length>0)?(String)args[0]:query;
- //if we do batch execution, then we name the query 'batch'
- if (sql==null && compare(executes[3],name)) {
- sql = "batch";
- }
- //if we have a query, record the stats
- if (sql!=null) {
- QueryStats qs = SlowQueryReport.this.queries.get(sql);
- if (qs == null) {
- qs = new QueryStats(sql);
- SlowQueryReport.this.queries.put((String)sql,qs);
- }
- qs.add(delta,start);
- }
+ reportSlowQuery(args, name, start, delta);
}
//perform close cleanup
if (close) {
closed=true;
delegate = null;
- queries = null;
}
return result;
}
+
+ protected void reportSlowQuery(Object[] args, final String name, long start, long delta) {
+ //extract the query string
+ String sql = (query==null && args!=null && args.length>0)?(String)args[0]:query;
+ //if we do batch execution, then we name the query 'batch'
+ if (sql==null && compare(executes[3],name)) {
+ sql = "batch";
+ }
+ //if we have a query, record the stats
+ if (sql!=null) {
+ QueryStats qs = SlowQueryReport.this.queries.get(sql);
+ if (qs == null) {
+ qs = new QueryStats(sql);
+ SlowQueryReport.this.queries.put((String)sql,qs);
+ }
+ qs.add(delta,start);
+ }
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org