tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: svn commit: r790684 - /tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Date Thu, 02 Jul 2009 23:42:45 GMT
On 07/02/2009 05:10 PM, sebb wrote:
> On 02/07/2009, fhanik@apache.org<fhanik@apache.org>  wrote:
>    
>> 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
>>      
>
> What does it return?
>    
it returns a chocolate chip cookie for patch submissions
>    
>>   +     * @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
>>      
>
> Ditto
>
>    
>>   +     */
>>       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
>>
>>
>>      
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>    


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message