You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ak...@apache.org on 2007/10/17 15:39:12 UTC

svn commit: r585497 - in /geronimo/server/trunk/modules: geronimo-core/src/main/java/org/apache/geronimo/pool/ geronimo-management/src/main/java/org/apache/geronimo/management/stats/ geronimo-transaction/src/main/java/org/apache/geronimo/transaction/ma...

Author: akulshreshtha
Date: Wed Oct 17 06:39:11 2007
New Revision: 585497

URL: http://svn.apache.org/viewvc?rev=585497&view=rev
Log:
GERONIMO-3250 Make TransactionManager a Statistics Provider. Patch by Viet H. Nguyen

Modified:
    geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java
    geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/stats/JTAStatsImpl.java
    geronimo/server/trunk/modules/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManagerGBean.java

Modified: geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java?rev=585497&r1=585496&r2=585497&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java (original)
+++ geronimo/server/trunk/modules/geronimo-core/src/main/java/org/apache/geronimo/pool/ThreadPool.java Wed Oct 17 06:39:11 2007
@@ -78,6 +78,9 @@
 
         executor = p;
         this.classLoader = classLoader;
+
+        // set pool stats start time
+        stats.setStartTime();
     }
 
     public String getName() {
@@ -118,11 +121,21 @@
         } else {
             stats.prepareConsumers(Collections.EMPTY_MAP);
         }
+        // set last sapmle time
+        stats.setLastSampleTime();
         return stats;
     }
 
+    /**
+     * Reset all statistics in PoolStatsImpl object
+     */
     public void resetStats() {
-        // TODO
+        stats.threadsInUse.setLowerBound(0);
+        stats.threadsInUse.setUpperBound(0);
+        stats.threadsInUse.setCurrent(0);
+        stats.threadsInUse.setLowWaterMark(0);
+        stats.threadsInUse.setHighWaterMark(0);
+        stats.setStartTime();
     }
 
     public static class PoolStatsImpl extends StatsImpl implements ThreadPoolStats {

Modified: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/stats/JTAStatsImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/stats/JTAStatsImpl.java?rev=585497&r1=585496&r2=585497&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/stats/JTAStatsImpl.java (original)
+++ geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/stats/JTAStatsImpl.java Wed Oct 17 06:39:11 2007
@@ -54,4 +54,16 @@
     public CountStatistic getRolledbackCount() {
         return rolledbackCount;
     }
+
+    public CountStatisticImpl getActiveCountImpl() {
+        return activeCount;
+    }
+
+    public CountStatisticImpl getCommittedCountImpl() {
+        return committedCount;
+    }
+
+    public CountStatisticImpl getRolledbackCountImpl() {
+        return rolledbackCount;
+    }
 }

Modified: geronimo/server/trunk/modules/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManagerGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManagerGBean.java?rev=585497&r1=585496&r2=585497&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManagerGBean.java (original)
+++ geronimo/server/trunk/modules/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManagerGBean.java Wed Oct 17 06:39:11 2007
@@ -17,19 +17,23 @@
 
 package org.apache.geronimo.transaction.manager;
 
+import javax.management.j2ee.statistics.Stats;
 import javax.transaction.xa.XAException;
+import org.apache.geronimo.management.stats.JTAStatsImpl;
+import org.apache.geronimo.management.StatisticsProvider;
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 
 /**
- * Used to provide the GBean metadata for the GeronimoTransactionManager class.  This adds XATerminator and XAWork
- * functionality to the basic transaction manager.
+ * Used to provide the GBean metadata for the GeronimoTransactionManager class
  *
  * @version $Rev$ $Date$
  */
-public class GeronimoTransactionManagerGBean extends GeronimoTransactionManager {
+public class GeronimoTransactionManagerGBean extends GeronimoTransactionManager implements StatisticsProvider {
+
+    JTAStatsImpl stats = new JTAStatsImpl();
 
     /**
      * TODO NOTE!!! this should be called in an unspecified transaction context, but we cannot enforce this restriction!
@@ -42,6 +46,34 @@
     }
 
 
+    public void resetStats() {
+        stats.setStartTime();
+        super.resetStatistics();
+    }
+
+    public Stats getStats() {
+        try {
+            stats.getActiveCountImpl().setCount(super.getActiveCount());
+        } catch(Exception e) {
+
+        }
+        stats.getCommittedCountImpl().setCount(super.getTotalCommits());
+        stats.getRolledbackCountImpl().setCount(super.getTotalRollbacks());
+        stats.setLastSampleTime();
+        return stats;
+    }
+
+    public boolean isStateManageable() {
+        return false;
+    }
+
+    public boolean isStatisticsProvider() {
+        return true;
+    }
+
+    public boolean isEventProvider() {
+        return false;
+    }
 
     public static final GBeanInfo GBEAN_INFO;