You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2004/12/18 14:32:10 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer ConnectionFactory.java ConnectionFactoryAbstractImpl.java ConnectionFactoryDBCPImpl.java ConnectionFactoryNotPooledImpl.java ConnectionFactoryPooledImpl.java

arminw      2004/12/18 05:32:10

  Modified:    src/java/org/apache/ojb/broker/accesslayer
                        ConnectionFactory.java
                        ConnectionFactoryAbstractImpl.java
                        ConnectionFactoryDBCPImpl.java
                        ConnectionFactoryNotPooledImpl.java
                        ConnectionFactoryPooledImpl.java
  Log:
  introduce monitoring methods in ConnectionFactory
  
  Revision  Changes    Path
  1.14      +18 -3     db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactory.java
  
  Index: ConnectionFactory.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactory.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ConnectionFactory.java	14 Sep 2004 16:03:32 -0000	1.13
  +++ ConnectionFactory.java	18 Dec 2004 13:32:10 -0000	1.14
  @@ -16,6 +16,7 @@
    */
   
   import java.sql.Connection;
  +import java.util.Date;
   
   /**
    * ConnectionFactory is responsible to lookup and release the
  @@ -37,14 +38,28 @@
   
       /**
        * Release connection - CAUTION: Release every connection after use to avoid abandoned connections.
  -     * Depending on the used implementation connection will be closed, returned to pool, ...
  +     * Depending on the used implementation the connection will be closed, returned to pool, ...
        */
       public void releaseConnection(Connection con);
   
       /**
        * Release all resources
  -     * used by the implementing class (e.g. connection pool, ...)
  -     * for the given connection descriptor.
  +     * used by the implementing class (e.g. connection pool, ...).
        */
       public void releaseAllResources();
  +
  +    /**
  +     * Returns the number of active connections.
  +     * When {@link #releaseConnection(java.sql.Connection)}
  +     * was called, the connection was removed from active connections.
  +     *
  +     * @return Date array of active connections.
  +     */
  +    public int getActiveConnections();
  +
  +    /**
  +     * The number of idle connections in this class, e.g. idle connections in pool.
  +     * @return Number of idle connections
  +     */
  +    public int getIdleConnections();
   }
  
  
  
  1.13      +16 -7     db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryAbstractImpl.java
  
  Index: ConnectionFactoryAbstractImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryAbstractImpl.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ConnectionFactoryAbstractImpl.java	14 Sep 2004 16:03:32 -0000	1.12
  +++ ConnectionFactoryAbstractImpl.java	18 Dec 2004 13:32:10 -0000	1.13
  @@ -15,12 +15,6 @@
    * limitations under the License.
    */
   
  -import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor;
  -import org.apache.ojb.broker.platforms.PlatformException;
  -import org.apache.ojb.broker.util.ClassHelper;
  -import org.apache.ojb.broker.util.logging.Logger;
  -import org.apache.ojb.broker.util.logging.LoggerFactory;
  -
   import javax.naming.InitialContext;
   import javax.naming.NamingException;
   import javax.sql.DataSource;
  @@ -30,6 +24,12 @@
   import java.util.HashMap;
   import java.util.Map;
   
  +import org.apache.ojb.broker.metadata.JdbcConnectionDescriptor;
  +import org.apache.ojb.broker.platforms.PlatformException;
  +import org.apache.ojb.broker.util.ClassHelper;
  +import org.apache.ojb.broker.util.logging.Logger;
  +import org.apache.ojb.broker.util.logging.LoggerFactory;
  +
   /**
    * Abstract base class to simplify implementation of {@link ConnectionFactory}'s.
    *
  @@ -40,6 +40,7 @@
   {
       private Logger log = LoggerFactory.getLogger(ConnectionFactoryAbstractImpl.class);
       private final JdbcConnectionDescriptor jcd;
  +    private int activeConnections;
   
       /**
        * holds the datasource looked up from JNDI in a map, keyed
  @@ -79,9 +80,15 @@
       public abstract void returnConnectionToPool(Connection con)
               throws LookupException;
   
  +    public int getActiveConnections()
  +    {
  +        return activeConnections;
  +    }
  +
       public void releaseConnection(Connection con)
       {
           if (con == null) return;
  +        --activeConnections;
           if (jcd.isDataSource())
           {
               try
  @@ -142,6 +149,7 @@
                   throw new LookupException("Connection check failed", e);
               }
           }
  +        ++activeConnections;
           return conn;
       }
   
  @@ -175,6 +183,7 @@
        */
       public synchronized void releaseAllResources()
       {
  +        this.activeConnections = 0;
           this.dataSourceCache.clear();
       }
   
  
  
  
  1.14      +8 -3      db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryDBCPImpl.java
  
  Index: ConnectionFactoryDBCPImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryDBCPImpl.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ConnectionFactoryDBCPImpl.java	15 Nov 2004 17:35:35 -0000	1.13
  +++ ConnectionFactoryDBCPImpl.java	18 Dec 2004 13:32:10 -0000	1.14
  @@ -54,6 +54,11 @@
           super(jcd);
       }
   
  +    public int getIdleConnections()
  +    {
  +        return connectionPool.getNumIdle();
  +    }
  +
       public Connection getConnectionFromPool() throws LookupException
       {
           synchronized (dummy)
  @@ -89,8 +94,7 @@
   
       public synchronized void releaseAllResources()
       {
  -        log.warn("Release all resources and destroy pooled connections");
  -        super.releaseAllResources();
  +        log.warn("Clear connection pool");
           synchronized (dummy)
           {
               try
  @@ -104,6 +108,7 @@
               connectionPool = null;
               dataSource = null;
           }
  +        super.releaseAllResources();
       }
   
       /**
  
  
  
  1.7       +6 -1      db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryNotPooledImpl.java
  
  Index: ConnectionFactoryNotPooledImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryNotPooledImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ConnectionFactoryNotPooledImpl.java	11 Aug 2004 00:42:52 -0000	1.6
  +++ ConnectionFactoryNotPooledImpl.java	18 Dec 2004 13:32:10 -0000	1.7
  @@ -37,6 +37,11 @@
           super(jcd);
       }
   
  +    public int getIdleConnections()
  +    {
  +        return 0;
  +    }
  +
       public Connection getConnectionFromPool() throws LookupException
       {
           if (log.isDebugEnabled())
  
  
  
  1.19      +8 -3      db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryPooledImpl.java
  
  Index: ConnectionFactoryPooledImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ConnectionFactoryPooledImpl.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ConnectionFactoryPooledImpl.java	15 Nov 2004 17:35:35 -0000	1.18
  +++ ConnectionFactoryPooledImpl.java	18 Dec 2004 13:32:10 -0000	1.19
  @@ -49,6 +49,11 @@
           pool = createConnectionPool();
       }
   
  +    public int getIdleConnections()
  +    {
  +        return pool.getNumIdle();
  +    }
  +
       public void returnConnectionToPool(Connection con)
               throws LookupException
       {
  @@ -79,8 +84,7 @@
        */
       public void releaseAllResources()
       {
  -        log.warn("Release all resources and destroy pooled connections");
  -        super.releaseAllResources();
  +        log.warn("Clear connection pool");
           try
           {
               pool.clear();
  @@ -89,6 +93,7 @@
           {
               log.error("Error while clear connection pool", e);
           }
  +        super.releaseAllResources();
       }
   
       /**
  
  
  

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