[英]activemq logging of messages enqueued by producer and dequeued by consumer
[英]ActiveMQ purge enqueued messages on create consumer
我有一個JAVA應用程序,我需要在創建使用者時清除所有排隊的消息。
我有下一個代碼:
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(messageBrokerUrl);
try {
connection = connectionFactory.createConnection();
connection.start();
this.session = connection.createSession(this.transacted, ackMode);
Destination adminQueue = this.session.createQueue(messageQueueName);
this.replyProducer = this.session.createProducer(null);
this.replyProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//Set up a consumer to consume messages off of the admin queue
MessageConsumer consumer = this.session.createConsumer(adminQueue);
consumer.setMessageListener(this);
} catch (JMSException e) {
log.error("Error al configurar servicio de colas MQ. " + e.getMessage());
}
我如何清除已排隊的消息,然后創建使用者,以防止處理排隊的消息。
JMS API沒有清除目標的已定義方法,因此,除了在目標上創建使用者並讀取,直到通過使用對consumer.receive(1000)
或類似的內容。
如果您不介意直接使用ActiveMQ對象,則可以嘗試使用ActiveMQConnection中的destroyDestination
方法。 如果有對目的地不活躍用戶這種方法會從代理刪除目的地。
否則,您將不得不使用ActiveMQ代理公開的JMX API來實用地清除相關目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.