summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2008-04-30 14:40:45 +0000
committerMartin Ritchie <ritchiem@apache.org>2008-04-30 14:40:45 +0000
commite870da9f7909033225d1ff9d05d6306095189b25 (patch)
treed2b498aba312b4578f9e672667213ae48832fa9f
parent502a31a9149d6920010e0b316c87fe53dbd51a8c (diff)
downloadqpid-python-e870da9f7909033225d1ff9d05d6306095189b25.tar.gz
QPID-887 : Renamed QueueHouseKeeping threads so they can be identified in thread dump. Named Queue-housekeeping-<virtualhost name>
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.x@652389 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java74
1 files changed, 43 insertions, 31 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
index 3ff9b8c356..f663cffee1 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java
@@ -71,7 +71,7 @@ public class VirtualHost implements Accessable
private ACLPlugin _accessManager;
- private final Timer _houseKeepingTimer = new Timer("Queue-housekeeping", true);
+ private final Timer _houseKeepingTimer;
private static final long DEFAULT_HOUSEKEEPING_PERIOD = 30000L;
@@ -172,41 +172,53 @@ public class VirtualHost implements Accessable
_brokerMBean = new AMQBrokerManagerMBean(_virtualHostMBean);
_brokerMBean.register();
+ _houseKeepingTimer = new Timer("Queue-housekeeping-" + _name, true);
initialiseHouseKeeping(hostConfig);
}
private void initialiseHouseKeeping(final Configuration hostConfig)
{
-
- long period = hostConfig.getLong("housekeeping.expiredMessageCheckPeriod", DEFAULT_HOUSEKEEPING_PERIOD);
-
- /* add a timer task to iterate over queues, cleaning expired messages from queues with no consumers */
- if(period != 0L)
- {
- class RemoveExpiredMessagesTask extends TimerTask
- {
- public void run()
- {
- for(AMQQueue q : _queueRegistry.getQueues())
- {
-
- try
- {
- q.removeExpiredIfNoSubscribers();
- }
- catch (AMQException e)
- {
- _logger.error("Exception in housekeeping for queue: " + q.getName().toString(),e);
- throw new RuntimeException(e);
- }
- }
- }
- }
-
- _houseKeepingTimer.scheduleAtFixedRate(new RemoveExpiredMessagesTask(),
- period/2,
- period);
- }
+
+ long period = hostConfig.getLong("housekeeping.expiredMessageCheckPeriod", DEFAULT_HOUSEKEEPING_PERIOD);
+
+ /* add a timer task to iterate over queues, cleaning expired messages from queues with no consumers */
+ if (period != 0L)
+ {
+ class RemoveExpiredMessagesTask extends TimerTask
+ {
+ public void run()
+ {
+ try
+ {
+ _logger.info("Start Run");
+ for (AMQQueue q : _queueRegistry.getQueues())
+ {
+
+ try
+ {
+ q.removeExpiredIfNoSubscribers();
+ }
+ catch (AMQException e)
+ {
+ _logger.error("Exception in housekeeping for queue: " + q.getName().toString(), e);
+ throw new RuntimeException(e);
+ }
+ }
+ _logger.info("Stop Run");
+ }
+ catch (Exception fatal)
+ {
+ System.err.println(Thread.currentThread().getName()+" Exception in housekeeping "+fatal);
+ fatal.printStackTrace();
+ System.exit(-1);
+ }
+ }
+ }
+
+ _houseKeepingTimer.scheduleAtFixedRate(new RemoveExpiredMessagesTask(),
+ period / 2,
+ period);
+ }
}
private void initialiseMessageStore(Configuration config) throws Exception