[jboss-cvs] JBoss Messaging SVN: r2405 - in trunk/src: etc/server/default/deploy and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Feb 23 18:34:12 EST 2007


Author: timfox
Date: 2007-02-23 18:34:12 -0500 (Fri, 23 Feb 2007)
New Revision: 2405

Modified:
   trunk/src/etc/aop-messaging-client.xml
   trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml
   trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml
   trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml
   trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml
   trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml
   trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java
   trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java
   trunk/src/main/org/jboss/jms/server/destination/QueueService.java
   trunk/src/main/org/jboss/jms/server/destination/TopicService.java
   trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
   trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java
Log:
bunch of failover fixes



Modified: trunk/src/etc/aop-messaging-client.xml
===================================================================
--- trunk/src/etc/aop-messaging-client.xml	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/aop-messaging-client.xml	2007-02-23 23:34:12 UTC (rev 2405)
@@ -47,7 +47,6 @@
 
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionDelegate}(..))">
       <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
-      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>               
    </bind>  
@@ -90,6 +89,9 @@
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createSessionDelegate(..))">
       <advice name="handleCreateSessionDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
    </bind>
+   <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.server.endpoint.ConnectionEndpoint}(..))">
+      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>         
+   </bind> 
 
    <!--
         Session Stack
@@ -97,7 +99,6 @@
 
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionDelegate}(..))">
       <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
-      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>       
    </bind>
@@ -188,6 +189,9 @@
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBrowserDelegate(..))">
       <advice name="handleCreateBrowserDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
    </bind>
+   <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.server.endpoint.SessionEndpoint}(..))">
+      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>         
+   </bind> 
    
    <!--
         Consumer Stack
@@ -195,7 +199,6 @@
 
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerDelegate}(..))">
       <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
-      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>          
    </bind>       
@@ -223,6 +226,9 @@
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getMessageSelector())">
       <advice name="handleGetMessageSelector" aspect="org.jboss.jms.client.container.ConsumerAspect"/>         
    </bind>   
+   <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.server.endpoint.ConsumerEndpoint}(..))">
+      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>         
+   </bind>    
 
    
    <!--
@@ -230,7 +236,6 @@
    -->   
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->$implementing{org.jboss.jms.delegate.ProducerDelegate}(..))">
       <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
-      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>  
    </bind>        
@@ -278,14 +283,14 @@
    </bind>
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->close())">
       <advice name="handleClose" aspect="org.jboss.jms.client.container.ProducerAspect"/>
-   </bind>     
+   </bind>    
+   <!-- Producers never go to the server - so no need for a failover interceptor -->   
 
    <!--
         Browser Stack
    -->
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserDelegate}(..))">
       <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
-      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
       <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
    </bind>      
@@ -295,4 +300,7 @@
    <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->hasNextMessage())">
       <advice name="handleHasNextMessage" aspect="org.jboss.jms.client.container.BrowserAspect"/>
    </bind>        
+   <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.server.endpoint.BrowserEndpoint}(..))">
+      <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>         
+   </bind> 
 </aop>
\ No newline at end of file

Modified: trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml	2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
       <attribute name="StateTimeout">5000</attribute>
       <attribute name="CastTimeout">5000</attribute>
       <attribute name="StatsSendPeriod">10000</attribute>
-      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
       <attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
 
 

Modified: trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml	2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
       <attribute name="StateTimeout">5000</attribute>
       <attribute name="CastTimeout">5000</attribute>
       <attribute name="StatsSendPeriod">10000</attribute>
-      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
       <attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
 
 

Modified: trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml	2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
       <attribute name="StateTimeout">5000</attribute>
       <attribute name="CastTimeout">5000</attribute>
       <attribute name="StatsSendPeriod">10000</attribute>
-      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
       <attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
 
 

Modified: trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml	2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
       <attribute name="StateTimeout">5000</attribute>
       <attribute name="CastTimeout">5000</attribute>
       <attribute name="StatsSendPeriod">10000</attribute>
