You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2015/08/18 14:08:47 UTC
svn commit: r1696408 - in /qpid/java/trunk:
bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/
broker-core/src/main/java/
broker-core/src/main/java/org/apache/qpid/server/logging/messages/
broker-core/src/main/java/org/apache/qpid/se...
Author: orudyy
Date: Tue Aug 18 12:08:46 2015
New Revision: 1696408
URL: http://svn.apache.org/r1696408
Log:
QPID-6697: [Java Broker] Add min/max thread pool size to AMQP port and Virtual Host
work by Lorenz Quack <qu...@gmail.com> and Alex Rudyy.
Added:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortWithThreadPool.java
qpid/java/trunk/broker-core/src/main/java/velocity.timestamp
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/messages/BrokerMessagesTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/NetworkConnectionSchedulerTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addPort.html
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/editVirtualHost.html
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showPort.html
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html
Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java Tue Aug 18 12:08:46 2015
@@ -90,8 +90,10 @@ public class BDBHAReplicaVirtualHostImpl
@ManagedAttributeField
private int _housekeepingThreadCount;
@ManagedAttributeField
- private int _connectionThreadCount;
+ private int _connectionThreadPoolMinimum;
+ @ManagedAttributeField
+ private int _connectionThreadPoolMaximum;
@ManagedAttributeField
private List<String> _enabledConnectionValidators;
@@ -253,7 +255,13 @@ public class BDBHAReplicaVirtualHostImpl
}
@Override
- public int getConnectionThreadCount()
+ public int getConnectionThreadPoolMaximum()
+ {
+ return 0;
+ }
+
+ @Override
+ public int getConnectionThreadPoolMinimum()
{
return 0;
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java Tue Aug 18 12:08:46 2015
@@ -544,16 +544,16 @@ public class BrokerMessages
/**
* Log a Broker message of the Format:
- * <pre>BRK-1010 : Platform : JVM : {0} version: {1} OS : {2} version: {3} arch: {4}</pre>
+ * <pre>BRK-1010 : Platform : JVM : {0} version: {1} OS : {2} version: {3} arch: {4} cores: {5}</pre>
* Optional values are contained in [square brackets] and are numbered
* sequentially in the method call.
*
*/
- public static LogMessage PLATFORM(String param1, String param2, String param3, String param4, String param5)
+ public static LogMessage PLATFORM(String param1, String param2, String param3, String param4, String param5, String param6)
{
String rawMessage = _messages.getString("PLATFORM");
- final Object[] messageArguments = {param1, param2, param3, param4, param5};
+ final Object[] messageArguments = {param1, param2, param3, param4, param5, param6};
// Create a new MessageFormat to ensure thread safety.
// Sharing a MessageFormat and using applyPattern is not thread safe
MessageFormat formatter = new MessageFormat(rawMessage, _currentLocale);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties Tue Aug 18 12:08:46 2015
@@ -40,7 +40,8 @@ STATS_MSGS = BRK-1009 : {0,choice,0#deli
# 2 - os name
# 3 - os type
# 4 - os architecture
-PLATFORM = BRK-1010 : Platform : JVM : {0} version: {1} OS : {2} version: {3} arch: {4}
+# 5 - available CPU cores
+PLATFORM = BRK-1010 : Platform : JVM : {0} version: {1} OS : {2} version: {3} arch: {4} cores: {5}
# 0 Maximum Memory
MAX_MEMORY = BRK-1011 : Maximum Memory : {0,number} bytes
@@ -55,4 +56,4 @@ FLOW_TO_DISK_INACTIVE = BRK-1015 : Messa
FATAL_ERROR = BRK-1016 : Fatal error : {0} : See log file for more information
# 0 - pid
-PROCESS = BRK-1017 : Process : PID : {0}
\ No newline at end of file
+PROCESS = BRK-1017 : Process : PID : {0}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java Tue Aug 18 12:08:46 2015
@@ -103,6 +103,9 @@ public interface Broker<X extends Broker
@DerivedAttribute
String getProductVersion();
+ @DerivedAttribute
+ int getNumberOfCores();
+
@ManagedAttribute( defaultValue = "256" )
int getConnection_sessionCountLimit();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Tue Aug 18 12:08:46 2015
@@ -58,6 +58,8 @@ public interface VirtualHost<X extends V
String GLOBAL_ADDRESS_DOMAINS = "globalAddressDomains";
String VIRTUALHOST_WORK_DIR_VAR = "virtualhost.work_dir";
String VIRTUALHOST_WORK_DIR_VAR_EXPRESSION = "${qpid.work_dir}${file.separator}${ancestor:virtualhost:name}";
+ String CONNECTION_THREAD_POOL_MINIMUM = "connectionThreadPoolMinimum";
+ String CONNECTION_THREAD_POOL_MAXIMUM = "connectionThreadPoolMaximum";
@ManagedContextDefault( name = VIRTUALHOST_WORK_DIR_VAR)
public static final String VIRTUALHOST_WORK_DIR = VIRTUALHOST_WORK_DIR_VAR_EXPRESSION;
@@ -104,16 +106,25 @@ public interface VirtualHost<X extends V
@ManagedAttribute( defaultValue = "${virtualhost.housekeepingThreadCount}")
int getHousekeepingThreadCount();
- @ManagedContextDefault( name = "virtualhost.connectionThreadCount")
- public static final int DEFAULT_CONNECTION_THREAD_COUNT = Runtime.getRuntime().availableProcessors();
+ String VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM = "virtualhost.connectionThreadPool.maximum";
+ @SuppressWarnings("unused")
+ @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM)
+ long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM = Math.max(Runtime.getRuntime().availableProcessors() * 2, 64);
+
+ @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_MAXIMUM + "}")
+ int getConnectionThreadPoolMaximum();
+
+ String VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM = "virtualhost.connectionThreadPool.minimum";
+ @SuppressWarnings("unused")
+ @ManagedContextDefault( name = VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM)
+ long DEFAULT_VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM = Math.min(Runtime.getRuntime().availableProcessors(), 8);
+
+ @ManagedAttribute( defaultValue = "${" + VIRTUALHOST_CONNECTION_THREAD_POOL_MINIMUM + "}")
+ int getConnectionThreadPoolMinimum();
@ManagedContextDefault( name = "virtualhost.awaitAttainmentTimeout")
public static final int DEFAULT_AWAIT_ATTAINMENT_TIMEOUT = 5000;
- @ManagedAttribute( defaultValue = "${virtualhost.connectionThreadCount}")
- int getConnectionThreadCount();
-
-
@DerivedAttribute( persist = true )
String getModelVersion();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Tue Aug 18 12:08:46 2015
@@ -366,6 +366,12 @@ public class BrokerAdapter extends Abstr
}
@Override
+ public int getNumberOfCores()
+ {
+ return Runtime.getRuntime().availableProcessors();
+ }
+
+ @Override
public int getConnection_sessionCountLimit()
{
return _connection_sessionCountLimit;
@@ -483,7 +489,8 @@ public class BrokerAdapter extends Abstr
System.getProperty("java.version")),
SystemUtils.getOSName(),
SystemUtils.getOSVersion(),
- SystemUtils.getOSArch()));
+ SystemUtils.getOSArch(),
+ String.valueOf(getNumberOfCores())));
getEventLogger().message(BrokerMessages.MAX_MEMORY(Runtime.getRuntime().maxMemory()));
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java Tue Aug 18 12:08:46 2015
@@ -40,7 +40,7 @@ import org.apache.qpid.server.virtualhos
import javax.net.ssl.SSLContext;
@ManagedObject( category = false, type = "AMQP")
-public interface AmqpPort<X extends AmqpPort<X>> extends ClientAuthCapablePort<X>
+public interface AmqpPort<X extends AmqpPort<X>> extends ClientAuthCapablePort<X>, PortWithThreadPool
{
String DEFAULT_AMQP_SEND_BUFFER_SIZE = "262144";
String DEFAULT_AMQP_RECEIVE_BUFFER_SIZE = "262144";
@@ -56,6 +56,9 @@ public interface AmqpPort<X extends Amqp
String DEFAULT_AMQP_PROTOCOLS = "qpid.port.default_amqp_protocols";
+ String PORT_AMQP_THREAD_POOL_MAXIMUM = "port.amqp.threadPool.maximum";
+ String PORT_AMQP_THREAD_POOL_MINIMUM = "port.amqp.threadPool.minimum";
+
@ManagedContextDefault(name = DEFAULT_AMQP_PROTOCOLS)
String INSTALLED_PROTOCOLS = AmqpPortImpl.getInstalledProtocolsAsString();
@@ -64,10 +67,13 @@ public interface AmqpPort<X extends Amqp
@ManagedContextDefault(name = PORT_MAX_OPEN_CONNECTIONS)
int DEFAULT_MAX_OPEN_CONNECTIONS = -1;
- String THREAD_POOL_SIZE = "qpid.port.thread_pool_size";
-
- @ManagedContextDefault(name = THREAD_POOL_SIZE)
- int DEFAULT_THREAD_POOL_SIZE = Runtime.getRuntime().availableProcessors();
+ @SuppressWarnings("unused")
+ @ManagedContextDefault( name = PORT_AMQP_THREAD_POOL_MAXIMUM)
+ long DEFAULT_PORT_AMQP_THREAD_POOL_MAXIMUM = 8;
+
+ @SuppressWarnings("unused")
+ @ManagedContextDefault( name = PORT_AMQP_THREAD_POOL_MINIMUM)
+ long DEFAULT_PORT_AMQP_THREAD_POOL_MINIMUM = 2;
String PORT_MAX_MESSAGE_SIZE = "qpid.port.max_message_size";
@@ -94,8 +100,13 @@ public interface AmqpPort<X extends Amqp
@ManagedAttribute( defaultValue = AmqpPort.DEFAULT_AMQP_RECEIVE_BUFFER_SIZE )
int getReceiveBufferSize();
- @ManagedAttribute( defaultValue = "${" + THREAD_POOL_SIZE + "}")
- int getThreadPoolSize();
+ @Override
+ @ManagedAttribute( defaultValue = "${" + PORT_AMQP_THREAD_POOL_MAXIMUM + "}")
+ int getThreadPoolMaximum();
+
+ @Override
+ @ManagedAttribute( defaultValue = "${" + PORT_AMQP_THREAD_POOL_MINIMUM + "}")
+ int getThreadPoolMinimum();
@ManagedAttribute( defaultValue = DEFAULT_AMQP_NEED_CLIENT_AUTH )
boolean getNeedClientAuth();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java Tue Aug 18 12:08:46 2015
@@ -43,6 +43,7 @@ import javax.net.ssl.X509TrustManager;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
+import org.apache.qpid.server.model.ConfiguredObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -120,7 +121,10 @@ public class AmqpPortImpl extends Abstra
private int _maxOpenConnections;
@ManagedAttributeField
- private int _threadPoolSize;
+ private int _threadPoolMaximum;
+
+ @ManagedAttributeField
+ private int _threadPoolMinimum;
private final AtomicInteger _connectionCount = new AtomicInteger();
private final AtomicBoolean _connectionCountWarningGiven = new AtomicBoolean();
@@ -139,6 +143,18 @@ public class AmqpPortImpl extends Abstra
}
@Override
+ public int getThreadPoolMaximum()
+ {
+ return _threadPoolMaximum;
+ }
+
+ @Override
+ public int getThreadPoolMinimum()
+ {
+ return _threadPoolMinimum;
+ }
+
+ @Override
public SSLContext getSSLContext()
{
return _sslContext;
@@ -175,12 +191,6 @@ public class AmqpPortImpl extends Abstra
}
@Override
- public int getThreadPoolSize()
- {
- return _threadPoolSize;
- }
-
- @Override
protected void onCreate()
{
super.onCreate();
@@ -329,6 +339,24 @@ public class AmqpPortImpl extends Abstra
}
}
+ @Override
+ public void onValidate()
+ {
+ super.onValidate();
+ PortWithThreadPoolValidator.validate(this);
+ }
+
+ @Override
+ protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
+ {
+ super.validateChange(proxyForValidation, changedAttributes);
+ AmqpPort changed = (AmqpPort) proxyForValidation;
+ if (changedAttributes.contains(THREAD_POOL_MAXIMUM) || changedAttributes.contains(THREAD_POOL_MINIMUM) )
+ {
+ PortWithThreadPoolValidator.validate(changed);
+ }
+ }
+
private SSLContext createSslContext()
{
KeyStore keyStore = getKeyStore();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPort.java Tue Aug 18 12:08:46 2015
@@ -31,11 +31,8 @@ import org.apache.qpid.server.model.Tran
import org.apache.qpid.server.model.TrustStore;
@ManagedObject( category = false, type = "HTTP")
-public interface HttpPort<X extends HttpPort<X>> extends ClientAuthCapablePort<X>
+public interface HttpPort<X extends HttpPort<X>> extends ClientAuthCapablePort<X>, PortWithThreadPool
{
- String THREAD_POOL_MINIMUM = "threadPoolMinimum";
- String THREAD_POOL_MAXIMUM = "threadPoolMaximum";
-
String DEFAULT_HTTP_NEED_CLIENT_AUTH = "false";
String DEFAULT_HTTP_WANT_CLIENT_AUTH = "false";
@@ -69,6 +66,7 @@ public interface HttpPort<X extends Http
@ManagedContextDefault( name = PORT_HTTP_THREAD_POOL_MAXIMUM )
long DEFAULT_PORT_HTTP_THREAD_POOL_MAXIMUM = 24;
+ @Override
@ManagedAttribute( defaultValue = "${" + PORT_HTTP_THREAD_POOL_MAXIMUM + "}")
int getThreadPoolMaximum();
@@ -77,6 +75,7 @@ public interface HttpPort<X extends Http
@ManagedContextDefault( name = PORT_HTTP_THREAD_POOL_MINIMUM )
long DEFAULT_PORT_HTTP_THREAD_POOL_MINIMUM = 8;
+ @Override
@ManagedAttribute( defaultValue = "${" + PORT_HTTP_THREAD_POOL_MINIMUM + "}")
int getThreadPoolMinimum();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/HttpPortImpl.java Tue Aug 18 12:08:46 2015
@@ -89,28 +89,10 @@ public class HttpPortImpl extends Abstra
}
@Override
- public void validateOnCreate()
+ public void onValidate()
{
- super.validateOnCreate();
- String bindingAddress = getBindingAddress();
- if (!PortUtil.isPortAvailable(bindingAddress, getPort()))
- {
- throw new IllegalConfigurationException(String.format("Cannot bind to port %d and binding address '%s'. Port is already is use.",
- getPort(), bindingAddress == null || "".equals(bindingAddress) ? "*" : bindingAddress));
- }
-
- if (_threadPoolMaximum < 1)
- {
- throw new IllegalConfigurationException(String.format("Thread pool maximum %d is too small. Must be greater than zero.", _threadPoolMaximum));
- }
- if (_threadPoolMinimum < 1)
- {
- throw new IllegalConfigurationException(String.format("Thread pool minimum %d is too small. Must be greater than zero.", _threadPoolMinimum));
- }
- if (_threadPoolMinimum > _threadPoolMaximum)
- {
- throw new IllegalConfigurationException(String.format("Thread pool minimum %d cannot be greater than thread pool maximum %d.", _threadPoolMinimum, _threadPoolMaximum));
- }
+ super.onValidate();
+ PortWithThreadPoolValidator.validate(this);
final double additionalInternalThreads = getContextValue(Integer.class, HttpPort.PORT_HTTP_ADDITIONAL_INTERNAL_THREADS);
if (additionalInternalThreads < 1)
@@ -126,30 +108,25 @@ public class HttpPortImpl extends Abstra
}
@Override
+ public void validateOnCreate()
+ {
+ super.validateOnCreate();
+ String bindingAddress = getBindingAddress();
+ if (!PortUtil.isPortAvailable(bindingAddress, getPort()))
+ {
+ throw new IllegalConfigurationException(String.format("Cannot bind to port %d and binding address '%s'. Port is already is use.",
+ getPort(), bindingAddress == null || "".equals(bindingAddress) ? "*" : bindingAddress));
+ }
+ }
+
+ @Override
protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
{
super.validateChange(proxyForValidation, changedAttributes);
HttpPort changed = (HttpPort) proxyForValidation;
- if (changedAttributes.contains(HttpPort.THREAD_POOL_MAXIMUM))
- {
- if (changed.getThreadPoolMaximum() < 1)
- {
- throw new IllegalConfigurationException(String.format("Thread pool maximum %d is too small. Must be greater than zero.", getThreadPoolMaximum()));
- }
- }
- if (changedAttributes.contains(HttpPort.THREAD_POOL_MINIMUM))
- {
- if (changed.getThreadPoolMaximum() < 1)
- {
- throw new IllegalConfigurationException(String.format("Thread pool minimum %d is too small. Must be greater than zero.", getThreadPoolMinimum()));
- }
- }
- if (changedAttributes.contains(HttpPort.THREAD_POOL_MAXIMUM) || changedAttributes.contains(HttpPort.THREAD_POOL_MINIMUM))
+ if (changedAttributes.contains(THREAD_POOL_MAXIMUM) || changedAttributes.contains(THREAD_POOL_MINIMUM))
{
- if (changed.getThreadPoolMinimum() > changed.getThreadPoolMaximum())
- {
- throw new IllegalConfigurationException(String.format("Thread pool minimum %d cannot be greater than thread pool maximum %d.", changed.getThreadPoolMinimum(), changed.getThreadPoolMaximum()));
- }
+ PortWithThreadPoolValidator.validate(changed);
}
}
}
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortWithThreadPool.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortWithThreadPool.java?rev=1696408&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortWithThreadPool.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortWithThreadPool.java Tue Aug 18 12:08:46 2015
@@ -0,0 +1,52 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.model.port;
+
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
+
+public interface PortWithThreadPool
+{
+ String THREAD_POOL_MINIMUM = "threadPoolMinimum";
+ String THREAD_POOL_MAXIMUM = "threadPoolMaximum";
+
+ int getThreadPoolMaximum();
+
+ int getThreadPoolMinimum();
+
+ class PortWithThreadPoolValidator
+ {
+ public static void validate(PortWithThreadPool port)
+ {
+ if (port.getThreadPoolMaximum() < 1)
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool maximum %d is too small. Must be greater than zero.", port.getThreadPoolMaximum()));
+ }
+ if (port.getThreadPoolMinimum() < 1)
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool minimum %d is too small. Must be greater than zero.", port.getThreadPoolMinimum()));
+ }
+ if (port.getThreadPoolMinimum() > port.getThreadPoolMaximum())
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool minimum %d cannot be greater than thread pool maximum %d.", port.getThreadPoolMinimum() , port.getThreadPoolMaximum()));
+ }
+ }
+ }
+}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java Tue Aug 18 12:08:46 2015
@@ -42,12 +42,13 @@ public class NetworkConnectionScheduler
private volatile SelectorThread _selectorThread;
private volatile ThreadPoolExecutor _executor;
private final AtomicInteger _running = new AtomicInteger();
- private final int _poolSize;
+ private final int _poolSizeMinimum;
+ private final int _poolSizeMaximum;
private final String _name;
- public NetworkConnectionScheduler(final String name, int threadPoolSize)
+ public NetworkConnectionScheduler(final String name, int threadPoolSizeMinimum, int threadPoolSizeMaximum)
{
- this(name, threadPoolSize, new ThreadFactory()
+ this(name, threadPoolSizeMinimum, threadPoolSizeMaximum, new ThreadFactory()
{
final AtomicInteger _count = new AtomicInteger();
@@ -61,10 +62,11 @@ public class NetworkConnectionScheduler
});
}
- public NetworkConnectionScheduler(String name, int threadPoolSize, ThreadFactory factory)
+ public NetworkConnectionScheduler(String name, int threadPoolSizeMinimum, int threadPoolSizeMaximum, ThreadFactory factory)
{
_name = name;
- _poolSize = threadPoolSize;
+ _poolSizeMaximum = threadPoolSizeMaximum;
+ _poolSizeMinimum = threadPoolSizeMinimum;
_factory = factory;
}
@@ -75,7 +77,7 @@ public class NetworkConnectionScheduler
{
_selectorThread = new SelectorThread(this);
_selectorThread.start();
- _executor = new ThreadPoolExecutor(_poolSize, _poolSize, 0L, TimeUnit.MILLISECONDS,
+ _executor = new ThreadPoolExecutor(_poolSizeMinimum, _poolSizeMaximum, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(), _factory);
_executor.prestartAllCoreThreads();
}
@@ -123,7 +125,7 @@ public class NetworkConnectionScheduler
if (connection.isStateChanged() || connection.isPartialRead())
{
- if (_running.get() == _poolSize)
+ if (_running.get() == _poolSizeMaximum)
{
schedule(connection);
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java Tue Aug 18 12:08:46 2015
@@ -70,7 +70,8 @@ class TCPandSSLTransport implements Acce
encryptionSet.add(TransportEncryption.TLS);
}
- _scheduler = new NetworkConnectionScheduler("Port-"+_port.getName(), _port.getThreadPoolSize());
+ _scheduler = new NetworkConnectionScheduler("Port-"+_port.getName(), _port.getThreadPoolMinimum(),
+ _port.getThreadPoolMaximum());
_scheduler.start();
_networkTransport = new NonBlockingNetworkTransport(protocolEngineFactory,
encryptionSet, _scheduler, _port);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Tue Aug 18 12:08:46 2015
@@ -178,7 +178,10 @@ public abstract class AbstractVirtualHos
private int _housekeepingThreadCount;
@ManagedAttributeField
- private int _connectionThreadCount;
+ private int _connectionThreadPoolMaximum;
+
+ @ManagedAttributeField
+ private int _connectionThreadPoolMinimum;
@ManagedAttributeField
private List<String> _enabledConnectionValidators;
@@ -247,12 +250,15 @@ public abstract class AbstractVirtualHos
validateGlobalAddressDomain(domain);
}
}
+
+ validateConnectionThreadPoolSettings(this);
}
@Override
protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
{
super.validateChange(proxyForValidation, changedAttributes);
+ VirtualHost<?, ?, ?> virtualHost = (VirtualHost<?, ?, ?>) proxyForValidation;
if(changedAttributes.contains(DURABLE) && !proxyForValidation.isDurable())
{
throw new IllegalArgumentException(getClass().getSimpleName() + " must be durable");
@@ -260,7 +266,7 @@ public abstract class AbstractVirtualHos
if(changedAttributes.contains(GLOBAL_ADDRESS_DOMAINS))
{
- VirtualHost<?, ?, ?> virtualHost = (VirtualHost<?, ?, ?>) proxyForValidation;
+
if(virtualHost.getGlobalAddressDomains() != null)
{
for(String name : virtualHost.getGlobalAddressDomains())
@@ -269,6 +275,11 @@ public abstract class AbstractVirtualHos
}
}
}
+
+ if (changedAttributes.contains(CONNECTION_THREAD_POOL_MAXIMUM) || changedAttributes.contains(CONNECTION_THREAD_POOL_MINIMUM))
+ {
+ validateConnectionThreadPoolSettings(virtualHost);
+ }
}
private void validateGlobalAddressDomain(final String name)
@@ -291,17 +302,24 @@ public abstract class AbstractVirtualHos
{
super.validateOnCreate();
validateMessageStoreCreation();
- if(getGlobalAddressDomains() != null)
+ }
+
+ private void validateConnectionThreadPoolSettings(VirtualHost<?,?,?> virtualHost)
+ {
+ if (virtualHost.getConnectionThreadPoolMaximum() < 1)
{
- for(String name : getGlobalAddressDomains())
- {
- validateGlobalAddressDomain(name);
- }
+ throw new IllegalConfigurationException(String.format("Thread pool maximum %d is too small. Must be greater than zero.", virtualHost.getConnectionThreadPoolMaximum()));
+ }
+ if (virtualHost.getConnectionThreadPoolMinimum() < 1)
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool minimum %d is too small. Must be greater than zero.", virtualHost.getConnectionThreadPoolMinimum()));
+ }
+ if (virtualHost.getConnectionThreadPoolMinimum() > virtualHost.getConnectionThreadPoolMaximum())
+ {
+ throw new IllegalConfigurationException(String.format("Thread pool minimum %d cannot be greater than thread pool maximum %d.", virtualHost.getConnectionThreadPoolMinimum() , virtualHost.getConnectionThreadPoolMaximum()));
}
}
-
-
protected void validateMessageStoreCreation()
{
MessageStore store = createMessageStore();
@@ -1465,10 +1483,17 @@ public abstract class AbstractVirtualHos
return _housekeepingThreadCount;
}
+
+ @Override
+ public int getConnectionThreadPoolMaximum()
+ {
+ return _connectionThreadPoolMaximum;
+ }
+
@Override
- public int getConnectionThreadCount()
+ public int getConnectionThreadPoolMinimum()
{
- return _connectionThreadCount;
+ return _connectionThreadPoolMinimum;
}
@StateTransition( currentState = { State.UNINITIALIZED, State.ACTIVE, State.ERRORED }, desiredState = State.STOPPED )
@@ -1847,7 +1872,8 @@ public abstract class AbstractVirtualHos
SecurityManager.getSystemTaskSubject("IO Pool", getPrincipal()));
_networkConnectionScheduler = new NetworkConnectionScheduler("virtualhost-" + getName() + "-iopool",
- getConnectionThreadCount(),
+ getConnectionThreadPoolMinimum(),
+ getConnectionThreadPoolMaximum(),
connectionThreadFactory);
_networkConnectionScheduler.start();
MessageStore messageStore = getMessageStore();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java Tue Aug 18 12:08:46 2015
@@ -89,10 +89,12 @@ class RedirectingVirtualHostImpl
private long _storeTransactionOpenTimeoutWarn;
@ManagedAttributeField
private int _housekeepingThreadCount;
- @ManagedAttributeField
- private int _connectionThreadCount;
+ @ManagedAttributeField
+ private int _connectionThreadPoolMinimum;
+ @ManagedAttributeField
+ private int _connectionThreadPoolMaximum;
@ManagedAttributeField
private List<String> _enabledConnectionValidators;
@@ -254,7 +256,13 @@ class RedirectingVirtualHostImpl
}
@Override
- public int getConnectionThreadCount()
+ public int getConnectionThreadPoolMaximum()
+ {
+ return 0;
+ }
+
+ @Override
+ public int getConnectionThreadPoolMinimum()
{
return 0;
}
Added: qpid/java/trunk/broker-core/src/main/java/velocity.timestamp
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/velocity.timestamp?rev=1696408&view=auto
==============================================================================
(empty)
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/messages/BrokerMessagesTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/messages/BrokerMessagesTest.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/messages/BrokerMessagesTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/messages/BrokerMessagesTest.java Tue Aug 18 12:08:46 2015
@@ -111,10 +111,12 @@ public class BrokerMessagesTest extends
String osVersion = "o1.0";
String osArch = "oarch";
- _logMessage = BrokerMessages.PLATFORM(javaVendor, javaVersion, osName, osVersion, osArch);
+ String cores = "2";
+
+ _logMessage = BrokerMessages.PLATFORM(javaVendor, javaVersion, osName, osVersion, osArch, cores);
List<Object> log = performLog();
- String[] expected = {"Platform :", "JVM :", javaVendor, " version: ", " OS : ", osName, " version: ", osVersion, " arch: ", osArch};
+ String[] expected = {"Platform :", "JVM :", javaVendor, " version: ", " OS : ", osName, " version: ", osVersion, " arch: ", osArch, " cores: ", cores};
validateLogMessage(log, "BRK-1010", expected);
}
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/NetworkConnectionSchedulerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/NetworkConnectionSchedulerTest.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/NetworkConnectionSchedulerTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/NetworkConnectionSchedulerTest.java Tue Aug 18 12:08:46 2015
@@ -30,7 +30,6 @@ import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
-import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.EnumSet;
@@ -50,7 +49,6 @@ public class NetworkConnectionSchedulerT
when(port.getBindingAddress()).thenReturn("*");
when(port.getEnabledCipherSuites()).thenReturn(Collections.emptyList());
when(port.getDisabledCipherSuites()).thenReturn(Collections.emptyList());
- when(port.getThreadPoolSize()).thenReturn(1);
MultiVersionProtocolEngineFactory engineFactory = mock(MultiVersionProtocolEngineFactory.class);
MultiVersionProtocolEngine verboseEngine = mock(MultiVersionProtocolEngine.class);
@@ -60,7 +58,7 @@ public class NetworkConnectionSchedulerT
when(verboseEngine.getAggregateTicker()).thenReturn(new AggregateTicker());
when(timidEngine.getAggregateTicker()).thenReturn(new AggregateTicker());
- final NetworkConnectionScheduler scheduler = new NetworkConnectionScheduler(getName(), 1);
+ final NetworkConnectionScheduler scheduler = new NetworkConnectionScheduler(getName(), 1, 1);
scheduler.start();
NonBlockingNetworkTransport transport = new NonBlockingNetworkTransport(engineFactory, EnumSet.of(TransportEncryption.NONE),
scheduler, port);
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/transport/TCPandSSLTransportTest.java Tue Aug 18 12:08:46 2015
@@ -109,7 +109,8 @@ public class TCPandSSLTransportTest exte
when(port.getSendBufferSize()).thenReturn(64*1024);
when(port.getReceiveBufferSize()).thenReturn(64*1024);
when(port.canAcceptNewConnection(any(SocketAddress.class))).thenReturn(true);
- when(port.getThreadPoolSize()).thenReturn(1);
+ when(port.getThreadPoolMinimum()).thenReturn(1);
+ when(port.getThreadPoolMaximum()).thenReturn(1);
when(port.getSSLContext()).thenReturn(sslContext);
TCPandSSLTransport transport = new TCPandSSLTransport(new HashSet<>(Arrays.asList(transports)),
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addPort.html
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addPort.html?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addPort.html (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addPort.html Tue Aug 18 12:08:46 2015
@@ -176,6 +176,37 @@
</div>
</div>
+ <div id="formAddPort:threadPoolSettings" >
+ <div class="clear">
+ <div class="formLabel-labelCell">
+ <label for="formAddPort.transports">Minimum number of connection threads:</label>
+ </div>
+ <div class="formLabel-controlCell">
+ <input id="formAddPort.threadPoolMinimum" type="text"
+ data-dojo-type="dijit.form.ValidationTextBox"
+ data-dojo-props="
+ name: 'threadPoolMinimum',
+ placeHolder: 'minimum number of connection threads',
+ promptMessage: 'Minimum number of connection threads used to serve client connections on this port.',
+ title: 'Enter a minimum number of connection threads'"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">
+ <label for="formAddPort.transports">Maximum number of connection threads:</label>
+ </div>
+ <div class="formLabel-controlCell">
+ <input id="formAddPort.threadPoolMaximum" type="text"
+ data-dojo-type="dijit.form.ValidationTextBox"
+ data-dojo-props="
+ name: 'threadPoolMaximum',
+ placeHolder: 'maximum number of connection threads',
+ promptMessage: 'Maximum number of connection threads used to serve client connections on this port.',
+ title: 'Enter a maximum number of connection threads'"/>
+ </div>
+ </div>
+ </div>
+
<div id="formAddPort:fieldsTransportSSL">
<div class="clear">
<div class="formLabel-labelCell">
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/editVirtualHost.html
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/editVirtualHost.html?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/editVirtualHost.html (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/editVirtualHost.html Tue Aug 18 12:08:46 2015
@@ -120,7 +120,28 @@
</input>
</div>
</div>
-
+ <div class="clear">
+ <div class="formLabel-labelCell tableContainer-labelCell">Minimum number of connection threads:</div>
+ <div class="tableContainer-valueCell formLabel-controlCell">
+ <input data-dojo-type="dijit/form/ValidationTextBox"
+ name="connectionThreadPoolMinimum"
+ placeHolder="minumum number of connection threads"
+ promptMessage="Enter minimum number of threads used by connections"
+ id="editVirtualHost.connectionThreadPoolMinimum">
+ </input>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell tableContainer-labelCell">Maximum number of connection threads:</div>
+ <div class="tableContainer-valueCell formLabel-controlCell">
+ <input data-dojo-type="dijit/form/ValidationTextBox"
+ name="connectionThreadPoolMaximum"
+ placeHolder="maxumum number of connection threads"
+ promptMessage="Enter maximum number of threads used by connections"
+ id="editVirtualHost.connectionThreadPoolMaximum">
+ </input>
+ </div>
+ </div>
<div class="clear"></div>
<div data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'Context variables', open: false">
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js Tue Aug 18 12:08:46 2015
@@ -141,7 +141,11 @@ define(["dojo/dom",
"needClientAuth",
"wantClientAuth",
"trustStores",
- "maxOpenConnections"
+ "maxOpenConnections",
+ "threadPoolMinimum",
+ "threadPoolMaximum",
+ "threadPoolMinimumValue",
+ "threadPoolMaximumValue"
]);
}
@@ -169,6 +173,8 @@ define(["dojo/dom",
this.bindingAddressValue.innerHTML = this.portData[ "bindingAddress" ] ? entities.encode(String(this.portData[ "bindingAddress" ])) : "" ;
this.connectionCountValue.innerHTML = this.portData[ "connectionCount" ] ? entities.encode(String(this.portData[ "connectionCount" ])) : "0" ;
this.maxOpenConnectionsValue.innerHTML = (this.portData[ "maxOpenConnections" ] && this.portData[ "maxOpenConnections" ] >= 0) ? entities.encode(String(this.portData[ "maxOpenConnections" ])) : "(no limit)" ;
+ this.threadPoolMinimumValue.innerHTML = entities.encode(String(this.portData["threadPoolMinimum"] || ""));
+ this.threadPoolMaximumValue.innerHTML = entities.encode(String(this.portData["threadPoolMaximum"] || ""));
this.keyStoreValue.innerHTML = this.portData[ "keyStore" ] ? entities.encode(String(this.portData[ "keyStore" ])) : "";
this.needClientAuthValue.innerHTML = "<input type='checkbox' disabled='disabled' "+(this.portData[ "needClientAuth" ] ? "checked='checked'": "")+" />" ;
@@ -184,6 +190,10 @@ define(["dojo/dom",
this.wantClientAuth.style.display = "wantClientAuth" in typeMetaData.attributes ? "block" : "none";
this.trustStores.style.display = "trustStores" in typeMetaData.attributes ? "block" : "none";
+ var hasThreadPoolSettings = "threadPoolMaximum" in typeMetaData.attributes;
+ this.threadPoolMinimum.style.display = hasThreadPoolSettings ? "block" : "none";
+ this.threadPoolMaximum.style.display = hasThreadPoolSettings ? "block" : "none";
+
this.maxOpenConnections.style.display = "maxOpenConnections" in typeMetaData.attributes ? "block" : "none";
};
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js Tue Aug 18 12:08:46 2015
@@ -214,6 +214,8 @@ define(["dojo/parser",
"bytesOutRateUnits",
"virtualHostDetailsContainer",
"deadLetterQueueEnabled",
+ "connectionThreadPoolMinimum",
+ "connectionThreadPoolMaximum",
"housekeepingCheckPeriod",
"housekeepingThreadCount",
"storeTransactionIdleTimeoutClose",
@@ -358,7 +360,9 @@ define(["dojo/parser",
"storeTransactionIdleTimeoutClose",
"storeTransactionIdleTimeoutWarn",
"storeTransactionOpenTimeoutClose",
- "storeTransactionOpenTimeoutWarn"],
+ "storeTransactionOpenTimeoutWarn",
+ "connectionThreadPoolMinimum",
+ "connectionThreadPoolMaximum"],
this)
};
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js Tue Aug 18 12:08:46 2015
@@ -86,6 +86,12 @@ define(["dojo/dom",
registry.byId("formAddPort.maxOpenConnections").set("disabled", ! ("maxOpenConnections" in typeMetaData.attributes));
dom.byId("formAddPort:maxOpenConnections").style.display = "maxOpenConnections" in typeMetaData.attributes ? "block" : "none";
+ //threadPoolSettings
+ var hasThreadPoolSettings = "threadPoolMinimum" in typeMetaData.attributes;
+ dom.byId("formAddPort:threadPoolSettings").style.display = hasThreadPoolSettings ? "block" : "none";
+ registry.byId("formAddPort.threadPoolMinimum").set("disabled", !hasThreadPoolSettings);
+ registry.byId("formAddPort.threadPoolMaximum").set("disabled", !hasThreadPoolSettings);
+
//transports
var transportsMultiSelect = dom.byId("formAddPort.transports");
var transportsValidValues = typeMetaData.attributes.transports.validValues;
@@ -431,6 +437,19 @@ define(["dojo/dom",
registry.byId("formAddPort.needClientAuth").set("checked", port.needClientAuth);
registry.byId("formAddPort.wantClientAuth").set("checked", port.wantClientAuth);
+ //threadPoolSettings
+ var hasThreadPoolSettings = "threadPoolMinimum" in typeMetaData.attributes;
+ function initThreadPoolSettingWidget(name)
+ {
+ var widget = registry.byId("formAddPort." + name);
+ widget.set("regExpGen", util.signedOrContextVarRegexp);
+ widget.set("value", port[name] ? port[name] : "");
+ widget.set("disabled", !hasThreadPoolSettings);
+ }
+ initThreadPoolSettingWidget("threadPoolMaximum");
+ initThreadPoolSettingWidget("threadPoolMinimum");
+ dom.byId("formAddPort:threadPoolSettings").style.display = hasThreadPoolSettings ? "block" : "none";
+
keystoreWidget.initialValue = port.keyStore;
truststoreWidget.initialValue = port.trustStores;
transportWidget.initialValue = transportWidget.value;
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js Tue Aug 18 12:08:46 2015
@@ -45,8 +45,13 @@ define(["dojox/html/entities",
"dojo/domReady!"],
function (entities, array, event, lang, win, dom, domConstruct, registry, parser, json, query, Memory, ObjectStore, util, template)
{
- var fields = [ "name", "queue.deadLetterQueueEnabled", "storeTransactionIdleTimeoutWarn", "storeTransactionIdleTimeoutClose", "storeTransactionOpenTimeoutWarn", "storeTransactionOpenTimeoutClose", "housekeepingCheckPeriod", "housekeepingThreadCount"];
- var numericFieldNames = ["storeTransactionIdleTimeoutWarn", "storeTransactionIdleTimeoutClose", "storeTransactionOpenTimeoutWarn", "storeTransactionOpenTimeoutClose", "housekeepingCheckPeriod", "housekeepingThreadCount"];
+ var fields = [ "name", "connectionThreadPoolMaximum", "connectionThreadPoolMinimum", "queue.deadLetterQueueEnabled",
+ "storeTransactionIdleTimeoutWarn", "storeTransactionIdleTimeoutClose", "storeTransactionOpenTimeoutWarn",
+ "storeTransactionOpenTimeoutClose", "housekeepingCheckPeriod", "housekeepingThreadCount"];
+ var numericFieldNames = ["storeTransactionIdleTimeoutWarn", "storeTransactionIdleTimeoutClose",
+ "storeTransactionOpenTimeoutWarn", "storeTransactionOpenTimeoutClose",
+ "housekeepingCheckPeriod", "housekeepingThreadCount",
+ "connectionThreadPoolMaximum", "connectionThreadPoolMinimum"];
var virtualHostEditor =
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showPort.html
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showPort.html?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showPort.html (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showPort.html Tue Aug 18 12:08:46 2015
@@ -91,6 +91,15 @@
<div class="formValue-valueCell trustStoresValue multiLineValue"></div>
</div>
+ <div class="clear threadPoolMinimum">
+ <div class="formLabel-labelCell">Minimum number of connection threads:</div>
+ <div class="formValue-valueCell threadPoolMinimumValue"></div>
+ </div>
+
+ <div class="clear threadPoolMaximum">
+ <div class="formLabel-labelCell">Maximum number of connection threads:</div>
+ <div class="formValue-valueCell threadPoolMaximumValue"></div>
+ </div>
<div class="clear"></div>
</div>
<br/>
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html?rev=1696408&r1=1696407&r2=1696408&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html Tue Aug 18 12:08:46 2015
@@ -69,6 +69,14 @@
<div class="formLabel-labelCell">Dead letter queue enabled:</div>
<div class="deadLetterQueueEnabled"></div>
</div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Minimum number of connection threads:</div>
+ <div class="connectionThreadPoolMinimum"></div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Maximum number of connection threads:</div>
+ <div class="connectionThreadPoolMaximum"></div>
+ </div>
<div class="clear virtualHostDetailsContainer"></div>
<div class="clear"></div>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org