public static Message topicSubscribe(TopicConnection cnn, String topicName, long timeout) throws JMSException { TopicSubscriber receiver = getTopicSubscriber(cnn, topicName); Message msg = receiver.receive(timeout); if (msg != null) msg.acknowledge(); receiver.close(); return msg; }
public static void drainTopic(TopicConnection cnn, String topic) throws Exception { TopicSession session = cnn.createTopicSession(false, Session.DUPS_OK_ACKNOWLEDGE); Topic t = session.createTopic(topic); TopicSubscriber subscriber = session.createSubscriber(t); Message msg = subscriber.receiveNoWait(); while (msg != null) { try { msg.acknowledge(); } catch (JMSException e) { } msg = subscriber.receiveNoWait(); } subscriber.close(); session.close(); }