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/03 21:47:48 UTC

svn commit: r581706 - in /geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor: MasterRemoteControl.java snapshot/SnapshotThread.java

Author: akulshreshtha
Date: Wed Oct  3 12:47:47 2007
New Revision: 581706

URL: http://svn.apache.org/viewvc?rev=581706&view=rev
Log:
GERONIMO-3493 Monitoring Patch by Viet

Modified:
    geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/MasterRemoteControl.java
    geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/snapshot/SnapshotThread.java

Modified: geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/MasterRemoteControl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/MasterRemoteControl.java?rev=581706&r1=581705&r2=581706&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/MasterRemoteControl.java (original)
+++ geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/MasterRemoteControl.java Wed Oct  3 12:47:47 2007
@@ -142,6 +142,15 @@
     }
     
     /**
+     * Returns the handle of an MEJB.
+     * 
+     * @return Handle of an MEJB
+     */
+    public static MEJB getMEJB() {
+        return mejb;
+    }
+    
+    /**
      * Changes the objectName's attrName's value to attrValue
      * 
      * @param objectName

Modified: geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/snapshot/SnapshotThread.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/snapshot/SnapshotThread.java?rev=581706&r1=581705&r2=581706&view=diff
==============================================================================
--- geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/snapshot/SnapshotThread.java (original)
+++ geronimo/sandbox/monitoring/mrc-server/mrc-ejb/src/main/java/org/apache/geronimo/monitor/snapshot/SnapshotThread.java Wed Oct  3 12:47:47 2007
@@ -23,8 +23,10 @@
 import java.util.Set;
 
 import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
+import org.apache.geronimo.j2ee.mejb.MEJB;
 import org.apache.geronimo.monitor.snapshot.SnapshotXMLBuilder;
 import org.apache.geronimo.monitor.MasterRemoteControl;
 
@@ -93,6 +95,8 @@
         if(mbeanNames.size() <= 0) {
             mbeanNames = getDefaultMBeanList();
         }
+        // turn on all stats in the list
+        setStatsOn(mbeanNames);
         // pause the thread from running every SNAPSHOT_DURATION seconds
         while(true && SNAPSHOT_DURATION != Long.MAX_VALUE) {
             try {
@@ -127,6 +131,33 @@
                 Thread.sleep(SNAPSHOT_DURATION);
             } catch(Exception e) {
                 e.printStackTrace();
+            }
+        }
+    }
+    
+    /**
+     * Turns all statistics on for each mbean in the list.
+     * 
+     * @param mbeanList
+     */
+    private void setStatsOn(ArrayList<String> mbeanList) {
+        MEJB mejb = MasterRemoteControl.getMEJB();
+        // for each mbean name in the list
+        for(int i = 0; i < mbeanList.size(); i++) {
+            // turn the statistics collection on
+            String methodName = "setStatsOn";
+            Object[] params = new Object[] { Boolean.TRUE };
+            String[] signatures = new String[] { "java.lang.Boolean" };
+            try {
+                ObjectName objName = new ObjectName(mbeanList.get(i));
+                mejb.invoke(objName, methodName, params, signatures);
+                System.out.println("Stats for " + mbeanList.get(i) + " was turned on.");
+            } catch(MalformedObjectNameException e) {
+                e.printStackTrace();
+            } catch(Exception e) {
+                // an exception will be thrown if the methodName is not found for this class,
+                // which is very possible.
+                System.out.println("Could not turn on stats for " + mbeanList.get(i));
             }
         }
     }