You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2014/11/06 15:25:35 UTC

svn commit: r1637117 - /qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java

Author: kwall
Date: Thu Nov  6 14:25:34 2014
New Revision: 1637117

URL: http://svn.apache.org/r1637117
Log:
QPID-6216: [Java Broker] HA: On conditions causing environment restart, notify the BDBHAVHN as early as possible that it is no longer master

Modified:
    qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java

Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1637117&r1=1637116&r2=1637117&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java Thu Nov  6 14:25:34 2014
@@ -59,6 +59,7 @@ import com.sleepycat.je.SequenceConfig;
 import com.sleepycat.je.Transaction;
 import com.sleepycat.je.TransactionConfig;
 import com.sleepycat.je.rep.*;
+import com.sleepycat.je.rep.impl.node.NameIdPair;
 import com.sleepycat.je.rep.util.DbPing;
 import com.sleepycat.je.rep.util.ReplicationGroupAdmin;
 import com.sleepycat.je.rep.utilint.HostPortPair;
@@ -943,13 +944,28 @@ public class ReplicatedEnvironmentFacade
     {
         LOGGER.info("Restarting environment");
 
+        StateChangeListener stateChangeListener = _stateChangeListener.get();
+
+        if (stateChangeListener != null)
+        {
+            _stateChangeExecutor.submit(new Runnable()
+            {
+                @Override
+                public void run()
+                {
+                    StateChangeEvent detached = new StateChangeEvent(ReplicatedEnvironment.State.DETACHED, NameIdPair.NULL);
+                    stateChanged(detached);
+                }
+            });
+        }
+
         closeEnvironmentOnRestart();
 
         createEnvironment(false);
 
         registerAppStateMonitorIfPermittedNodesSpecified();
 
-        if (_stateChangeListener.get() != null)
+        if (stateChangeListener != null)
         {
             _environment.setStateChangeListener(this);
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org