[jboss-cvs] JBossAS SVN: r69813 - branches/Branch_4_2/connector/src/main/org/jboss/resource/connectionmanager.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 13 04:44:12 EST 2008
Author: vicky.kak at jboss.com
Date: 2008-02-13 04:44:12 -0500 (Wed, 13 Feb 2008)
New Revision: 69813
Modified:
branches/Branch_4_2/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java
Log:
JBAS-5210 changes.
Modified: branches/Branch_4_2/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java
===================================================================
--- branches/Branch_4_2/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java 2008-02-13 09:39:54 UTC (rev 69812)
+++ branches/Branch_4_2/connector/src/main/org/jboss/resource/connectionmanager/JBossManagedConnectionPool.java 2008-02-13 09:44:12 UTC (rev 69813)
@@ -42,6 +42,14 @@
import org.jboss.mx.util.JMXExceptionDecoder;
import org.jboss.resource.JBossResourceException;
import org.jboss.resource.connectionmanager.InternalManagedConnectionPool.PoolParams;
+import org.jboss.resource.statistic.JBossStatistics;
+import org.jboss.resource.statistic.StatisticsReporter;
+import org.jboss.resource.statistic.formatter.StatisticsFormatter;
+import org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter;
+import org.jboss.resource.statistic.pool.JBossManagedConnectionPoolStatistics;
+import org.jboss.resource.statistic.pool.JBossSubPoolStatistics;
+import org.jboss.resource.statistic.pool.ManagedConnectionPoolStatistics;
+
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.tm.TransactionLocal;
@@ -85,12 +93,63 @@
/** Whether to use separate pools for transactional and non-transaction use */
private boolean noTxSeparatePools;
+ /** The statisticsFormatter
+ *
+ * */
+ private String statisticsFormatter;
+
private String poolJndiName;
public JBossManagedConnectionPool()
{
}
+ public Object listFormattedSubPoolStatistics(String formatClassName)
+ {
+ final JBossStatistics stats = (JBossStatistics)listStatistics();
+ final ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Class clazz;
+ StatisticsFormatter formatter = null;
+
+ try
+ {
+ clazz = cl.loadClass(formatClassName);
+ formatter = (StatisticsFormatter)clazz.newInstance();
+ }
+ catch (Exception e)
+ {
+ log.warn("warn: statistics formatter not found, setting to " + statisticsFormatter);
+ formatter = new JBossDefaultSubPoolStatisticFormatter();
+
+ }
+ ManagedConnectionPoolStatistics poolStats = (ManagedConnectionPoolStatistics)stats;
+ return formatter.formatStatistics(stats);
+ }
+
+ public Object listFormattedSubPoolStatistics()
+ {
+
+ Object formatted = listFormattedSubPoolStatistics(statisticsFormatter);
+ return formatted;
+ }
+
+ public Object listStatistics()
+ {
+ ManagedConnectionPoolStatistics stats = null;
+
+ if (poolingStrategy instanceof StatisticsReporter)
+ {
+
+ StatisticsReporter reporter = (StatisticsReporter) poolingStrategy;
+ stats = (ManagedConnectionPoolStatistics)reporter.listStatistics();
+ stats.setCriteria(getCriteria());
+ stats.setName(getManagedConnectionFactoryName().toString());
+
+ }
+
+ return stats;
+ }
+
public ManagedConnectionPool getManagedConnectionPool()
{
return poolingStrategy;
@@ -283,6 +342,16 @@
return "JBossManagedConnectionPool";
}
+ public String getStatisticsFormatter()
+ {
+ return statisticsFormatter;
+ }
+
+ public void setStatisticsFormatter(String statisticsFormatter)
+ {
+ this.statisticsFormatter = statisticsFormatter;
+ }
+
public String getPoolJndiName()
{
return this.poolJndiName;
@@ -406,7 +475,7 @@
/**
* The base pool implementation
*/
- public abstract static class BasePool implements ManagedConnectionPool, PreFillPoolSupport
+ public abstract static class BasePool implements ManagedConnectionPool, StatisticsReporter, PreFillPoolSupport
{
/** The subpools */
private final Map subPools = new ConcurrentReaderHashMap();
@@ -843,6 +912,37 @@
log.trace(toLog);
}
}
+
+ public JBossStatistics listStatistics()
+ {
+ final ManagedConnectionPoolStatistics subPoolStats = new JBossManagedConnectionPoolStatistics(subPools.size());
+
+ subPoolStats.setBlockingTimeout(poolParams.blockingTimeout);
+ subPoolStats.setIdleTimeout(poolParams.idleTimeout);
+ subPoolStats.setMax(poolParams.maxSize);
+ subPoolStats.setMin(poolParams.minSize);
+ subPoolStats.setPrefill(poolParams.prefill);
+ subPoolStats.setNoTxnSeperatePool(noTxSeparatePools);
+
+ for(Iterator iter = subPools.values().iterator(); iter.hasNext();)
+ {
+ JBossSubPoolStatistics stat = new JBossSubPoolStatistics();
+ SubPoolContext subContext = (SubPoolContext)iter.next();
+ Boolean trackByTxn = (subContext.getTrackByTx() != null) ? Boolean.TRUE : Boolean.FALSE;
+ stat.setTrackByTxn(trackByTxn);
+ final InternalManagedConnectionPool internalPool = subContext.getSubPool();
+ stat.setAvailableConnections(internalPool.getAvailableConnections());
+ stat.setConnectionsDestroyed(internalPool.getConnectionDestroyedCount());
+ stat.setConnectionsInUse(internalPool.getConnectionInUseCount());
+ 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;
+ }
}
/**
More information about the jboss-cvs-commits
mailing list