-      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
       <attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
 
 

Modified: trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml	2007-02-23 23:34:12 UTC (rev 2405)
@@ -83,7 +83,7 @@
       <attribute name="StateTimeout">5000</attribute>
       <attribute name="CastTimeout">5000</attribute>
       <attribute name="StatsSendPeriod">10000</attribute>
-      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+      <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
       <attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
 
 

Modified: trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java	2007-02-23 23:34:12 UTC (rev 2405)
@@ -68,8 +68,7 @@
    }
 
    public Object invoke(Invocation invocation) throws Throwable
-   {
-
+   {      
       // maintain a reference to connectionState, so we can ensure we have already tested for fcc.
       // As fcc can be null on non-clustered connections we have to cache connectionState instead
       if (connectionState == null)
@@ -121,17 +120,17 @@
       catch (MessagingNetworkFailureException e)
       {
          log.debug(this + " detected network failure, putting " + methodName +
-            "() on hold until failover completes");
-         
+         "() on hold until failover completes");
+      
          fcc.failureDetected(e, this, remotingConnection);
          
          log.debug(this + " resuming " + methodName + "()");
-
+      
          Object target = invocation.getTargetObject();
          
          // Set retry flag as true on send & sendTransaction
          // more details at http://jira.jboss.org/jira/browse/JBMESSAGING-809
-
+      
          if (methodName.equals("send") &&
              target instanceof ClientSessionDelegate)
          {
@@ -151,7 +150,7 @@
          }
 
          return invocation.invokeNext();
-      }      
+      } 
       catch (Throwable e)
       {
          // not failover-triggering, rethrow
@@ -162,7 +161,7 @@
          valve.leave();
       }
    }
-
+   
    // Public ---------------------------------------------------------------------------------------
 
    public String toString()

Modified: trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java	2007-02-23 23:34:12 UTC (rev 2405)
@@ -209,6 +209,15 @@
       {
          return new MessagingNetworkFailureException((Exception)t);
       }
