Author: rajdavies
Date: Wed Jul 7 20:31:40 2010
New Revision: 961500
URL: http://svn.apache.org/viewvc?rev=961500&view=rev
Log:
Only start Producer Flow Control thread when needed
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java?rev=961500&r1=961499&r2=961500&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
(original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
Wed Jul 7 20:31:40 2010
@@ -198,7 +198,7 @@ public class Queue extends BaseDestinati
}
} catch (InterruptedException e) {
if (LOG.isDebugEnabled()) {
- LOG.debug("Producer Flow Control Timeout Task is stopping");
+ LOG.debug(getName() + "P roducer Flow Control Timeout Task is stopping");
}
}
}
@@ -548,6 +548,12 @@ public class Queue extends BaseDestinati
// for space.
final ProducerBrokerExchange producerExchangeCopy = producerExchange.copy();
synchronized (messagesWaitingForSpace) {
+ // Start flow control timeout task
+ // Prevent trying to start it multiple times
+ if (!flowControlTimeoutTask.isAlive()) {
+ flowControlTimeoutTask.setName(getName()+" Producer Flow Control
Timeout Task");
+ flowControlTimeoutTask.start();
+ }
messagesWaitingForSpace.put(message.getMessageId(), new Runnable()
{
public void run() {
@@ -804,15 +810,6 @@ public class Queue extends BaseDestinati
if (getExpireMessagesPeriod() > 0) {
scheduler.schedualPeriodically(expireMessagesTask, getExpireMessagesPeriod());
}
-
- flowControlTimeoutTask.setName("Producer Flow Control Timeout Task");
-
- // Start flow control timeout task
- // Prevent trying to start it multiple times
- if (!flowControlTimeoutTask.isAlive()) {
- flowControlTimeoutTask.start();
- }
-
doPageIn(false);
}
|