1) If you want to receive messages synchroneously use MessageConsumer.receive
2) Basically, 'peek' in queues means to return, but do not remove, the head of the queue. For this you can use QueueBrowser to look at messages on a queue without removing them.