diff options
author | Keith Wall <kwall@apache.org> | 2014-08-10 20:51:35 +0000 |
---|---|---|
committer | Keith Wall <kwall@apache.org> | 2014-08-10 20:51:35 +0000 |
commit | f2645184bedbf756eda741f121224e95f5fc8fba (patch) | |
tree | 79097fa221a4101930371a8101ccf61de9090886 /qpid/java | |
parent | a3323bec5e5eb984eed673ee5f2471939ad3abe0 (diff) | |
download | qpid-python-f2645184bedbf756eda741f121224e95f5fc8fba.tar.gz |
QPID-5983: [Java Broker] BDB HA: Reset role to DETACHED when BDB HA VHN is stopped.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1617158 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java index 83a2054793..899cf6606e 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java @@ -71,7 +71,6 @@ import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironment import org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory; import org.apache.qpid.server.store.berkeleydb.replication.ReplicationGroupListener; import org.apache.qpid.server.util.ServerScopedRuntimeException; -import org.apache.qpid.server.virtualhost.berkeleydb.BDBHAVirtualHost; import org.apache.qpid.server.virtualhost.berkeleydb.BDBHAVirtualHostImpl; import org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode; import org.codehaus.jackson.map.ObjectMapper; @@ -324,7 +323,13 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtu } finally { - stopEnvironment(); + closeEnvironment(); + + // closing the environment does not cause a state change. Adjust the role + // so that our observers will see DETACHED rather than our previous role in the group. + ReplicatedEnvironment.State detached = ReplicatedEnvironment.State.DETACHED; + _lastReplicatedEnvironmentState.set(detached); + attributeSet(ROLE, _role, detached); //Perhaps, having STOPPED operational logging could be sufficient. However, on START we still will be seeing 2 logs: ATTACHED and STARTED getEventLogger().message(getVirtualHostNodeLogSubject(), HighAvailabilityMessages.DETACHED(getName(), getGroupName())); @@ -345,7 +350,7 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtu } } - private void stopEnvironment() + private void closeEnvironment() { ReplicatedEnvironmentFacade environmentFacade = getReplicatedEnvironmentFacade(); if (environmentFacade != null && _environmentFacade.compareAndSet(environmentFacade, null)) @@ -412,7 +417,7 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtu } finally { - stopEnvironment(); + closeEnvironment(); getEventLogger().message(getVirtualHostNodeLogSubject(), HighAvailabilityMessages.DETACHED(getName(), getGroupName())); } } @@ -909,7 +914,7 @@ public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtu } finally { - stopEnvironment(); + closeEnvironment(); } notifyStateChanged(state, State.ERRORED); } |