diff --git a/modules/dcache/src/main/java/diskCacheV111/services/space/Manager.java b/modules/dcache/src/main/java/diskCacheV111/services/space/Manager.java index bcfc659b18b..7550a7fb9f3 100644 --- a/modules/dcache/src/main/java/diskCacheV111/services/space/Manager.java +++ b/modules/dcache/src/main/java/diskCacheV111/services/space/Manager.java @@ -33,6 +33,7 @@ import com.google.common.base.Joiner; import com.google.common.collect.Iterables; import com.google.common.primitives.Longs; +import org.dcache.util.CDCExecutorServiceDecorator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Required; @@ -55,6 +56,8 @@ import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; import diskCacheV111.poolManager.PoolPreferenceLevel; import diskCacheV111.poolManager.PoolSelectionUnit; @@ -80,7 +83,6 @@ import diskCacheV111.util.PnfsHandler; import diskCacheV111.util.PnfsId; import diskCacheV111.util.RetentionPolicy; -import diskCacheV111.util.ThreadManager; import diskCacheV111.util.VOInfo; import diskCacheV111.vehicles.DoorTransferFinishedMessage; import diskCacheV111.vehicles.IpProtocolInfo; @@ -151,6 +153,8 @@ public final class Manager private SpaceManagerAuthorizationPolicy authorizationPolicy; + private Executor executor; + private JdbcConnectionPool connection_pool; private DBManager dbManager; private static final Logger logger = LoggerFactory.getLogger(Manager.class); @@ -237,6 +241,12 @@ public void setLinkGroupAuthorizationFileName(String linkGroupAuthorizationFileN this.linkGroupAuthorizationFileName = linkGroupAuthorizationFileName; } + @Required + public void setExecutor(ExecutorService executor) + { + this.executor = new CDCExecutorServiceDecorator(executor); + } + @Required public void setDbManager(DBManager manager) { @@ -2458,7 +2468,7 @@ public void messageArrived(final CellMessage envelope, if (!isNotificationMessage(message) && !isSpaceManagerMessage(message)) { messageToForward(envelope, message); } else if (spaceManagerEnabled) { - ThreadManager.execute(new Runnable() + executor.execute(new Runnable() { @Override public void run() @@ -2503,7 +2513,7 @@ public void messageToForward(final CellMessage envelope, final Message message) if (envelope.nextDestination()) { if (spaceManagerEnabled && isInterceptedMessage(message)) { - ThreadManager.execute(new Runnable() + executor.execute(new Runnable() { @Override public void run() diff --git a/modules/dcache/src/main/resources/diskCacheV111/services/space/spacemanager.xml b/modules/dcache/src/main/resources/diskCacheV111/services/space/spacemanager.xml index 1e1c1ac2da5..b511fdc3016 100644 --- a/modules/dcache/src/main/resources/diskCacheV111/services/space/spacemanager.xml +++ b/modules/dcache/src/main/resources/diskCacheV111/services/space/spacemanager.xml @@ -36,6 +36,19 @@ + + Thread pool for message processing + + + + + + + + + Pool manager communication stub @@ -91,6 +104,7 @@ +