ARTEMIS-1447 Reuse thread pools on JDBC Locks (cherry picked from commit 1af6d986a570f4c0db87cdd141fad3c66b84ea92)
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/1a7cd8aa Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/1a7cd8aa Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/1a7cd8aa Branch: refs/heads/1.x Commit: 1a7cd8aabe71d2f5f13bde02cfa3392436d3731e Parents: 565b817 Author: Clebert Suconic <[email protected]> Authored: Fri Oct 27 15:14:28 2017 -0400 Committer: Clebert Suconic <[email protected]> Committed: Wed Mar 28 11:54:15 2018 -0400 ---------------------------------------------------------------------- .../artemis/core/server/ActiveMQScheduledComponent.java | 7 +++++++ .../activemq/artemis/core/server/impl/ActiveMQServerImpl.java | 5 ++--- .../core/server/impl/jdbc/ActiveMQScheduledLeaseLock.java | 6 +++--- .../artemis/core/server/impl/jdbc/ScheduledLeaseLock.java | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/1a7cd8aa/artemis-commons/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQScheduledComponent.java ---------------------------------------------------------------------- diff --git a/artemis-commons/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQScheduledComponent.java b/artemis-commons/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQScheduledComponent.java index 1553ccb..24dc15c 100644 --- a/artemis-commons/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQScheduledComponent.java +++ b/artemis-commons/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQScheduledComponent.java @@ -188,6 +188,13 @@ public abstract class ActiveMQScheduledComponent implements ActiveMQComponent, R return this; } + public synchronized ActiveMQScheduledComponent setPeriod(long period, TimeUnit unit) { + this.period = period; + this.timeUnit = unit; + restartIfNeeded(); + return this; + } + public long getInitialDelay() { return initialDelay; } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/1a7cd8aa/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java index ab47aa7..c1b20e3 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java @@ -494,6 +494,8 @@ public class ActiveMQServerImpl implements ActiveMQServer { configuration.parseSystemProperties(); + initializeExecutorServices(); + startDate = new Date(); state = SERVER_STATE.STARTING; @@ -1982,9 +1984,6 @@ public class ActiveMQServerImpl implements ActiveMQServer { if (state == SERVER_STATE.STOPPED) return false; - // Create the pools - we have two pools - one for non scheduled - and another for scheduled - initializeExecutorServices(); - if (configuration.getJournalType() == JournalType.ASYNCIO) { if (!AIOSequentialFileFactory.isSupported()) { ActiveMQServerLogger.LOGGER.switchingNIO(); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/1a7cd8aa/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ActiveMQScheduledLeaseLock.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ActiveMQScheduledLeaseLock.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ActiveMQScheduledLeaseLock.java index 30db629..e870ea9 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ActiveMQScheduledLeaseLock.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ActiveMQScheduledLeaseLock.java @@ -17,16 +17,16 @@ package org.apache.activemq.artemis.core.server.impl.jdbc; +import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.apache.activemq.artemis.core.io.IOCriticalErrorListener; import org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent; -import org.apache.activemq.artemis.utils.actors.ArtemisExecutor; import org.jboss.logging.Logger; /** - * Default implementation of a {@link ScheduledLeaseLock}: see {@link ScheduledLeaseLock#of(ScheduledExecutorService, ArtemisExecutor, String, LeaseLock, long, IOCriticalErrorListener)}. + * Default implementation of a {@link ScheduledLeaseLock}: see {@link ScheduledLeaseLock#of(ScheduledExecutorService, Executor, String, LeaseLock, long, IOCriticalErrorListener)}. */ final class ActiveMQScheduledLeaseLock extends ActiveMQScheduledComponent implements ScheduledLeaseLock { @@ -39,7 +39,7 @@ final class ActiveMQScheduledLeaseLock extends ActiveMQScheduledComponent implem private final IOCriticalErrorListener ioCriticalErrorListener; ActiveMQScheduledLeaseLock(ScheduledExecutorService scheduledExecutorService, - ArtemisExecutor executor, + Executor executor, String lockName, LeaseLock lock, long renewPeriodMillis, http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/1a7cd8aa/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ScheduledLeaseLock.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ScheduledLeaseLock.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ScheduledLeaseLock.java index 43751f8..4e1f480 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ScheduledLeaseLock.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/jdbc/ScheduledLeaseLock.java @@ -17,11 +17,11 @@ package org.apache.activemq.artemis.core.server.impl.jdbc; +import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; import org.apache.activemq.artemis.core.io.IOCriticalErrorListener; import org.apache.activemq.artemis.core.server.ActiveMQComponent; -import org.apache.activemq.artemis.utils.actors.ArtemisExecutor; /** * {@link LeaseLock} holder that allows to schedule a {@link LeaseLock#renew} task with a fixed {@link #renewPeriodMillis()} delay. @@ -33,7 +33,7 @@ interface ScheduledLeaseLock extends ActiveMQComponent { long renewPeriodMillis(); static ScheduledLeaseLock of(ScheduledExecutorService scheduledExecutorService, - ArtemisExecutor executor, + Executor executor, String lockName, LeaseLock lock, long renewPeriodMillis,
