Microsoft Messaging Queue or MSMQ is a technology, used to communicate between an application running in different networks and systems by sending a message to queues and read messages from queues. It offers reliable message transport, priority-based messaging, efficient routing, and security.
MSMQ can also be used for synchronous and asynchronous message delivery for higher performance at the enterprise level.
MSMQ in BizTalk Server
BizTalk Server provides an MSMQ adapter to connect with the Microsoft Messaging queue to send and receive messages and it supports transactional and non-transactional, remote queues, public, private, and local queues. The MSMQ adapter can read a message from remote transactional and a message from sub-queue. It provides large message support which is greater than 4MB.
The main use case of MSMQ is Asynchronous message processing is if a service sends a message to another application that runs in a different network and the system becomes unavailable the message will not be lost. The service will send a message to a queue and the application will de-queue when it is available.
Following are the common issues when using the message-oriented middleware and those issues can be resolve by using MSMQ.
- No Messages are lost.
- The messages are persisted on the disk and will be dequeued when the service becomes available.
- The service will not die under the heavy load, it will just de-queue and process the message one after another in the case of punctual peak load.
Below are the main pros of MSMQ with other Message-oriented middleware.
- Transactional Queues (Internal transaction, External transactions)
- Can monitor the queues based on perfmon counters: number of messages received per second.
- Available through the network (remote queue)
- Persistence on disk so the messages will not be lost.
- It is free (shipped with windows) and light.
- Good integration with other Microsoft products.
Why MSMQ Monitoring is Important?
Monitoring the queue is very important in a business aspect. For example, A service that sends an important message to another service, and if it’s unavailable, it affects the business even though the message is dequeued. Business people might first need to know that the server is down and need to take further action to rectify the problem. Any downtime or degradation in the performance of queues leads to message loss and lack of communication between servers. Here are BizTalk360 plays an important role in monitoring the queues.
How BizTalk360 Effectively Monitors MSMQ
From v8.1 the BizTalk360 has the capability to monitor the local or remote queues. Users can monitor the queues with different metrics with different threshold conditions. The available metrics are.
- Queue Size
- Dead Letter Message Count
- Active Message Count
- Journal Message Count
- Message Age
Dead letter queue that tracks the undelivered, deleted, and expired messages.
A queue that contains active messages is currently opened by an application for processing.
Queue that stores copies of the message that is sent from the computer.
Message Age is the age of the oldest message in a queue.
The Queue capacity depends on the machine. The user does not bother about the memory limit If consumers consume messages at the same rate as producers produce. User can
Business people can monitor the queues under different threshold conditions based on the business needs. Once the threshold condition is met, the user will get triggered a mail with a warning or error based on the threshold condition.
For example, A user needs to get an alert if the queue size greater than 8MB or a dead letter message count greater than 20 to they can set the threshold condition as below.
Once the threshold condition was met, BizTalk360 immediately triggered an error/warning mail with queue details to the mapped email ids. User/Business people can immediately intimate a technical person for further actions. Like as above the user can set multiple conditions with different metrics to avoid a lack of communications between servers.
MSMQ in V10
In the Latest version v10, we mainly focused on the user interface and experience in MSMQ.
The monitoring queues will be displayed in the grid with relevant information like status of the queue (based on the threshold condition), queue size, active message in the queue, dead letters, scheduled messages, and message age. If the user wants to know the full details of the monitored queue, they can simply click on the eye icon of the queue and will display threshold condition and relevant information in a blade.
With the latest version v10, users can experience a much-improvised user interface and application performance. With the BizTalk360, Users can effectively monitor the local and remote queues and rectify the issues if any occurs.
Why not give a trial on BizTalk360 and check how does it help in maintaining a healthy BizTalk environment? Happy monitoring with BizTalk360!