diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2010-05-18 14:44:43 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2010-05-18 14:44:43 +0000 |
| commit | cb881fa7637a654697c46513e27d3072a0e3d195 (patch) | |
| tree | cbd8eb17eca3fbdae9572ea97879cf3eb0a391e0 /java/broker-plugins/experimental/slowconsumerdetection/src/main | |
| parent | 6768b7db27e89ee454693849cea6883aef48f941 (diff) | |
| download | qpid-python-cb881fa7637a654697c46513e27d3072a0e3d195.tar.gz | |
QPID-1447 : Update Plugins to use changes to ConfigurationPlugin, Update Test to correctly run and prevent failover.
Update excludes to include test in Java Broker runs but not CPP or 010.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@945683 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-plugins/experimental/slowconsumerdetection/src/main')
3 files changed, 40 insertions, 15 deletions
diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java index b7719875a0..a8ebd024b1 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java @@ -47,18 +47,13 @@ public class SlowConsumerDetectionPolicyConfiguration extends ConfigurationPlugi { return new String[]{ "virtualhosts.virtualhost.queues.slow-consumer-detection.policy", - "virtualhosts.virtualhost.queues.queue.slow-consumer-detection.policy", - "virtualhosts.virtualhost.topics.slow-consumer-detection.policy", - "virtualhosts.virtualhost.queues.topics.topic.slow-consumer-detection.policy"}; + "virtualhosts.virtualhost.queues.queue.slow-consumer-detection.policy"}; } } public String[] getElementsProcessed() { - // NOTE: the use of '@name]' rather than '[@name]' this appears to be - // a bug in commons configuration. - //fixme - Simple test case needs raised and JIRA raised on Commons - return new String[]{"@name]", "options"}; + return new String[]{"[@name]", "options"}; } public String getPolicyName() diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java index a652539f14..c5281c626d 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java @@ -29,7 +29,10 @@ import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPlugin; import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPluginFactory; +import java.util.HashSet; +import java.util.Iterator; import java.util.Map; +import java.util.Set; public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin { @@ -47,9 +50,7 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin public String[] getParentPaths() { return new String[]{"virtualhosts.virtualhost.queues.slow-consumer-detection", - "virtualhosts.virtualhost.queues.queue.slow-consumer-detection", - "virtualhosts.virtualhost.topics.slow-consumer-detection", - "virtualhosts.virtualhost.queues.topics.topic.slow-consumer-detection"}; + "virtualhosts.virtualhost.queues.queue.slow-consumer-detection"}; } } @@ -92,6 +93,21 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin Map<String, SlowConsumerPolicyPluginFactory> factories = pluginManager.getPlugins(SlowConsumerPolicyPluginFactory.class); + Iterator<?> keys = policyConfig.getConfig().getKeys(); + + while (keys.hasNext()) + { + String key = (String) keys.next(); + + _logger.debug("Policy Keys:" + key); + + } + + if (policyConfig == null) + { + throw new ConfigurationException("No Slow Consumer Policy specified at:" + path + ". Known Policies:" + factories.keySet()); + } + if (_logger.isDebugEnabled()) { _logger.debug("Configured SCDQC"); diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java index fbbb205ff0..e69925f2b1 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java @@ -103,12 +103,26 @@ class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin */ private boolean checkQueueStatus(AMQQueue q, SlowConsumerDetectionQueueConfiguration config) { + if (config != null) + { - _logger.info("Retrieved Queue(" + q.getName() + ") Config:" + config); - return config != null && - (q.getMessageCount() >= config.getMessageCount() || - q.getQueueDepth() >= config.getDepth() || - q.getOldestMessageArrivalTime() >= config.getMessageAge()); + if ((config.getMessageCount() != 0 && q.getMessageCount() >= config.getMessageCount()) || + (config.getDepth() != 0 && q.getQueueDepth() >= config.getDepth()) || + (config.getMessageAge() != 0 && q.getOldestMessageArrivalTime() >= config.getMessageAge())) + { + + if (_logger.isInfoEnabled()) + { + _logger.info("Detected Slow Consumer on Queue(" + q.getName() + ")"); + _logger.info("Queue Count:" + q.getMessageCount() + ":" + config.getMessageCount()); + _logger.info("Queue Depth:" + q.getQueueDepth() + ":" + config.getDepth()); + _logger.info("Queue Arrival:" + q.getOldestMessageArrivalTime() + ":" + config.getMessageAge()); + } + + return true; + } + } + return false; } } |
