JMS also supports inspecting messages in a queue without receiving them. The following program prints all messages in a queue AQueue, else prints a message if the queue is empty.
import javax.jms.*; public class Browser {
public static void main(String[] args) {
try {
ConnectionFactory cf = new com.sun.messaging.ConnectionFactory();
((com.sun.messaging.ConnectionFactory)cf).setProperty(com.sun.messaging.Connect ionConfiguration.imqAddressList,”172.16.5.81:7676”);
Connection con = cf.createConnection();
Session sn = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination dest = sn.createQueue(”AQueue”);
QueueBrowser browser = sn.createBrowser((Queue)dest);
java.util.Enumeration msgs = browser.getEnumeration();
if ( !msgs.hasMoreElements() )
System.out.println(”No messages in queue”);
else {
while (msgs.hasMoreElements()) {
Message tempMsg = (Message)msgs.nextElement();
System.out.println(”Message: ” + tempMsg);
}
}
sn.close();
con.close();
} catch (Exception e) { e.printStackTrace(); }
}
}
Make sure that a queue with name AQueue exists before running the program.
Source: Uttam Kumar Roy (2015), Advanced Java programming, Oxford University Press.