Microsoft Message Queuing (MSMQ) is a component of the Windows operating system that allows cooperating applications to send and receive messages to each other, even if the intended recipient application is not running or the computer on which the sender or recipient application is running is disconnected from the network. Messages are stored and forwarded by MSMQ until they reach the destination queue. Later, when a recipient application runs, it can retrieve the messages from the queue. MSMQ de-couples sender and recipient applications so they do not need to run at the same time. Message Queuing provides built-in enhanced security, transaction support, and other features.
MSMQ is responsible for reliably delivering messages between applications inside and outside the enterprise. MSMQ ensures reliable delivery by placing messages that fail to reach their intended destination in a queue and then resending them once the destination is reachable. It also supports security and priority based messaging. Dead letter queues can be created for looking at messages which timed out or failed for other reasons.
MSMQ is useful when custom applications need to communicate reliably across potentially unreliable or occasionally connected networks. MSMQ is also useful as a persistent storage mechanism for a list of items. For example, a server-based application could use MSMQ to store queued orders that would be submitted as a batch to an order-processing system at the end of the day.
|Product Component||OS Type||Versioning||Pattern Depth|
|MSMQ||Windows||OS, WMI Query||Instance-based|
Microsoft Message Queuing is a Windows service, so the pattern discovers Microsoft Message Queuing on Windows only.
Version information for the product is currently collected using the following methods:
The patterns query the following registry keys for the storage location:
The pattern tries to use an OS version attribute from related Host node as Microsoft Message Queuing version.
The pattern supports WMI query versioning.
On Windows the CIM_DataFile class in the root\CIMV2 namespace contains properties of the files present on the host. The version of the executable process (if the process list contains absolute paths) can be obtained by running the following WMI query:
If the output is retrieved it is assigned to the 'version' attribute of the Software Instance.
Only one Microsoft Message Queuing can run on a host.
Software Pattern Model
The MSMQ pattern triggers on the mqsvc.exe process (MSMQ service).
The MSMQ pattern creates an instance-based Software Instance, its key being based on si type and host key.
List of queues is retrieved either from the filenames in the lqs subdirectory in the message file location, or from the output of the following WMI query:
Software Instance details of Microsoft Message Queuing Service generated with this pattern:
Subject Matter Expert input will be welcome on any other potential approaches not discussed to improving product versioning coverage and depth of Microsoft Messaging Queuing.
This pattern was tested against a live instance of the Microsoft Messaging Queuing.
There are no known open issues with this pattern.
15 Oct 2014