[jboss-cvs] JBossAS SVN: r111160 - in projects/jboss-jca/trunk: core/src/main/java/org/jboss/jca/core/connectionmanager/pool and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 11 15:03:11 EDT 2011


Author: jesper.pedersen
Date: 2011-04-11 15:03:11 -0400 (Mon, 11 Apr 2011)
New Revision: 111160

Modified:
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/connectionmanager/pool/PoolStatistics.java
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/SubPoolStatistics.java
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ManagedConnectionPoolStatisticsImpl.java
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java
   projects/jboss-jca/trunk/core/src/main/resources/poolstatistics.properties
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/pool/OnePoolTestCase.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
Log:
[JBJCA-545] MaxUsedCount for pool statistics

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/connectionmanager/pool/PoolStatistics.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/connectionmanager/pool/PoolStatistics.java	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/connectionmanager/pool/PoolStatistics.java	2011-04-11 19:03:11 UTC (rev 111160)
@@ -55,6 +55,12 @@
    public int getDestroyedCount();
 
    /**
+    * Get max used count
+    * @return The value
+    */
+   public int getMaxUsedCount();
+
+   /**
     * Get max wait time (milliseconds)
     * @return The value
     */

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/SubPoolStatistics.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/SubPoolStatistics.java	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/SubPoolStatistics.java	2011-04-11 19:03:11 UTC (rev 111160)
@@ -45,6 +45,7 @@
    private static final String AVERAGE_BLOCKING_TIME = "AverageBlockingTime";
    private static final String CREATED_COUNT = "CreatedCount";
    private static final String DESTROYED_COUNT = "DestroyedCount";
+   private static final String MAX_USED_COUNT = "MaxUsedCount";
    private static final String MAX_WAIT_TIME = "MaxWaitTime";
    private static final String TIMED_OUT = "TimedOut";
    private static final String TOTAL_BLOCKING_TIME = "TotalBlockingTime";
@@ -78,6 +79,9 @@
       n.add(DESTROYED_COUNT);
       t.put(DESTROYED_COUNT, int.class);
 
+      n.add(MAX_USED_COUNT);
+      t.put(MAX_USED_COUNT, int.class);
+
       n.add(MAX_WAIT_TIME);
       t.put(MAX_WAIT_TIME, long.class);
 
@@ -171,6 +175,10 @@
       {
          return getDestroyedCount();
       }
+      else if (MAX_USED_COUNT.equals(name))
+      {
+         return getMaxUsedCount();
+      }
       else if (MAX_WAIT_TIME.equals(name))
       {
          return getMaxWaitTime();
@@ -279,6 +287,29 @@
    }
 
    /**
+    * Get max used count
+    * @return The value
+    */
+   public int getMaxUsedCount()
+   {
+      if (isEnabled())
+      {
+         int result = Integer.MIN_VALUE;
+
+         for (SubPoolContext spc : subPools.values())
+         {
+            int v = spc.getSubPool().getStatistics().getMaxUsedCount();
+            if (v > result)
+               result = v;
+         }
+
+         return result != Integer.MIN_VALUE ? result : 0;
+      }
+
+      return 0;
+   }
+
+   /**
     * {@inheritDoc}
     */
    public long getMaxWaitTime()

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ManagedConnectionPoolStatisticsImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ManagedConnectionPoolStatisticsImpl.java	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ManagedConnectionPoolStatisticsImpl.java	2011-04-11 19:03:11 UTC (rev 111160)
@@ -44,6 +44,7 @@
    private static final String AVERAGE_BLOCKING_TIME = "AverageBlockingTime";
    private static final String CREATED_COUNT = "CreatedCount";
    private static final String DESTROYED_COUNT = "DestroyedCount";
+   private static final String MAX_USED_COUNT = "MaxUsedCount";
    private static final String MAX_WAIT_TIME = "MaxWaitTime";
    private static final String TIMED_OUT = "TimedOut";
    private static final String TOTAL_BLOCKING_TIME = "TotalBlockingTime";
@@ -56,6 +57,7 @@
    private AtomicLong totalBlockingTime;
    private AtomicInteger createdCount;
    private AtomicInteger destroyedCount;
+   private AtomicInteger maxUsedCount;
    private AtomicLong maxWaitTime;
    private AtomicInteger timedOut;
 
@@ -79,6 +81,9 @@
       n.add(DESTROYED_COUNT);
       t.put(DESTROYED_COUNT, int.class);
 
+      n.add(MAX_USED_COUNT);
+      t.put(MAX_USED_COUNT, int.class);
+
       n.add(MAX_WAIT_TIME);
       t.put(MAX_WAIT_TIME, long.class);
 
@@ -101,6 +106,7 @@
       this.totalBlockingTime = new AtomicLong(0);
       this.createdCount = new AtomicInteger(0);
       this.destroyedCount = new AtomicInteger(0);
