diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-10-21 17:48:03 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-10-21 17:48:03 +0000 |
| commit | 84ad8e898f41e2511ff65f4a0cd92340c1435a06 (patch) | |
| tree | af828a45b84c871ba2f51f03d02ea7ad8127a15f /qpid/java | |
| parent | ab3ddc5979bf88c83e97079a130f378d8388e786 (diff) | |
| download | qpid-python-84ad8e898f41e2511ff65f4a0cd92340c1435a06.tar.gz | |
QPID-6174 : Expose settings for restricting number of threads / queued jobs in HTTP management server
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1633424 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
2 files changed, 27 insertions, 0 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java index 6e104f844f..c0152d9ca4 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java @@ -47,6 +47,7 @@ import org.eclipse.jetty.servlet.FilterHolder; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; @@ -175,7 +176,17 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem _logger.info("Starting up web server on " + ports); } _allowPortActivation = true; + Server server = new Server(); + + QueuedThreadPool threadPool = new QueuedThreadPool(); + threadPool.setName("HttpManagement"); + threadPool.setMaxQueued(getContextValue(Integer.class, JETTY_THREAD_POOL_MAX_QUEUED)); + threadPool.setMaxThreads(getContextValue(Integer.class, JETTY_THREAD_POOL_MAX_THREADS)); + threadPool.setMinThreads(getContextValue(Integer.class, JETTY_THREAD_POOL_MIN_THREADS)); + + server.setThreadPool(threadPool); + int lastPort = -1; for (Port<?> port : ports) { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java index 9eef1a6e5c..1be42a0fcd 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java @@ -56,5 +56,21 @@ public interface HttpManagementConfiguration<X extends HttpManagementConfigurati @ManagedContextDefault( name = MAX_HTTP_FILE_UPLOAD_SIZE_CONTEXT_NAME) static final long DEFAULT_MAX_UPLOAD_SIZE = 100 * 1024; + + String JETTY_THREAD_POOL_MAX_QUEUED = "jetty.threadPool.maxQueued"; + @ManagedContextDefault( name = JETTY_THREAD_POOL_MAX_QUEUED) + static final long DEFAULT_JETTY_THREAD_POOL_MAX_QUEUED = 1000; + + String JETTY_THREAD_POOL_MAX_THREADS = "jetty.threadPool.maxThreads"; + @ManagedContextDefault( name = JETTY_THREAD_POOL_MAX_THREADS) + static final long DEFAULT_JETTY_THREAD_POOL_MAX_THREADS = 10; + + + String JETTY_THREAD_POOL_MIN_THREADS = "jetty.threadPool.minThreads"; + @ManagedContextDefault( name = JETTY_THREAD_POOL_MIN_THREADS) + static final long DEFAULT_JETTY_THREAD_POOL_MIN_THREADS = 1; + + + AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress); } |
