[jboss-cvs] JBoss Messaging SVN: r7713 - trunk/examples/soak/reconnect/src/org/jboss/jms/soak/example/reconnect.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Aug 12 08:20:34 EDT 2009


Author: jmesnil
Date: 2009-08-12 08:20:34 -0400 (Wed, 12 Aug 2009)
New Revision: 7713

Modified:
   trunk/examples/soak/reconnect/src/org/jboss/jms/soak/example/reconnect/ServerDump.java
Log:
added JMS queue infos when dumping the server

Modified: trunk/examples/soak/reconnect/src/org/jboss/jms/soak/example/reconnect/ServerDump.java
===================================================================
--- trunk/examples/soak/reconnect/src/org/jboss/jms/soak/example/reconnect/ServerDump.java	2009-08-12 09:59:15 UTC (rev 7712)
+++ trunk/examples/soak/reconnect/src/org/jboss/jms/soak/example/reconnect/ServerDump.java	2009-08-12 12:20:34 UTC (rev 7713)
@@ -27,14 +27,19 @@
 import java.lang.management.MemoryUsage;
 import java.lang.management.ThreadMXBean;
 import java.util.Date;
+import java.util.Iterator;
+import java.util.Set;
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.logging.Logger;
 
 import javax.management.MBeanServerInvocationHandler;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
 
 import org.jboss.messaging.core.management.MessagingServerControl;
 import org.jboss.messaging.core.management.ObjectNames;
+import org.jboss.messaging.jms.server.management.JMSQueueControl;
 
 /**
  * A MemoryDump
@@ -80,17 +85,18 @@
                                                                                                                               ObjectNames.getMessagingServerObjectName(),
                                                                                                                               MessagingServerControl.class,
                                                                                                                               false);
-               String info          = "\n**** Server Dump ****\n";
+               String info =         "\n**** Server Dump ****\n";
                info += String.format("date:            %s\n", new Date());
                info += String.format("heap memory:     used=%s, max=%s\n",
-                                 sizeof(heapMemory.getUsed()),
-                                 sizeof(heapMemory.getMax()));
+                                     sizeof(heapMemory.getUsed()),
+                                     sizeof(heapMemory.getMax()));
                info += String.format("non-heap memory: used=%s, max=%s\n",
-                                 sizeof(nonHeapMemory.getUsed()),
-                                 sizeof(nonHeapMemory.getMax()));
+                                     sizeof(nonHeapMemory.getUsed()),
+                                     sizeof(nonHeapMemory.getMax()));
                info += String.format("# of thread:     %d\n", threadMXBean.getThreadCount());
                info += String.format("# of conns:      %d\n", messagingServer.getConnectionCount());
-               info +=               "********************\n";
+               info += appendQueuesInfo();
+               info += "********************\n";
                log.info(info);
             }
             catch (Exception e)
@@ -98,6 +104,30 @@
                e.printStackTrace();
             }
          }
+
+         private String appendQueuesInfo() throws Exception
+         {
+            String info = "JMS queues:\n";
+
+            ObjectName query = ObjectName.getInstance("org.jboss.messaging:module=JMS,type=Queue,*");
+            Set names = ManagementFactory.getPlatformMBeanServer().queryNames(query, null);
+            for (Iterator iterator = names.iterator(); iterator.hasNext();)
+            {
+               ObjectName on = (ObjectName)iterator.next();
+               JMSQueueControl queue = (JMSQueueControl)MBeanServerInvocationHandler.newProxyInstance(ManagementFactory.getPlatformMBeanServer(),
+                                                                                                      on,
+                                                                                                      JMSQueueControl.class,
+                                                                                                      false);
+               info += String.format("\t%s: delivering %s msgs to %s consumers (%s msgs in memory, %s added)\n",
+                                     queue.getName(),
+                                     queue.getDeliveringCount(),
+                                     queue.getConsumerCount(),
+                                     queue.getMessageCount(),
+                                     queue.getMessagesAdded());
+            }
+
+            return info;
+         }
       };
    }
 




More information about the jboss-cvs-commits mailing list