summaryrefslogtreecommitdiff
path: root/java/broker-plugins/experimental/slowconsumerdetection/src/main
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2010-05-18 14:44:43 +0000
committerMartin Ritchie <ritchiem@apache.org>2010-05-18 14:44:43 +0000
commitcb881fa7637a654697c46513e27d3072a0e3d195 (patch)
treecbd8eb17eca3fbdae9572ea97879cf3eb0a391e0 /java/broker-plugins/experimental/slowconsumerdetection/src/main
parent6768b7db27e89ee454693849cea6883aef48f941 (diff)
downloadqpid-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')
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java9
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java22
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java24
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;
}
}