Problems with MSMQ in real life

Microsoft Message Queuing (MSMQ) is powerful solution for asynchronous applications.
However, things don't look so good when MSMQ must be managed - supplied MSMQ management console (MMC) does not cover many real life situations.

Poison messages

Transactional queues sometime lead to poison messages - messages that practically block entire queue. In case when message processing fails standard solution is to roll back entire transaction, which puts failed message back to queue. If reason for failed processing is not transient, that same message will be retried indefinitely because it is always on top of queue. You need to delete single poison message?
Can't be done from MMC.

Queued components management

Those who use Queued Components know that poison messages will eventually finish in dead-letter queue. How to put that message back to queue 0 to be processed again?
Can't be done from MMC.

Backup and restore MSMQ messages

During software and hardware upgrades there's a need to save an load messages.
Can't be done from MMC.

Need to manage remote queues?

Can't be done from MMC.

Only solution for these problems so far was to programmatically access MSMQ

Wouldn't it be better to check details of message, move them between queues, edit, delete or save them like they're files?
These things are possible now - and very easy.

Download QueueExplorer and see how it makes MSMQ more manageable.

See list of all QueueExplorer features