diff options
| author | Keith Wall <kwall@apache.org> | 2014-11-06 14:25:34 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-11-06 14:25:34 +0000 |
| commit | cf5cb805e3b72258a0d4e2ac92d6c54a5aa9ca28 (patch) | |
| tree | 8bd94db7bc0d69c3985fed2b4f8effcb93d83270 /qpid/java/bdbstore | |
| parent | 38ac6f471254152c4026769023de49906f434eec (diff) | |
| download | qpid-python-cf5cb805e3b72258a0d4e2ac92d6c54a5aa9ca28.tar.gz | |
QPID-6216: [Java Broker] HA: On conditions causing environment restart, notify the BDBHAVHN as early as possible that it is no longer master
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1637117 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore')
| -rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java index 898c166c7a..675707d4ec 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java @@ -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 implements EnvironmentFacade, StateChan { 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); } |
