diff options
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java index 3ff9b8c356..90dc7432b2 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHost.java @@ -71,8 +71,8 @@ public class VirtualHost implements Accessable private ACLPlugin _accessManager; - private final Timer _houseKeepingTimer = new Timer("Queue-housekeeping", true); - + private Timer _houseKeepingTimer; + private static final long DEFAULT_HOUSEKEEPING_PERIOD = 30000L; public void setAccessableName(String name) @@ -172,43 +172,46 @@ 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() + { + 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); + } } - + private void initialiseMessageStore(Configuration config) throws Exception { String messageStoreClass = config.getString("store.class"); |
