Long running transactions
are a common scenario in BizTalk integration. They are quite often designed for purpose.
Let us take an example of a payment processing portal. The portal may raise a purchase order based on payment initiated by the user, but the order can be processed only after the system receiving a payment confirmation. In this case, there are too many systems interconnected. The payment acknowledgement may depend on internal and external systems like applications in the finance department pending approval or banks for authorizing and completing the payment transaction. The purchase portal has to wait for the message from these systems for further processing of the order. An ideal construct for this case is to use a long running orchestration and making the process to wait for the appropriate messages to arrive.
If the message takes unusual delay to arrive, the orchestration engine may dehydrate the orchestration instance with a proper correlation set. We may be interested to monitor this scenario for multiple reasons. To see if an orchestration instance is dehydrated for a very long time and take necessary action or check for how many instances are in dehydrated state. It is a very common situation and administrators depend on various tools like BizTalk Admin Console, SQL queries and other custom built tools. This needs constant manual intervention to switch between tools, write appropriate queries and correlate the data from these different corners to understand the situation.
There are no straight forward system to achieve this. BizTalk360 has recently introduced an interesting feature BizTalk Server Data Monitoring
and now it is capable to monitor such above discussed and similar scenario
. BizTalk360 monitors and logs the results. Additionally, it can be configured to send notifications through email.
We need to create a Message Box Data Monitor
in BizTalk360. Please refer to the this article How To Create A Data Monitor In Biztalk360
In the Set Data Filter
section configure the following filters. This is as similar to the querying of dehydrated orchestrations in the BizTalk Administration Console. Additionally, We can filter for Application, Host Name, Service Name etc to be more specific on which orchestration we need to monitor.
For example, We can monitor for dehydrated biztalk orchestrations specific to a service name. In the query type, select Running Service Instances
and set Instance Status
Next, We select the Service Class
and select the specific Service Name
, here Payments.Orchestration_Payment
Next, We have to configure the threshold violations for the above condition. We can set Warning
thresholds. If the number of biztalk dehydrated orchestrations satisfy these conditions, an alert is triggered in the system and appropriate notifications are sent. Here, a warning will be triggered if the number of dehydrated instances is between 1 and 5 and an error will be triggered for more than 5 dehydrated instances.
We can also set the monitoring window in which part of the day the BizTalk dehydrated orchestrations are to be monitored. For example, We can set the monitor to check for any dehydrated orchestration every 30 minutes
between the business hours (here 09:00 am to 06:00 pm
) every day.
Based on the above configuration, the BizTalk360 will start monitoring for any instances that violate the threshold configurations periodically.
All the monitor results are represented efficiently in the Data Monitoring Dashboard
Based on the configuration, an email notification with necessary details is also sent.
Please refer Data Monitoring
to understand and use the feature in detail.
Wish you a simple and healthy monitoring experience through BizTalk360!