BizTalk 360 has had a cool feature for a while called Process Monitoring. I have recently been setting this up and wanted to talk a little about my scenario.
In my project we have a few daily jobs which are triggered by the scheduled task adapter and then BizTalk goes and extracts data from Dynamics CRM and produces some flat files containing data for a B2B partner. While the process works well I wanted to introduce some monitoring so that if any of the jobs failed to execute by a certain point then BizTalk 360 would raise an alert.
Using the Process Monitoring capabilities in BizTalk 360 I am able to manage my processes with a view like in the below picture. I can easily see which days everything has worked well and which days have had a problem. I am then able to select an individual day and see each individual process monitoring job and workout which has failed.
You can see below my list of process monitoring jobs which I can manage.
The end result of my process monitoring is that if any of my process monitors detect their process didn’t execute within the allotted time window then I get an alert which can indicate to me that something is not right.
I have been building a new feature and my requirements are as follows:
- I have another process kicked off by the scheduled task adapter
- The process triggers at 4:30pm
- A file should be produced for the B2B partner by around 4:40pm
I want to use Process Monitoring so that if the file has not been sent to the partner by 5:00pm then I will get an alert.
The process to do this is described below.
Create a new Alarm
The process of creating alarms is pretty well understood for most BizTalk 360 users. To recap though, the alarm you create can be either a consolidated alarm for multiple types or monitoring or an alarm which is specifically for Data Monitoring. The alarm can be viewed in the Manage Alarms page in the Monitoring section of BizTalk 360. In the list will have the little clock symbol highlighted next to it. This indicates it’s an alarm for data monitoring as shown below.
If you do not already have an alarm available which you can use then follow the steps below.
|1||Click the New Alarm button|
|2||Choose the For Data Monitoring option from the list
|3||On the Alarm basic details include a name and an email address and description then click Next|
|4||The Use this alarm for Data Monitoring Alerts should be activated so click OK
|5||Your alarm will now be created and you can use this to create your process monitoring alert|
Create a new Daily Monitor
Now we have a good understanding of what the daily monitoring will do we need to create our own monitor.
To do this follow the steps below.
|1||Click on the Monitoring
|2||Click on the Data Monitoring menu option then click Data Monitoring
|3||On the data monitoring dashboard click Add New
|4||Choose the Alarm you created earlier from the Choose Alarm drop down list (or use one you already have)|
|5||Provide a friendly name for your alarm eg: Daily Orders Sent|
|6||On the how many messages section you need to think about how many times your process may execute. In this case I want to be sure that my process executes at least once so I will choose the option > and provide the value 0|
|7||My basic details section should look like the below
|8||In the Choose Ports to Monitor section I have chosen the port which will send the message each day which I want to make sure is executed.
|9||In the monitoring times section I have chosen to have my process frequency as daily.
I then specified the business hours as 4:00pm to 5:00pm
I chose to check at the end of the business day
When I first started using the process monitoring it took me a couple of shots to get my head around this but basically the settings above will check at the end of my specified time window so after/at 5pm it will check and see if my send port has executed at least once during this time window.
I you should be slightly cautious about the time window you pick. You do not want too big a time window but I would suggest leaving a little bit of extra time at the end just in case your process is running slow.
In this case I expect my process to run at 4:45pm but waiting until 5pm before checking should ensure that the process will have completed. The end time is probably the time you want to get an alert if it hasn’t ran.
|10||Click Save & Close and Confirm creation of your new monitor|
|11||It will return to the Process Monitoring dashboard and you will notice the Next Run At is blank
|12||After a few seconds you can click the refresh button and you will notice that the Next Run At time is now set so you can see when your monitoring job will run.|
Hopefully you can see it is very easy to setup this kind of monitoring. Some other cases I may use it are:
- I expect BizTalk to collect a message from an SFTP server by 3pm each day, I could check the receive port has executed at 3:15pm
- I might sent loads of messages to a queue each day for an application but if I get less than 100 it might indicate a bottle neck or problem in the system which sends to BizTalk. This alert may act as an early warning
- There are also options around frequency so I may expect to receive 100+ messages per hour from an application and unusually low load may indicate a problem
BizTalk 360 process monitoring can enhance the management of processes you implement but can also make BizTalk even better at being the best error catching system for your other applications.