tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fha...@apache.org
Subject svn commit: r790684 - /tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Date Thu, 02 Jul 2009 17:08:50 GMT
Author: fhanik
Date: Thu Jul  2 17:08:50 2009
New Revision: 790684

URL: http://svn.apache.org/viewvc?rev=790684&view=rev
Log:
Add some doco, make shared variables volatile

Modified:
    tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.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=790684&r1=790683&r2=790684&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 Thu
Jul  2 17:08:50 2009
@@ -48,17 +48,28 @@
  */
 
 public class ConnectionPool {
+    /**
+     * Prefix type for JMX registration
+     */
     public static final String POOL_JMX_TYPE_PREFIX = "tomcat.jdbc:type=";
     
-    //logger
+    /**
+     * Logger
+     */
     protected static Log log = LogFactory.getLog(ConnectionPool.class);
 
     //===============================================================================
     //         INSTANCE/QUICK ACCESS VARIABLE
     //===============================================================================
+    /**
+     * Carries the size of the pool, instead of relying on a queue implementation
+     * that usually iterates over to get an exact count
+     */
     private AtomicInteger size = new AtomicInteger(0);
+
     /**
      * All the information about the connection pool
+     * These are the properties the pool got instantiated with
      */
     private PoolProperties poolProperties;
 
@@ -76,12 +87,12 @@
     /**
      * The thread that is responsible for checking abandoned and idle threads
      */
-    private PoolCleaner poolCleaner;
+    private volatile PoolCleaner poolCleaner;
 
     /**
      * Pool closed flag
      */
-    private boolean closed = false;
+    private volatile boolean closed = false;
 
     /**
      * Since newProxyInstance performs the same operation, over and over
@@ -95,7 +106,7 @@
     private ThreadPoolExecutor cancellator = new ThreadPoolExecutor(0,1,1000,TimeUnit.MILLISECONDS,new
LinkedBlockingQueue<Runnable>());
     
     /**
-     * reference to mbean
+     * reference to the JMX mbean
      */
     protected org.apache.tomcat.jdbc.pool.jmx.ConnectionPool jmxPool = null;
     
@@ -119,6 +130,14 @@
     }
 
 
+    /**
+     * Retrieves a Connection future. If a connection is not available, one can block using
future.get()
+     * until a connection has become available.
+     * If a connection is not retrieved, the Future must be cancelled in order for the connection
to be returned
+     * to the pool.
+     * @return
+     * @throws SQLException
+     */
     public Future<Connection> getConnectionAsync() throws SQLException {
         if (idle instanceof FairBlockingQueue) {
             Future<PooledConnection> pcf = ((FairBlockingQueue<PooledConnection>)idle).pollAsync();
@@ -130,7 +149,7 @@
     
     /**
      * Borrows a connection from the pool
-     * @return Connection - a java.sql.Connection reflection proxy, wrapping the underlying
object.
+     * @return Connection - a java.sql.Connection/javax.sql.PooledConnection reflection proxy,
wrapping the underlying object.
      * @throws SQLException
      */
     public Connection getConnection() throws SQLException {
@@ -180,6 +199,10 @@
         return busy.size();
     }
 
+    /**
+     * Returns the number of idle connections
+     * @return
+     */
     public int getIdle() {
         return idle.size();
     }
@@ -197,7 +220,11 @@
     //===============================================================================
     
     
+    /**
+     * configures a pooled connection as a proxy
+     */
     protected Connection setupConnection(PooledConnection con) throws SQLException {
+        //fetch previous interceptor proxy
         JdbcInterceptor handler = con.getHandler();
         if (handler==null) {
             //build the proxy handler
@@ -252,6 +279,10 @@
         return proxyClassConstructor;
     }
 
+    /**
+     * If the connection pool gets garbage collected, lets make sure we clean up
+     * and close all the connections
+     */
     @Override
     protected void finalize() throws Throwable {
         close(true);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message