This commit is contained in:
gtully 2015-04-24 13:35:02 +01:00
parent b8698953f3
commit 23ecbe80d0
3 changed files with 10 additions and 4 deletions

View File

@ -28,11 +28,15 @@ import org.apache.activemq.broker.region.QueueMessageReference;
import org.apache.activemq.command.ActiveMQDestination; import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.Message; import org.apache.activemq.command.Message;
import org.apache.activemq.util.BrokerSupport; import org.apache.activemq.util.BrokerSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* Provides a JMX Management view of a Queue. * Provides a JMX Management view of a Queue.
*/ */
public class QueueView extends DestinationView implements QueueViewMBean { public class QueueView extends DestinationView implements QueueViewMBean {
private static final Logger LOG = LoggerFactory.getLogger(QueueView.class);
public QueueView(ManagedRegionBroker broker, Queue destination) { public QueueView(ManagedRegionBroker broker, Queue destination) {
super(broker, destination); super(broker, destination);
} }
@ -53,7 +57,11 @@ public class QueueView extends DestinationView implements QueueViewMBean {
} }
public void purge() throws Exception { public void purge() throws Exception {
final long originalMessageCount = destination.getDestinationStatistics().getMessages().getCount();
((Queue)destination).purge(); ((Queue)destination).purge();
LOG.info("{} purge of {} messages", destination.getActiveMQDestination().getQualifiedName(), originalMessageCount);
} }
public boolean removeMessage(String messageId) throws Exception { public boolean removeMessage(String messageId) throws Exception {

View File

@ -1233,8 +1233,6 @@ public class Queue extends BaseDestination implements Task, UsageListener, Index
if (this.destinationStatistics.getMessages().getCount() > 0) { if (this.destinationStatistics.getMessages().getCount() > 0) {
LOG.warn("{} after purge of {} messages, message count stats report: {}", getActiveMQDestination().getQualifiedName(), originalMessageCount, this.destinationStatistics.getMessages().getCount()); LOG.warn("{} after purge of {} messages, message count stats report: {}", getActiveMQDestination().getQualifiedName(), originalMessageCount, this.destinationStatistics.getMessages().getCount());
} else {
LOG.info("{} purged of {} messages", getActiveMQDestination().getQualifiedName(), originalMessageCount);
} }
gc(); gc();
this.destinationStatistics.getMessages().setCount(0); this.destinationStatistics.getMessages().setCount(0);

View File

@ -95,7 +95,7 @@ public class QueuePurgeTest extends CombinationTestSupport {
QueueViewMBean proxy = getProxyToQueueViewMBean(); QueueViewMBean proxy = getProxyToQueueViewMBean();
LOG.info("purging.."); LOG.info("purging..");
org.apache.log4j.Logger log4jLogger = org.apache.log4j.Logger.getLogger(org.apache.activemq.broker.region.Queue.class); org.apache.log4j.Logger log4jLogger = org.apache.log4j.Logger.getLogger(org.apache.activemq.broker.jmx.QueueView.class);
final AtomicBoolean gotPurgeLogMessage = new AtomicBoolean(false); final AtomicBoolean gotPurgeLogMessage = new AtomicBoolean(false);
Appender appender = new DefaultTestAppender() { Appender appender = new DefaultTestAppender() {
@ -103,7 +103,7 @@ public class QueuePurgeTest extends CombinationTestSupport {
public void doAppend(LoggingEvent event) { public void doAppend(LoggingEvent event) {
if (event.getMessage() instanceof String) { if (event.getMessage() instanceof String) {
String message = (String) event.getMessage(); String message = (String) event.getMessage();
if (message.contains("purged of " + NUM_TO_SEND +" messages")) { if (message.contains("purge of " + NUM_TO_SEND +" messages")) {
LOG.info("Received a log message: {} ", event.getMessage()); LOG.info("Received a log message: {} ", event.getMessage());
gotPurgeLogMessage.set(true); gotPurgeLogMessage.set(true);
} }