+      this.maxUsedCount = new AtomicInteger(Integer.MIN_VALUE);
       this.maxWaitTime = new AtomicLong(Long.MIN_VALUE);
       this.timedOut = new AtomicInteger(0);
 
@@ -273,6 +279,31 @@
    }
 
    /**
+    * Get max used count
+    * @return The value
+    */
+   public int getMaxUsedCount()
+   {
+      if (isEnabled())
+         return maxUsedCount.get() != Integer.MIN_VALUE ? maxUsedCount.get() : 0;
+
+      return 0;
+   }
+
+   /**
+    * Set max used count
+    * @param v The value
+    */
+   public void setMaxUsedCount(int v)
+   {
+      if (isEnabled())
+      {
+         if (v > maxUsedCount.get())
+            maxUsedCount.set(v);
+      }
+   }
+
+   /**
     * {@inheritDoc}
     */
    public long getMaxWaitTime()

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java	2011-04-11 19:03:11 UTC (rev 111160)
@@ -113,15 +113,9 @@
    /** The checked out connections */
    private HashSet<ConnectionListener> checkedOut = new HashSet<ConnectionListener>();
 
-   /** Whether the pool has been started */
-   private AtomicBoolean started = new AtomicBoolean(false);
-
    /** Whether the pool has been shutdown */
    private AtomicBoolean shutdown = new AtomicBoolean(false);
 
-   /** the max connections ever checked out **/
-   private volatile int maxUsedConnections = 0;
-
    /** Statistics */
    private ManagedConnectionPoolStatisticsImpl statistics;
 
@@ -274,9 +268,7 @@
                   {
                      cl = cls.remove(clsSize - 1);
                      checkedOut.add(cl);
-                     int size = maxSize - permits.availablePermits();
-                     if (size > maxUsedConnections)
-                        maxUsedConnections = size;
+                     statistics.setMaxUsedCount(maxSize - permits.availablePermits());
                   }
                }
                if (cl != null)
@@ -347,17 +339,9 @@
                synchronized (cls)
                {
                   checkedOut.add(cl);
-                  int size = maxSize - permits.availablePermits();
-                  if (size > maxUsedConnections)
-                     maxUsedConnections = size;
+                  statistics.setMaxUsedCount(maxSize - permits.availablePermits());
                }
 
-               if (!started.getAndSet(true))
-               {
-                  if (poolConfiguration.getMinSize() > 0)
-                     PoolFiller.fillPool(this);
-               }
-
                if (trace)
                   log.trace("supplying new ManagedConnection: " + cl);
 

Modified: projects/jboss-jca/trunk/core/src/main/resources/poolstatistics.properties
===================================================================
--- projects/jboss-jca/trunk/core/src/main/resources/poolstatistics.properties	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/core/src/main/resources/poolstatistics.properties	2011-04-11 19:03:11 UTC (rev 111160)
@@ -2,6 +2,7 @@
 AverageBlockingTime=The average time spent blocking for a connection
 CreatedCount=The created count
 DestroyedCount=The destroyed count
+MaxUsedCount=The maximum number of connections used
 MaxWaitTime=The maximum wait time for a connection
 TimedOut=The timed out count
 TotalBlockingTime=The total blocking time

Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/pool/OnePoolTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/pool/OnePoolTestCase.java	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/pool/OnePoolTestCase.java	2011-04-11 19:03:11 UTC (rev 111160)
@@ -22,8 +22,6 @@
 package org.jboss.jca.core.connectionmanager.pool;
 
 import org.jboss.jca.core.api.connectionmanager.pool.PoolConfiguration;
-import org.jboss.jca.core.connectionmanager.ConnectionManagerFactory;
-import org.jboss.jca.core.connectionmanager.NoTxConnectionManager;
 import org.jboss.jca.core.connectionmanager.listener.ConnectionListener;
 import org.jboss.jca.core.connectionmanager.pool.mcp.ManagedConnectionPool;
 import org.jboss.jca.core.connectionmanager.pool.strategy.OnePool;

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-04-11 18:18:44 UTC (rev 111159)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/AbstractResourceAdapterDeployer.java	2011-04-11 19:03:11 UTC (rev 111160)
@@ -48,7 +48,6 @@
 import org.jboss.jca.core.connectionmanager.ConnectionManager;
 import org.jboss.jca.core.connectionmanager.ConnectionManagerFactory;
 import org.jboss.jca.core.connectionmanager.pool.api.Pool;
-import org.jboss.jca.core.connectionmanager.pool.api.Pool;
 import org.jboss.jca.core.connectionmanager.pool.api.PoolFactory;
 import org.jboss.jca.core.connectionmanager.pool.api.PoolStrategy;
 import org.jboss.jca.core.connectionmanager.pool.api.PrefillPool;



More information about the jboss-cvs-commits mailing list