Data Monitoring of BizTalk HL7 MLLP Ports

Published on : Aug 9, 2016

Category : BizTalk360 Update

srini

Author

Having experience of working on large BizTalk implementations in healthcare, the one thing I realized is that monitoring of the data flows in receive ports and send ports is crucial.

MLLP Receive Locations

Sometimes upstream systems may stop sending messages to the receive locations due to application issues or connectivity issues. Although we do not see any problems in the BizTalk environment, this might be a potential issue which may affect the overall business and needs to be reported to the support teams. Monitoring such events is called Non-Event monitoring.

MLLP Send Ports

Since the send ports are generally configured for ordered delivery, messages start queuing up when a downstream system goes down or is facing issues in sending HL7 ACKs back. It is very important to keep an eye on the queue growth to identify a potential problem. Also If the queue length exceeds the thresholds in the throttling settings, then BizTalk may get into throttling state which can badly affect the server performance. Traditionally people were writing custom scripts or BizTalk monitoring portals to address these two issues. I remember writing a custom portal to monitor these ports using WMI scripts and ExplorerOM. Recently I learned that BizTalk360 supports these scenarios out of the box. In this blog I will try to explain how to set up BizTalk monitoring in BizTalk360 for above discussed scenarios.

Note

This blog assumes that you have installed BizTalk360 successfully and understand the basic concepts of monitoring and alerting using BizTalk360.

Monitoring the MLLP Receive Port

Let us say we have a receive location named RcvLociPM_ADTs to receive ADT HL7 messages from a Patient Information System and we expect the below volumes in business hours.

Days

Time Interval

Warning Alert When

Error Alert When

Mon-Friday 8.00AM -11.00 AM (Peak Hours) <50 messages received in 15 minutes <10 messages received in 15 minutes
Mon-Friday 11.00 AM – 5 PM (Non-peak Hours) <5 messages received in 15 minutes No messages received in 15 minutes
In order to set up BizTalk monitoring on these volumes in BizTalk360, we need to create an alarm and start adding data monitoring alerts.

Creating the Alarm

An alarm is a logical container to hold various monitoring configurations. Let us create a data monitoring alarm named “ReceiveLocationsExpectedVolumeAlarm” by following steps in the article How to create a data monitoring alarm in BizTalk360 . Creating a Data Monitor

Creating the Process Monitoring

We need to create four Process Monitors listed below and map them to an alarm “ReceiveLocationsExpectedVolumeAlarm”.

Monitor Name

Business Hours

Expected number of messages

RcvLociPM_ADTs_PeakHoursVolume_Warning 8 AM to 11 AM 50
RcvLociPM_ADTs_PeakHoursVolume_Error 8 AM to 11 AM 10
RcvLociPM_ADTs_NonPeakHoursVolume_Warning 11 AM to 5 PM 5
RcvLociPM_ADTs_NonPeakHoursVolume_Error 11 AM to 5 PM 1
Follow the steps below to create process monitoring alerts and map them to “ReceiveLocationExpectedVolumeAlarm
  1. Navigate to “Data Monitoring”, select “Process Monitoring” and click “Add New”. BizTalk Monitoring - Adding a New Data Monitor
  2. In the “Basic Details” select the alarm “ReceiveLocationExpectedVolumeAlarm”, and give a friendly name ”RcvLociPM_ADTs_PeakHoursVolume_Warning. Set greater than fifty as expected number of messages. BizTalk Monitoring - Creating an Alarm & number of expected messages
  3. In the “Choose Ports to Monitor” section select the receive location “RcvLociPM_ADTsBizTalk Monitoring - Choosing Receive Ports to Monitor
  4. In the “Set Monitoring Times” section select the Business hours 8 AM to 11 AM as shown in picture below BizTalk Monitoring - Set Monitoring Times
  5. Click Save and Close. Follow the steps mentioned in this section to create three more data monitoring alerts as listed in table above.

Notification

Once the monitoring is set up, we will start seeing email notifications triggered from BizTalk360 when there is a violation. BizTalk Monitoring - Data Monitor Email Notifications

Monitoring the MLLP Send Port Queue

When the send port is configured for ordered delivery and is retrying or waiting for a long period to get the HL7 ACK back from the downstream system, messages start queuing up in a single instance of the send port with status “Queued (awaiting processing)” as shown below. BizTalk Monitoring - Monitoring the MLLP Send Port Queue It is important to keep an eye on the build-up of this queue. Let’s consider a send port named SendPortPathologyXYZ which is configured for ordered delivery and the queue is growing because of some issues at a downstream system.

Creating the Alarm

In order to start monitoring, first of all we need to create an alarm. Alarm is a logical container to hold various monitoring configurations. Follow steps in BizTalk360 article How to create a data monitoring alarm in BizTalk360  to create a data monitoring alarm. After following above article, I was able to create a data monitoring alarm with name MLLPSendPortQueueAlarm. BizTalk Monitoring - Manage Alarms

Creating the Message Box Data Monitor

Follow the steps below to create a message box data monitoring and associate it with MLLPSendPortQueueAlarm.
  1. Navigate to Data Monitoring, select “Message Box Data” and click “Add New”. BizTalk Monitoring - Create Message Box Data Monitor
  2. In the “Basic Details” section, choose MLLPSendPortQueueAlarm as the alarm and give a friendly name. Since I want to monitor the queue length in the send port SendPortPathologyXYZ , will name it as SendPortPathologyXYZ_DataMonitor. BizTalk Monitoring - Basic Details section (Choosing an Alarm and Friendly Monitor name)
  3. In the “Set Data Filter” section, create a query which selects all “Queued (Awaiting Processing)” messages for the Service Name SendPortPathologyXYZ. BizTalk Monitoring - Setting the Data Filter
  4. I would like to send out a warning if the queue length grows to more than 200 and an error if the queue length grows above 500. This is configured in “Set the Notification Condition” section. BizTalk Monitoring - Setting the Notification Condition
  5. Configure “Set Monitoring Times” section based on how frequently you want to receive alerts BizTalk Monitoring - Set Monitoring Times
  6. When you save the monitor, data monitoring is set on your send port. BizTalk Monitoring - Save the Message Box Data Monitor details

Notification

Once monitoring is setup, you will start receiving a rich colour coded email alert whenever a violation happens. BizTalk Monitoring - Data Monitoring Email report

Summary

BizTalk360 has out of the box support for  monitoring:
  • processing by the ports –Process Monitoring,
  • message processing – Message Box Data, Tracking Data
  • BAM, EDI and ESB exceptions data –BAM Data, EDI Data and ESB Data
You should take full advantage of these data monitoring capabilities to ensure support teams know any potential issues as soon as they occur.