[jboss-cvs] JBoss Messaging SVN: r6420 - in trunk: src/main/org/jboss/messaging/core/messagecounter and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 14 12:08:07 EDT 2009


Author: jmesnil
Date: 2009-04-14 12:08:07 -0400 (Tue, 14 Apr 2009)
New Revision: 6420

Modified:
   trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java
   trunk/src/main/org/jboss/messaging/core/messagecounter/MessageCounterManager.java
   trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterManagerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
   trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java
Log:
management resources cleanup

* when stopping the management service, stop the message counter manager and *clear* it, otherwise the message counters will be kept in memory and they have a references to core queues object (through the QueueControls)
* start the message counter manager from the management service instead of the messaging server control (so that its lifecycle is contained within the management service class)

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-04-14 14:14:59 UTC (rev 6419)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-04-14 16:08:07 UTC (rev 6420)
@@ -119,8 +119,8 @@
 
    private MessagingServerControl managedServer;
 
-   private final MessageCounterManager messageCounterManager = new MessageCounterManagerImpl();
-
+   private final MessageCounterManager messageCounterManager;
+   
    private SimpleString managementNotificationAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS;
 
    private SimpleString managementAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS;
@@ -131,6 +131,8 @@
 
    private boolean started = false;
 
+   private boolean messageCounterEnabled;
+
    private boolean noticationsEnabled;
 
    private final Set<NotificationListener> listeners = new org.jboss.messaging.utils.ConcurrentHashSet<NotificationListener>();
@@ -139,13 +141,15 @@
 
    // Constructor ----------------------------------------------------
 
-   public ManagementServiceImpl(final MBeanServer mbeanServer, final boolean jmxManagementEnabled)
+   public ManagementServiceImpl(final MBeanServer mbeanServer, final boolean jmxManagementEnabled, final boolean messageCounterEnabled)
    {
       this.mbeanServer = mbeanServer;
       this.jmxManagementEnabled = jmxManagementEnabled;
+      this.messageCounterEnabled = messageCounterEnabled;
       registry = new HashMap<String, Object>();
       broadcaster = new NotificationBroadcasterSupport();
       noticationsEnabled = true;
+      messageCounterManager = new MessageCounterManagerImpl();
    }
 
    // Public --------------------------------------------------------
@@ -520,6 +524,12 @@
       replicationInvoker = new ReplicationOperationInvokerImpl(managementClusterPassword,
                                                                managementAddress,
                                                                managementRequestTimeout);
+      
+      if (messageCounterEnabled)
+      {
+         messageCounterManager.start();
+      }
+
       started = true;
    }
 
@@ -540,7 +550,15 @@
             mbeanServer.unregisterMBean(name);
          }
       }
+      
+      messageCounterManager.stop();
+      
+      messageCounterManager.resetAllCounters();
+      
+      messageCounterManager.resetAllCounterHistories();
 
+      messageCounterManager.clear();
+      
       replicationInvoker.stop();
 
       started = false;

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java	2009-04-14 14:14:59 UTC (rev 6419)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java	2009-04-14 16:08:07 UTC (rev 6420)
@@ -130,13 +130,8 @@
       this.messageCounterManager = messageCounterManager;
       this.broadcaster = broadcaster;
       this.queueFactory = queueFactory;
-
-      messageCounterEnabled = configuration.isMessageCounterEnabled();
-      if (messageCounterEnabled)
-      {
-         messageCounterManager.start();
-      }
       this.nodeID = server.getNodeID();
+      messageCounterEnabled = configuration.isMessageCounterEnabled();
    }
 
    // Public --------------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/messagecounter/MessageCounterManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/messagecounter/MessageCounterManager.java	2009-04-14 14:14:59 UTC (rev 6419)
+++ trunk/src/main/org/jboss/messaging/core/messagecounter/MessageCounterManager.java	2009-04-14 16:08:07 UTC (rev 6420)
@@ -34,6 +34,8 @@
 
    void stop();
 
+   void clear();
+
    void registerMessageCounter(String name, MessageCounter counter);
 
    MessageCounter unregisterMessageCounter(String name);

Modified: trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterManagerImpl.java	2009-04-14 14:14:59 UTC (rev 6419)
+++ trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterManagerImpl.java	2009-04-14 16:08:07 UTC (rev 6420)
@@ -106,6 +106,11 @@
       started = false;
    }
    
+   public synchronized void clear()
+   { 
+      messageCounters.clear();     
+   }   
+   
    public synchronized void reschedule(long newPeriod)
    {
       boolean wasStarted = this.started;

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2009-04-14 14:14:59 UTC (rev 6419)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2009-04-14 16:08:07 UTC (rev 6420)
@@ -496,7 +496,7 @@
          return;
       }
 
-      managementService = new ManagementServiceImpl(mbeanServer, configuration.isJMXManagementEnabled());
+      managementService = new ManagementServiceImpl(mbeanServer, configuration.isJMXManagementEnabled(), configuration.isMessageCounterEnabled());
 
       remotingService = new RemotingServiceImpl(configuration, this, managementService);
       

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java	2009-04-14 14:14:59 UTC (rev 6419)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/paging/PageCrashTest.java	2009-04-14 16:08:07 UTC (rev 6420)
@@ -228,7 +228,7 @@
    {
       JBMSecurityManager securityManager = new JBMSecurityManagerImpl();
 
-      ManagementService managementService = new ManagementServiceImpl(ManagementFactory.getPlatformMBeanServer(), false);
+      ManagementService managementService = new ManagementServiceImpl(ManagementFactory.getPlatformMBeanServer(), false, false);
       
       MessagingServer server = new FailingMessagingServerImpl(configuration, securityManager);
 




More information about the jboss-cvs-commits mailing list