[jboss-cvs] JBossAS SVN: r71783 - trunk/connector/src/main/org/jboss/resource/connectionmanager.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 8 05:54:44 EDT 2008


Author: adrian at jboss.org
Date: 2008-04-08 05:54:44 -0400 (Tue, 08 Apr 2008)
New Revision: 71783

Modified:
   trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java
   trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPoolMBean.java
   trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionPool.java
   trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java
Log:
Sync connection manager changes with jboss-4.2

Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java	2008-04-08 09:30:57 UTC (rev 71782)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java	2008-04-08 09:54:44 UTC (rev 71783)
@@ -25,6 +25,7 @@
 import java.security.PrivilegedAction;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import javax.management.Notification;
 import javax.management.NotificationFilter;
@@ -32,6 +33,7 @@
 import javax.management.ObjectName;
 import javax.resource.ResourceException;
 import javax.resource.spi.ConnectionRequestInfo;
+import javax.resource.spi.ManagedConnection;
 import javax.resource.spi.ManagedConnectionFactory;
 import javax.security.auth.Subject;
 import javax.transaction.Transaction;
@@ -162,6 +164,11 @@
       return stats;      
    }
    
+   public Object listUnderlyingNativeConnectionStatistics()
+   {
+       return poolingStrategy.listUnderlyingNativeConnectionStatistics();
+   }
+ 
    public ManagedConnectionPool getManagedConnectionPool()
    {
       return poolingStrategy;
@@ -969,11 +976,45 @@
             stat.setConnectionsInUse(internalPool.getMaxConnectionsInUseCount());
             stat.setMaxConnectionsInUse(internalPool.getMaxConnectionsInUseCount());
             stat.setTotalBlockTime(internalPool.getTotalBlockTime());
+            stat.setAverageBlockTime(internalPool.getAverageBlockTime());
+            stat.setMaxWaitTime(internalPool.getMaxWaitTime());
+            stat.setTotalTimedOut(internalPool.getTimedOut());
             subPoolStats.addSubPool(stat);
          }
 
          return (JBossStatistics)subPoolStats;
       }
+      
+      public Object listUnderlyingNativeConnectionStatistics()
+      {
+          String statistics = "";
+          for(Iterator iter = subPools.values().iterator(); iter.hasNext();)
+          {                      
+              SubPoolContext subContext = (SubPoolContext)iter.next();
+              InternalManagedConnectionPool internalPool = subContext.getSubPool();
+              Set cels = internalPool.getConnectionListeners();
+              for(Iterator celsIter = cels.iterator(); celsIter.hasNext();)
+              {
+                 ConnectionListener cl = (ConnectionListener) celsIter.next();
+                 ManagedConnection mc = cl.getManagedConnection();
+                 if (mc instanceof org.jboss.resource.statistic.JBossConnectionStatistics)
+                 {
+                    org.jboss.resource.statistic.JBossConnectionStatistics stats = (org.jboss.resource.statistic.JBossConnectionStatistics)mc;
+                    statistics += stats.listConnectionStats();
+                    if(statistics.startsWith("-1")){
+                      statistics = " ManagedConnetion in a Pool does not expose NativeConnectionStatistics !!!... ";
+                      break;
+                    }
+                 }
+                 else
+                 {
+                     statistics = mc + " does not implement org.jboss.resource.statistic.JBossConnectionStatistics , <br><font color='red'>So this Operation is Not available!!!</font> ";                       
+                     break;                      
+                 }
+              }
+          }   
+          return statistics;
+      }
    }
 
    /**

Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPoolMBean.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPoolMBean.java	2008-04-08 09:30:57 UTC (rev 71782)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPoolMBean.java	2008-04-08 09:54:44 UTC (rev 71783)
@@ -279,4 +279,10 @@
     */
    public void setUseFastFail(boolean useFastFail);
    
+   /**
+    * This will list the statistics from the underlying native Connection of the ManagedConnection 
+    * 
+    * @return underlying connection statistics
+    */
+   public Object listUnderlyingNativeConnectionStatistics(); 
 }

Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionPool.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionPool.java	2008-04-08 09:30:57 UTC (rev 71782)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/ManagedConnectionPool.java	2008-04-08 09:54:44 UTC (rev 71783)
@@ -111,4 +111,9 @@
     */
    void flush();
 
+   /**
+    *  @return the native connection statistics of underlying 
+    *  connection.
+    */
+   Object listUnderlyingNativeConnectionStatistics();
 }

Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java	2008-04-08 09:30:57 UTC (rev 71782)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java	2008-04-08 09:54:44 UTC (rev 71783)
@@ -305,6 +305,21 @@
       return -1;
    }
 
+   @Override
+   public void checkTransactionActive() throws RollbackException, SystemException
+   {
+      if (tm == null)
+         throw new IllegalStateException("No transaction manager: " + ccmName);
+      Transaction tx = tm.getTransaction();
+      if (tx != null)
+      {
+         int status = tx.getStatus();
+         // Only allow states that will actually succeed
+         if (status != Status.STATUS_ACTIVE && status != Status.STATUS_PREPARING && status != Status.STATUS_PREPARED && status != Status.STATUS_COMMITTING)
+            throw new RollbackException("Transaction " + tx + " cannot proceed " + TxUtils.getStatusAsString(status));
+      }
+   }
+
    protected void startService() throws Exception
    {
       if (transactionManagerService != null)




More information about the jboss-cvs-commits mailing list