From e870da9f7909033225d1ff9d05d6306095189b25 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Wed, 30 Apr 2008 14:40:45 +0000 Subject: QPID-887 : Renamed QueueHouseKeeping threads so they can be identified in thread dump. Named Queue-housekeeping- git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.x@652389 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/virtualhost/VirtualHost.java | 74 +++++++++++++--------- 1 file 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 -- cgit v1.2.1