MSMQ Inspector is a small and fast message queuing inspection tool.
The use of MSMQ Inspector is geared towards the development and testing of applications that use MSMQ, a somewhat painful experience at times!
The "TLDR;" of this help document is:
- View message contents including header information (for WCF messages)
- View All Messages of All Queues on your server
- Use the Constant Peek Mode checkbox to watch for changes
- Quickly Purge one of more queues
- Copy or Delete specific messages
- Use the Ghost Deleted Messages option to keep messages around for inspection after being processed
- Find Text in the messages
- Import and Export messages in bulk
- Use the Queue Graph to monitor messages on a server
- You can also develop custom plugins for specific needs using the same framework of the tool
List and inspect messages of various formats
When you start up MSMQ Inspector for the first time the current machine will be added to the server list. By default on the left is the Queue Inspector. Here the queues are listed and operations can be performed.
Expand the list to see the queue's, if you double click on a Queue (or Journal) node the Queue Message List is displayed (referred to as "View Messages" in the context menu). You can also access both of these from the queue node itself by the context menu.
This Queue Message List displays:
- The Queue path
- A list of messages currently in the queue (if any)
- A Details tab with message information
- A Content tab that renders the message body
You can view the contents of messages that are transported as WCF, XML or text. A binary and HEX view is also available.
Right clicking on any of the messages in the list will give additional menu options such as delete, copy, paste and a bulk send.
Constant Peek Mode and Ghost Deleted Messages
Constant Peek mode is about MSMQ Inspector constantly watching the queue for incoming messages. When the "Constant Peek mode" checkbox is ticked, a new message should be added to the view. Currently this is an experimental feature to the behaviour may move around a little.
Ghost Deleted Messages - Nothing too crazy here, we added an option (Edit - Options menu) called "Ghost Deleted Messages". It simply means that when enabled, the message will stay in the view after it has been processed but the text will go "grey" to show that it is no longer active.
Find text in messages
To find a message in a queue with specific text, use Edit / Find (Control+F) from the menu. The messages in the current queue will be searched, if the text is found the item will be selected. The text matching is based on the current setting of the queue's "deserializer". You will get different results searching when the deserializer is "binary" as opposed to "WCF" for example.
Delete individual messages
You can delete one or more messages from a queue. Note that what you are actually doing from a message queuing perspective is "reading" the message. If for example the queue journal is on you will see a copy of the message there after the "delete".
"Copy" and "Paste" individual messages
This operation is not like a typical windows copy and paste, in effect it is more like a "duplicate message" operation.
To copy and paste a message to a queue:
- Select one or more messages from the list (you can hold down the Control or Shift key to help highlight multiple messages)
- Right Click the message and chose the "Copy Selected Queue Messages" menu option (Alt+C)
- (The message is now in a buffer, similar to the windows clipboard)
- Right Click again and select either "Paste multiple Queue Messages" (or "Bulk Paste multiple Messages...")
The message and its properties will be "sent" to the Queue. Note that message attributes such as the Lookup ID, the Label and the Arrival Time will always be new.
Export and import message data
Messages can be exported to file and later imported if required. Messages are exported in the format
Simulate load, duplicate, modify and resend messages
To import messages the format needs to match the queue. The easiest way to do this is to export messages in the "byte-csv" format and then import them again using the "Import Message(s) and Send to Queue" menu option. You can even resent messages to WCF Queues using this method.
Monitor the Queue Counts with the Graph View
The various queues for a server displayed in graph format. By default the graph refreshes every 15 seconds but you make that whatever you want. Check the "Show System Queues" option to include these queues too.
Custom Plugin Development
For information on using or developing custom plugins to extend or change the behaviour of the application see our GitHub repository: