diff options
| author | Keith Wall <kwall@apache.org> | 2014-10-30 16:57:36 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-10-30 16:57:36 +0000 |
| commit | 6c4648a65b1b8679beeeedc55bb12c2bf416aab1 (patch) | |
| tree | d3313487d4ef1cb54e0c760bd8f355afa80f05e5 /qpid/java | |
| parent | 2efeca0609bbc700b35ed464743471149c6ac560 (diff) | |
| download | qpid-python-6c4648a65b1b8679beeeedc55bb12c2bf416aab1.tar.gz | |
QPID-6201: [Java Broker] HA use separate single thread executor to deliver JE state change events
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1635547 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java | 5 |
1 files changed, 4 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 8a23e5fe82..81839a65ab 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 @@ -167,6 +167,7 @@ public class ReplicatedEnvironmentFacade implements EnvironmentFacade, StateChan private final File _environmentDirectory; private final ExecutorService _environmentJobExecutor; + private final ExecutorService _stateChangeExecutor; private final ScheduledExecutorService _groupChangeExecutor; private final AtomicReference<State> _state = new AtomicReference<State>(State.OPENING); private final ConcurrentMap<String, ReplicationNode> _remoteReplicationNodes = new ConcurrentHashMap<String, ReplicationNode>(); @@ -216,6 +217,7 @@ public class ReplicatedEnvironmentFacade implements EnvironmentFacade, StateChan // we relay on this executor being single-threaded as we need to restart and mutate the environment in one thread _environmentJobExecutor = Executors.newSingleThreadExecutor(new DaemonThreadFactory("Environment-" + _prettyGroupNodeName)); + _stateChangeExecutor = Executors.newSingleThreadExecutor(new DaemonThreadFactory("StateChange-" + _prettyGroupNodeName)); _groupChangeExecutor = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors() + 1, new DaemonThreadFactory("Group-Change-Learner:" + _prettyGroupNodeName)); // create environment in a separate thread to avoid renaming of the current thread by JE @@ -298,6 +300,7 @@ public class ReplicatedEnvironmentFacade implements EnvironmentFacade, StateChan timeout, TimeUnit.MILLISECONDS); shutdownAndAwaitExecutorService(_groupChangeExecutor, _executorShutdownTimeout, TimeUnit.MILLISECONDS); + shutdownAndAwaitExecutorService(_stateChangeExecutor, _executorShutdownTimeout, TimeUnit.MILLISECONDS); try { @@ -562,7 +565,7 @@ public class ReplicatedEnvironmentFacade implements EnvironmentFacade, StateChan if (_state.get() != State.CLOSING && _state.get() != State.CLOSED) { - _groupChangeExecutor.submit(new Runnable() + _stateChangeExecutor.submit(new Runnable() { @Override public void run() |
