diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-03-29 13:27:05 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-03-29 13:27:05 +0000 |
| commit | 2de5f1bff906ed75d6650a93d5dfc81e4d28cf28 (patch) | |
| tree | 583a41534ccce4bfa3d7e622de4cd80d3856b8be /qpid/java | |
| parent | 9f22988ff2d01008ea0cd97d1b2fb8cb8bce96a1 (diff) | |
| download | qpid-python-2de5f1bff906ed75d6650a93d5dfc81e4d28cf28.tar.gz | |
QPID-4677: Add missing broker attributes related to store transactions
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1462472 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
7 files changed, 159 insertions, 5 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js index 6c6ece0864..f5e40025c2 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js @@ -371,6 +371,62 @@ define(["dojo/_base/xhr", name: "virtualhost.housekeepingCheckPeriod" }); } + }, { + name: "virtualhost.storeTransactionIdleTimeoutClose", + createWidget: function(brokerData) { + return new dijit.form.ValidationTextBox({ + trim: "true", + regexp: "[0-9]+", + invalidMessage: "Invalid value", + required: false, + value: brokerData["virtualhost.storeTransactionIdleTimeoutClose"], + placeholder: "Time in ms", + label: "Idle store transaction close timeout:", + name: "virtualhost.storeTransactionIdleTimeoutClose" + }); + } + }, { + name: "virtualhost.storeTransactionIdleTimeoutWarn", + createWidget: function(brokerData) { + return new dijit.form.ValidationTextBox({ + trim: "true", + regexp: "[0-9]+", + invalidMessage: "Invalid value", + required: false, + value: brokerData["virtualhost.storeTransactionIdleTimeoutWarn"], + placeholder: "Time in ms", + label: "Idle store transaction warn timeout:", + name: "virtualhost.storeTransactionIdleTimeoutWarn" + }); + } + }, { + name: "virtualhost.storeTransactionOpenTimeoutClose", + createWidget: function(brokerData) { + return new dijit.form.ValidationTextBox({ + trim: "true", + regexp: "[0-9]+", + invalidMessage: "Invalid value", + required: false, + value: brokerData["virtualhost.storeTransactionOpenTimeoutClose"], + placeholder: "Time in ms", + label: "Open store transaction close timeout:", + name: "virtualhost.storeTransactionOpenTimeoutClose" + }); + } + }, { + name: "virtualhost.storeTransactionOpenTimeoutWarn", + createWidget: function(brokerData) { + return new dijit.form.ValidationTextBox({ + trim: "true", + regexp: "[0-9]+", + invalidMessage: "Invalid value", + required: false, + value: brokerData["virtualhost.storeTransactionOpenTimeoutWarn"], + placeholder: "Time in ms", + label: "Open store transaction warn timeout:", + name: "virtualhost.storeTransactionOpenTimeoutWarn" + }); + } } ]; } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html index 6d1adab992..0cac138cb1 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html @@ -150,6 +150,22 @@ <div class="formLabel-labelCell" style="float:left; width: 250px;">House keeping check period:</div> <div id="brokerAttribute.virtualhost.housekeepingCheckPeriod" style="float:left;"></div>ms </div> + <div id="brokerAttribute.virtualhost.storeTransactionIdleTimeoutClose.container" style="clear:both"> + <div class="formLabel-labelCell" style="float:left; width: 250px;">Idle store transaction close timeout:</div> + <div id="brokerAttribute.virtualhost.storeTransactionIdleTimeoutClose" style="float:left;"></div>ms + </div> + <div id="brokerAttribute.virtualhost.storeTransactionIdleTimeoutWarn.container" style="clear:both"> + <div class="formLabel-labelCell" style="float:left; width: 250px;">Idle store transaction warn timeout:</div> + <div id="brokerAttribute.virtualhost.storeTransactionIdleTimeoutWarn" style="float:left;"></div>ms + </div> + <div id="brokerAttribute.virtualhost.storeTransactionOpenTimeoutClose.container" style="clear:both"> + <div class="formLabel-labelCell" style="float:left; width: 250px;">Open store transaction close timeout:</div> + <div id="brokerAttribute.virtualhost.storeTransactionOpenTimeoutClose" style="float:left;"></div>ms + </div> + <div id="brokerAttribute.virtualhost.storeTransactionOpenTimeoutWarn.container" style="clear:both"> + <div class="formLabel-labelCell" style="float:left; width: 250px;">Open store transaction warn timeout:</div> + <div id="brokerAttribute.virtualhost.storeTransactionOpenTimeoutWarn" style="float:left;"></div>ms + </div> <div style="clear:both"></div> </div> </div> diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java index 61b4b330d5..bc4932ea09 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java @@ -243,22 +243,26 @@ public class VirtualHostConfiguration extends AbstractConfiguration public long getTransactionTimeoutOpenWarn() { - return getLongValue("transactionTimeout.openWarn", 0L); + return getLongValue("transactionTimeout.openWarn", + getBrokerAttributeAsLong(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN)); } public long getTransactionTimeoutOpenClose() { - return getLongValue("transactionTimeout.openClose", 0L); + return getLongValue("transactionTimeout.openClose", + getBrokerAttributeAsLong(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE)); } public long getTransactionTimeoutIdleWarn() { - return getLongValue("transactionTimeout.idleWarn", 0L); + return getLongValue("transactionTimeout.idleWarn", + getBrokerAttributeAsLong(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN)); } public long getTransactionTimeoutIdleClose() { - return getLongValue("transactionTimeout.idleClose", 0L); + return getLongValue("transactionTimeout.idleClose", + getBrokerAttributeAsLong(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE)); } public int getMaxDeliveryCount() diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java index 2ecff163b7..e83017d201 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java @@ -76,6 +76,10 @@ public interface Broker extends ConfiguredObject String STORE_PATH = "storePath"; String MANAGEMENT_VERSION = "managementVersion"; + String VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE = "virtualhost.storeTransactionIdleTimeoutClose"; + String VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN = "virtualhost.storeTransactionIdleTimeoutWarn"; + String VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE = "virtualhost.storeTransactionOpenTimeoutClose"; + String VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN = "virtualhost.storeTransactionOpenTimeoutWarn"; /* * A temporary attribute to pass the path to ACL file. * TODO: It should be a part of AuthorizationProvider. @@ -139,6 +143,10 @@ public interface Broker extends ConfiguredObject STORE_VERSION, STORE_PATH, MANAGEMENT_VERSION, + VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, + VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN, + VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, + VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN, ACL_FILE, KEY_STORE_PATH, diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java index fe6bc6eded..841dfb8229 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java @@ -108,6 +108,10 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat put(PEER_STORE_PATH, String.class); put(PEER_STORE_PASSWORD, String.class); put(GROUP_FILE, String.class); + put(VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, Long.class); + put(VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN, Long.class); + put(VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, Long.class); + put(VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN, Long.class); }}); public static final int DEFAULT_STATISTICS_REPORTING_PERIOD = 0; @@ -125,6 +129,10 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat public static final int DEFAULT_HEART_BEAT_DELAY = 0; public static final int DEFAULT_SESSION_COUNT_LIMIT = 256; public static final String DEFAULT_NAME = "QpidBroker"; + public static final long DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE = 0l; + public static final long DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_WARN = 0l; + public static final long DEFAULT_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE = 0l; + public static final long DEFAULT_STORE_TRANSACTION_OPEN_TIMEOUT_WARN = 0l; private static final String DEFAULT_KEY_STORE_NAME = "defaultKeyStore"; private static final String DEFAULT_TRUST_STORE_NAME = "defaultTrustStore"; private static final String DEFAULT_GROUP_PROFIDER_NAME = "defaultGroupProvider"; @@ -149,12 +157,18 @@ public class BrokerAdapter extends AbstractAdapter implements Broker, Configurat put(Broker.HEART_BEAT_DELAY, DEFAULT_HEART_BEAT_DELAY); put(Broker.SESSION_COUNT_LIMIT, DEFAULT_SESSION_COUNT_LIMIT); put(Broker.NAME, DEFAULT_NAME); + put(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE); + put(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN, DEFAULT_STORE_TRANSACTION_IDLE_TIMEOUT_WARN); + put(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, DEFAULT_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE); + put(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN, DEFAULT_STORE_TRANSACTION_OPEN_TIMEOUT_WARN); }}); private String[] POSITIVE_NUMERIC_ATTRIBUTES = { ALERT_THRESHOLD_MESSAGE_AGE, ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES, ALERT_THRESHOLD_QUEUE_DEPTH_BYTES, ALERT_THRESHOLD_MESSAGE_SIZE, ALERT_REPEAT_GAP, FLOW_CONTROL_SIZE_BYTES, FLOW_CONTROL_RESUME_SIZE_BYTES, MAXIMUM_DELIVERY_ATTEMPTS, HOUSEKEEPING_CHECK_PERIOD, SESSION_COUNT_LIMIT, - HEART_BEAT_DELAY, STATISTICS_REPORTING_PERIOD }; + HEART_BEAT_DELAY, STATISTICS_REPORTING_PERIOD, VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, + VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN, VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, + VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN}; private final StatisticsGatherer _statisticsGatherer; diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java index 570bd004c5..b3b637c81e 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/VirtualHostConfigurationTest.java @@ -357,4 +357,52 @@ public class VirtualHostConfigurationTest extends QpidTestCase // Check, that the property stored within the <dot.in.a.name> tag has been properly loaded assertEquals("virtual host with dots in the name has been properly loaded", TestableMemoryMessageStore.class.getName(), test.getMessageStore().getClass().getName()); } + + public void testStoreTransactionIdleTimeoutClose() throws Exception + { + VirtualHost vhost = createVirtualHost(getName()); + assertEquals("Unexpected StoreTransactionIdleTimeoutClose value", 0, vhost.getConfiguration().getTransactionTimeoutIdleClose()); + + when(_broker.getAttribute(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE)).thenReturn(1000l); + assertEquals("Unexpected StoreTransactionIdleTimeoutClose value", 1000l, vhost.getConfiguration().getTransactionTimeoutIdleClose()); + + vhost.getConfiguration().getConfig().setProperty("transactionTimeout.idleClose", 2000l); + assertEquals("Unexpected StoreTransactionIdleTimeoutClose value", 2000l, vhost.getConfiguration().getTransactionTimeoutIdleClose()); + } + + public void testStoreTransactionIdleTimeoutWarn() throws Exception + { + VirtualHost vhost = createVirtualHost(getName()); + assertEquals("Unexpected StoreTransactionIdleTimeoutWarn value", 0, vhost.getConfiguration().getTransactionTimeoutIdleWarn()); + + when(_broker.getAttribute(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN)).thenReturn(1000l); + assertEquals("Unexpected StoreTransactionIdleTimeoutWarn value", 1000l, vhost.getConfiguration().getTransactionTimeoutIdleWarn()); + + vhost.getConfiguration().getConfig().setProperty("transactionTimeout.idleWarn", 2000l); + assertEquals("Unexpected StoreTransactionIdleTimeoutWarn value", 2000l, vhost.getConfiguration().getTransactionTimeoutIdleWarn()); + } + + public void testStoreTransactionOpenTimeoutClose() throws Exception + { + VirtualHost vhost = createVirtualHost(getName()); + assertEquals("Unexpected StoreTransactionOpenTimeoutClose value", 0, vhost.getConfiguration().getTransactionTimeoutOpenClose()); + + when(_broker.getAttribute(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE)).thenReturn(1000l); + assertEquals("Unexpected StoreTransactionOpenTimeoutClose value", 1000l, vhost.getConfiguration().getTransactionTimeoutOpenClose()); + + vhost.getConfiguration().getConfig().setProperty("transactionTimeout.openClose", 2000l); + assertEquals("Unexpected StoreTransactionOpenTimeoutClose value", 2000l, vhost.getConfiguration().getTransactionTimeoutOpenClose()); + } + + public void testStoreTransactionOpenTimeoutWarn() throws Exception + { + VirtualHost vhost = createVirtualHost(getName()); + assertEquals("Unexpected StoreTransactionOpenTimeoutWarn value", 0, vhost.getConfiguration().getTransactionTimeoutOpenWarn()); + + when(_broker.getAttribute(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN)).thenReturn(1000l); + assertEquals("Unexpected StoreTransactionOpenTimeoutWarn value", 1000l, vhost.getConfiguration().getTransactionTimeoutOpenWarn()); + + vhost.getConfiguration().getConfig().setProperty("transactionTimeout.openWarn", 2000l); + assertEquals("Unexpected StoreTransactionOpenTimeoutWarn value", 2000l, vhost.getConfiguration().getTransactionTimeoutOpenWarn()); + } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java index ba767a474a..e03275366e 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java @@ -150,6 +150,10 @@ public class BrokerRestTest extends QpidRestTestCase invalidAttributes.put(Broker.PEER_STORE_PATH, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "non-existing-peerstore.jks"); invalidAttributes.put(Broker.PEER_STORE_PASSWORD, "password3"); invalidAttributes.put(Broker.GROUP_FILE, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "groups-non-existing"); + invalidAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, -13000); + invalidAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN, -14000); + invalidAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, -15000); + invalidAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN, -16000); for (Map.Entry<String, Object> entry : invalidAttributes.entrySet()) { @@ -195,6 +199,10 @@ public class BrokerRestTest extends QpidRestTestCase brokerAttributes.put(Broker.PEER_STORE_PATH, TestSSLConstants.TRUSTSTORE); brokerAttributes.put(Broker.PEER_STORE_PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD); brokerAttributes.put(Broker.GROUP_FILE, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "groups"); + brokerAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE, 13000); + brokerAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_IDLE_TIMEOUT_WARN, 14000); + brokerAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_CLOSE, 15000); + brokerAttributes.put(Broker.VIRTUALHOST_STORE_TRANSACTION_OPEN_TIMEOUT_WARN, 16000); return brokerAttributes; } |
