In MSMQ there is a functionality that lets users to peek at a message without actually consuming it. i.e. I peek at the next message in a Queue based on MessageID. If I am not interested in the message I can put the message back into the Queue (i.e. unacknowledged are added back to the Queue and the messageID is maintained).
Similar functionality also exists in RabbitMQ. However in RabbitMQ its not done in a clean way. You can simulate peeking messages by taking the message off the queue and then not sending an acknowledgement so RabbitMQ will then add that message back to the queue. However I read that RabbitMQ can reorder the messages and increment message IDs when unacknowledged messages are re-added to the queue.
Has anyone encountered this problem before.
Also does any one know if IBM MQ supports this behaviour/functionality of peek and seek?
regards D
In IBM MQ, a way to view messages on the queue if they are not too large in size is the amqsbcg sample program (browse as Tim mentioned). You can use this to dump messages to an output file without doing a destructive get. You could then parse the file to check for the message ID or other info you need. If you found a message that matched the criteria you needed, you would then have to do a GET with those options to actually remove it from the queue.
This sample program can be found in
Where $MQ_HOME is the appropriate location for your operation system. The default location for $MQ_HOME is:
AIX: /usr/mqm
Unix: /opt/mqm
Windows: C:\Program Files\IBM\Websphere MQ
Another possible option may be the "qload" MO03 support pac. It has an option to let you filter by Message Id, CorrelId Id or Group Id
http://www-01.ibm.com/support/docview.wss?acss=wmq062007&rs=171&uid=swg24009368