[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