+//      else if (t instanceof Exception && t.getMessage().startsWith("Can not make remoting client invocation"))
+//      {
+//
+//         log.info("********** caught exception ", t);
+//            
+//         //FIXME Temporary HACK until http://jira.jboss.org/jira/browse/JBMESSAGING-891 is
+//         //fixed
+//         return new MessagingNetworkFailureException((Exception)t);
+//      }
       else         
       {
          log.error("Failed", t);

Modified: trunk/src/main/org/jboss/jms/server/destination/QueueService.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/QueueService.java	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/server/destination/QueueService.java	2007-02-23 23:34:12 UTC (rev 2405)
@@ -7,6 +7,8 @@
 package org.jboss.jms.server.destination;
 
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 import javax.jms.IllegalStateException;
@@ -20,6 +22,7 @@
 import org.jboss.messaging.core.local.PagingFilteredQueue;
 import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
 import org.jboss.messaging.core.plugin.postoffice.Binding;
+import org.jboss.messaging.core.plugin.postoffice.cluster.FailedOverQueue;
 import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
 
 /**
@@ -71,26 +74,53 @@
          // Binding must be added before destination is registered in JNDI otherwise the user could
          // get a reference to the destination and use it while it is still being loaded. Also,
          // binding might already exist.
-            
-         Binding binding = postOffice.getBindingForQueueName(destination.getName());
          
-         PagingFilteredQueue queue;
+         JMSCondition topicCond = new JMSCondition(true, destination.getName());
          
-         if (binding != null)
-         {     
-            queue = (PagingFilteredQueue)binding.getQueue();
-                
-            queue.setPagingParams(destination.getFullSize(),
-                                  destination.getPageSize(),
-                                  destination.getDownCacheSize());
-            queue.load();
+         // There may be many bindings since there maybe failed over queues
+         Collection bindings = postOffice.getBindingsForCondition(topicCond);
+         Iterator iter = bindings.iterator();
+         
+         PagingFilteredQueue queue = null;
+         
+         while (iter.hasNext())
+         {
+            Binding binding = (Binding)iter.next();
             
-            // Must be done after load
-            queue.setMaxSize(destination.getMaxSize());
-            queue.activate();
+            PagingFilteredQueue q = (PagingFilteredQueue)binding.getQueue();
+            
+            q.setPagingParams(destination.getFullSize(),
+                     destination.getPageSize(),
+                     destination.getDownCacheSize());
+            q.load();
+            
+            if (q instanceof FailedOverQueue && queue.getMessageCount() == 0)
+            {
+               //If there are no refs in the queue we can safely delete it
+               //We don't want empty queues from previous failed nodes clogging up
+               //the database
+               
+               //TODO - commented out for now
+               
+//               ClusteredPostOffice cpo = (ClusteredPostOffice)postOffice;
+//                  
+//               cpo.unbindClusteredQueue(q.getName());               
+            }
+            else
+            {            
+               // Must be done after load
+               q.setMaxSize(destination.getMaxSize());
+               q.activate();
+               
+               if (!(queue instanceof FailedOverQueue))
+               {
+                  queue = q;
+               }
+            }            
          }
-         else
-         {                                 
+            
+         if (queue == null)
+         {
             // Create a new queue
             
             JMSCondition queueCond = new JMSCondition(true, destination.getName());

Modified: trunk/src/main/org/jboss/jms/server/destination/TopicService.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/TopicService.java	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/server/destination/TopicService.java	2007-02-23 23:34:12 UTC (rev 2405)
@@ -18,7 +18,9 @@
 import org.jboss.jms.util.MessageQueueNameHelper;
 import org.jboss.jms.util.XMLUtil;
 import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
 import org.jboss.messaging.core.plugin.postoffice.Binding;
+import org.jboss.messaging.core.plugin.postoffice.cluster.FailedOverQueue;
 
 /**
  * A deployable JBoss Messaging topic.
@@ -86,28 +88,44 @@
             queue.setPagingParams(destination.getFullSize(), destination.getPageSize(), destination.getDownCacheSize());
             
             queue.load();
-            queue.activate();  
             
-            //Must be done after load
-            queue.setMaxSize(destination.getMaxSize());  
-            
-            //Create a counter
-            String counterName = SUBSCRIPTION_MESSAGECOUNTER_PREFIX + queue.getName();
-            
-            String subName = MessageQueueNameHelper.createHelper(queue.getName()).getSubName();
-            
-            int dayLimitToUse = destination.getMessageCounterHistoryDayLimit();
-            if (dayLimitToUse == -1)
+            if (queue instanceof FailedOverQueue && queue.getMessageCount() == 0)
             {
-               //Use override on server peer
-               dayLimitToUse = serverPeer.getDefaultMessageCounterHistoryDayLimit();
+               //If there are no refs in the queue we can safely delete it
+               //We don't want empty queues from previous failed nodes clogging up
+               //the database
+               
+               //Commented out for now
+               
+//               ClusteredPostOffice cpo = (ClusteredPostOffice)postOffice;
+//               
+//               cpo.unbindClusteredQueue(queue.getName());
             }
-            
-            MessageCounter counter =
-               new MessageCounter(counterName, subName, queue, true, true,
-                                  dayLimitToUse);
-            
-            serverPeer.getMessageCounterManager().registerMessageCounter(counterName, counter);
+            else
+            {
+               queue.activate();  
+               
+               //Must be done after load
+               queue.setMaxSize(destination.getMaxSize());  
+               
+               //Create a counter
+               String counterName = SUBSCRIPTION_MESSAGECOUNTER_PREFIX + queue.getName();
+               
+               String subName = MessageQueueNameHelper.createHelper(queue.getName()).getSubName();
+               
+               int dayLimitToUse = destination.getMessageCounterHistoryDayLimit();
+               if (dayLimitToUse == -1)
+               {
+                  //Use override on server peer
+                  dayLimitToUse = serverPeer.getDefaultMessageCounterHistoryDayLimit();
+               }
+               
+               MessageCounter counter =
+                  new MessageCounter(counterName, subName, queue, true, true,
+                                     dayLimitToUse);
+               
+               serverPeer.getMessageCounterManager().registerMessageCounter(counterName, counter);
+            }   
          }
 
          dm.registerDestination(destination);

Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java	2007-02-23 23:34:12 UTC (rev 2405)
@@ -598,12 +598,13 @@
    public void putReplicantLocally(int originatorNodeID, Serializable key, Serializable replicant)
       throws Exception
    {
-
+      Map m = null;
+      
       synchronized (replicatedData)
       {
          log.debug(this + " puts replicant locally: " + key + "->" + replicant);
 
-         Map m = (Map)replicatedData.get(key);
+         m = (Map)replicatedData.get(key);
 
          if (m == null)
          {
@@ -614,10 +615,10 @@
 
          m.put(new Integer(originatorNodeID), replicant);
 
-         notifyListeners(key, m, true, originatorNodeID);
-
          if (trace) { log.trace(this + " putReplicantLocally completed"); }
       }
+      
+      notifyListeners(key, m, true, originatorNodeID);
    }
 
    /**
@@ -625,11 +626,13 @@
     */
    public boolean removeReplicantLocally(int originatorNodeID, Serializable key) throws Exception
    {
+      Map m = null;
+      
       synchronized (replicatedData)
       {
          if (trace) { log.trace(this + " removes " + originatorNodeID + "'s replicant locally for key " + key); }
 
-         Map m = (Map)replicatedData.get(key);
+         m = (Map)replicatedData.get(key);
 
          if (m == null)
          {
@@ -647,10 +650,11 @@
          {
             replicatedData.remove(key);
          }
-         notifyListeners(key, m, false, originatorNodeID);
+      }
+      
+      notifyListeners(key, m, false, originatorNodeID);
 
-         return true;
-      }
+      return true;
    }
 
    public void routeFromCluster(org.jboss.messaging.core.message.Message message,
@@ -1740,10 +1744,12 @@
          lock.writeLock().release();
       }
 
+      Map toNotify = new HashMap();
+      
       synchronized (replicatedData)
       {
          // We need to remove any replicant data for the node. This includes the node-address info.
-         for(Iterator i = replicatedData.entrySet().iterator(); i.hasNext(); )
+         for (Iterator i = replicatedData.entrySet().iterator(); i.hasNext(); )
          {
             Map.Entry entry = (Map.Entry)i.next();
             String key = (String)entry.getKey();
@@ -1756,9 +1762,19 @@
                i.remove();
             }
 
-            notifyListeners(key, replicants, false, nodeToRemove.intValue());
+            toNotify.put(key, replicants);           
          }
       }
+      
+      //Notify outside the lock to prevent deadlock
+      
+      for (Iterator i = toNotify.entrySet().iterator(); i.hasNext(); )
+      {
+         Map.Entry entry = (Map.Entry)i.next();
+         String key = (String)entry.getKey();
+         Map replicants = (Map)entry.getValue();
+         notifyListeners(key, replicants, false, nodeToRemove.intValue());
+      }
    }
 
    /**
@@ -2153,6 +2169,8 @@
                }
 
                ClusteredQueue queue = (ClusteredQueue)binding.getQueue();
+               
+               log.info("queue is:" + queue.getName());
 
                // Sanity check
                if (queue.isLocal())

Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java	2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java	2007-02-23 23:34:12 UTC (rev 2405)
@@ -70,8 +70,12 @@
          throw new IllegalStateException("Already failing over for node " + currentlyFailingOverForNode);
       }
 
+      //Remove from failedOverNodes in case its failed over for the same node before      
+      failedOverForNodes.remove(nodeID);
+      
       currentlyFailingOverForNode = nodeID.intValue();
-      failingOver = true;
+      
+      failingOver = true; 
    }
 
    public void finishFailingOver()




More information about the jboss-cvs-commits mailing list