* @throws JMSQueueHandlerException
*/
public static void clearQueue(String queueName) throws JMSQueueHandlerException {
QueueConnection queueConnection = null;
QueueSession queueSession = null;
QueueReceiver queueReceiver = null;
try {
// Grab connection and create new session
queueConnection = QueueConnectionManager.getInstance().getConnection(
Utils.getTenantAwareCurrentUserName());
queueSession = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
// Create receiver
Queue queue = getDurableQueue(queueName, queueSession);
queueReceiver = queueSession.createReceiver(queue);
queueConnection.start();
// Pop all messages out
while (queueReceiver.receive(
MessageBoxConstants.MESSAGE_RECEIVE_WAIT_TIME) != null) {
// No action on messages
}
} catch (QueueConnectionManagerException e) {
throw new JMSQueueHandlerException(e);
} catch (JMSException e) {
throw new JMSQueueHandlerException(e);
} finally {
if (queueReceiver != null) {
try {
queueReceiver.close();
} catch (JMSException e) {
log.error("Failed to close queue receiver", e);
}
}
if (queueSession != null) {