BizTalk Health Monitor v2 released!

BizTalk Health Monitor MMC snap-in is available since June 2014 with the release of BizTalk Server 2013 R2 and also as a standalone version for BizTalk Server 2010 and 2013. This first version was developed based on the known MBV engine to provide out of the box way to administer your BizTalk environment. BHM gives you a powerful dashboard to monitor the health of your BizTalk group. For more details on BHM and its features visit this post. We collected lot of feedbacks from BHM users to enrich BHM with new features, at the same time made it more reliable to provide a better experience. This post will concentrate on all the new features of BHM with v2.

This version will be available to download for BizTalk Server 2010 and 2013 from BHM download link whereas it will be released for 2013 R2 with the upcoming cumulative update.

Following is the list of new features with BHM v2. Click on each feature to get more details:

  1. Customized Dashboard – Now you can customize your dashboard by adding\removing\resizing custom tiles.
  2. Custom Queries – You can add your own queries to the BHM to make it more personalize and enrich the out of the box BHM query repository.
  3. Custom Rules – BHM v2 will also allow you to add custom rules on your custom queries or existing BHM queries so you can easily monitor your environment specific information.
  4. Profiles enhancements – You can create multiple profiles to monitor a single or multiple BizTalk groups. Based on customers feedback we have made some enhancements in the profile management:
    1. Now you can add the option to specify a different user under which BHM should collect the report.
    2. We also moved the report management from BHM to per profile level so that you can manage the BHM reports for each profile separately.
    3. You can easily create a copy of a profile and reuse it for other group or some other modifications.
    4. You now have an option to select if you want to create the HTML page. You can uncheck this option to preserve disk space.
    5. Renamed it from “Group” to “Profile”

Customized Dashboard

First version of BHM Dashboard comes up with seven default tiles showing categorized information about the BizTalk group. With this version we have given an option to add your own custom tiles. These custom tiles can be created to display any entries from the Warnings, Summary or Query output sections of BHM. This can be done by just a right click on one or more selected entries of these views. You can either pin them to a new or existing custom tiles on your dashboard to display output of a specific query or the portion of the summary report or warnings.  

This feature is useful for a quick display of some critical information of your specific environment in the dashboard view of a given profile. Custom tiles are displayed in green color and can be resized, renamed, removed by just a right click on it.

Another important point is that this customization is done per profile so it gives you a lot of flexibility in customization.

 Like default tiles, each list view (bottom second half of the dashboard) entry of a custom tile provides an hyperlink to the source query and also an hyperlink to the rule which produced it and you can in one click disable the rule. We haven’t put any limit on the number of custom tiles you can have on the dashboard and you can’t remove\rename the default tiles but you can resize them.

This is a sample of dashboard customization:


Let’s have a look at what you can pin and how you can pin custom tiles to the dashboard:

Following are the items which can be pinned to the BHM dashboard:

  1. Warnings and Critical Warning sections
  2. Summary Report sections
  3. Any query from the query report
  4. Any specific row of the query from query report

The steps to add a custom tile for first three are pretty much same. Here’s how you can do it:

  1. Select the item that you would like to add as a custom tile on the dashboard.
  2. Right click on the item and then select “Pin to the dashboard”
  3. This gives you an option to either add a new tile or add to an existing tile

Following are the snapshots of how it can be done in all the three cases:

Warnings and Critical Warning sections


Summary Report sections

Any query output from the query report


If you pin a query output in its own tile, the entire content of the query output will be displayed in the dashboard when selecting the custom tile. If however you add a query in an existing tile, only a link entry to the query will be added in the list view of the custom tile.

Multiple query output links from the query report


Any specific row of the query from query report

You can also choose to display some specific row(s) from a query output by clicking on a custom tile.

For example you can chose to display some specific send ports with their names and status by just selecting their rows in the Send ports query and adding them to the dashboard.

To achieve that:

  • expand the Queries output node of an existing report and then expand the category node of the query.
  • Select the query to display its rows in the MMC detail view (right side)
  • Select and right click on one or more rows which you want to add as a custom tile.
  • Select “Pint to dashboard” to display the context menu.
  • Select which columns you want to show as Caption and its corresponding Values.

In the end this is how the customized dashboard looks like:


BHM Repository customization

This is another important feature of BHM v2: the possibility to add your own queries and rules in the repository of BHM. You can very quickly add your own custom queries in the query repository of a given profile and create your own rules, selecting existing or custom source queries.

Custom queries

BHM repository has a collection of almost 200 queries and now with v2 you have an option to build and add your own queries to this repository. The type of a custom query you can add are:

  • WMI query
  • VB Script
  • PowerShell query
  • Batch file (.bat)
  • CMD

 Once a custom query is added in a profile, it will be saved in that profile and visible in the query tree view of the “Information Level” of the profile settings and can be checked or unchecked, like any native queries of BHM. And like any native BHM queries, a custom query can be pinned to a dashboard.

To add a custom query:

  • Right click on the Profile select Settings.
  • Select the “Queries” tab which also list all the BHM queries.
  • Click on the button “New <query type>”
  • Fill the query body in the new query Dialog Box and test your query
  • Validate the query Dialog Box
  • The query will be visible at that time in the tree view of the information level tab so that you can check it to include in the collect statement
  • Validate the settings page to persist the custom query in your profile

You can of course edit or remove custom queries


  • Only WMI queries allow you to specify a target server; for the other types of query, execution will be local to the server running BHM.
  • Only WMI queries will create columns in the query output; for the other types of query, the output will be on a unique columns named “Output” (this possibility exists in MBV engine used by BHM but not yet exposed)
  • Each query of BHM can be quickly tested using the “Test” button in the tab “Queries” 

Custom Rules

BHM engine has a repository of rules which are applied on its queries and are displayed in the report accordingly. Out of the box BHM comes up with around 450 rules which does various kind of checks on your BizTalk environment. And if that’s not enough BHM v2 will give you an option to write your own custom rules on existing or custom queries.

A Rule in BHM is a set of conditions (AND between the conditions) checking each row of a query output, and a set of triggered actions if all the conditions are validated. Each rule target a query and will be executed at the end of the query execution, parsing each row of the query output to validate the conditions.

A condition is composed of two fields to compare using a predicate. One field represent the column value to check for the current parsed row and the other field is the value to compare with. The predicate can be selected among a given list. You can add as many conditions as you want, and if all the conditions are validated for a parsed row then the rule will trigger some actions.

You can create tree types of action:

  • Add an entry in the summary or warnings sections  (if the information level field  is a warning)
  • Add an entry in the topology section
  • Spawn a process

Follow this to add a rule:

  • Right click on the Profile and select settings.
  • Select the tab “Rules” listing all the BHM rules and their source query.
  • Click on the button “Add custom rule”
  • Select the target query, click ok.
  • Fill the rule properties, conditions and actions in the rule Dialog Box
  • Test your rule : an HTML view will be displayed with the query output and the Summary & warnings sections
  • Validate that the rule is added to the rules list view
  • Validate at the settings page that the rule is persisted as a custom rule in your profile

You can of course edit or remove custom rules



  • You can also add a rule by right clicking on a query in the queries output node
  • To help you creating your own rule, we recommend to look at the details of existing native rules of BHM :

For example select any rule targeting the query “BizTalk events in last hours” and then click on the button “Show Rule details”. You can then select each condition and actions of the rules and see their details.

  • Some rules of BHM will not display conditions because they are coded in a custom assembly.
  • Because of only AND logic between the conditions and of the limited number of predicates available, complex custom rule cannot be created using the rule Dialog Box.

MBV engine used by BHM allows to create complex rules in custom assemblies but this feature is not yet exposed in BHM.


Profile enhancements

Profile nodes

BHM v1 allowed you to create additional group nodes in the BHM MMC to target different BizTalk groups and specify different level of information to collect. We extended this notion to name it as “Profiles” where you can continue to target different BizTalk group but also different sets of customization settings. You can so create multiple profiles targeting a same BizTalk group but having different level of information to collect (different queries created and selected, different rules enabled, etc..)

This is the new settings Dialog Box of a given profile:



Report management

We have moved the BHM report management option from MMC to profiles level. So you can manage your BHM reports per profile basis and mention different specify retention period for your reports. This change be useful if you target different BizTalk groups in you profiles.


Profile Duplication

An existing profile can be now quickly be copied over to create a new profile. This feature is interesting if you want to reuse an existing profile settings for monitoring other BizTalk groups.

To do this, just right click on a the profile and select the menu item “Duplicate profile”


Do not generate HTML files

BHM now provides an option in the “Information Level” tab of the profile settings Dialog Box to not generate BHM HTML files during a collect (analyze). This option can preserve disk space for each report generated in the profile output folder, but you will not be able to open reports in the browser however.

Comments (15)
  1. wow, Love all the customization! Thank you!

  2. Jon R says:

    I can add the snap-in to the MMC console but when I try to create a profile it crashed. Windows server 2012 R2 (french), BizTalk 2013 R2. I have to same problem with BHM v1

    Signature du problème :

     Nom d’événement de problème: APPCRASH

     Nom de l’application: mmc.exe

     Version de l’application: 6.3.9600.16384

     Horodatage de l’application: 52158765

     Nom du module par défaut: KERNELBASE.dll

     Version du module par défaut: 6.3.9600.17278

     Horodateur du module par défaut: 53eeb460

     Code de l’exception: 00000000

     Décalage de l’erreur: 00012f71

     Version du système: 6.3.9600.

     Identificateur de paramètres régionaux: 3084

  3. JP says:

    Hi Jon,

    few questions to help me in the troubleshooting of that issue :

    • Do you have the possibliity to test it on a US server ?
    • I understand that OS is in French but is BizTalk itself also in French ?

    • When you installed the first time BHM on your BizTalk server, did you have a default  profile created successfully ? or do you meet this problem only when reating manually a new profile ?

    • if I send you a debug verson of BHM with traces capabilities, would you be ok to test it ? if yes contact me directly please :

    Thanks to clarify these points


  4. Jon R says:
    • BizTalk is also in French.
    • When I installed for the first time, they were no profile so I had to create one manually, without success.

    • I'll contact you to get the debug version but I don't have the possibility to test on an US server.


  5. Tobias says:

    I've the same issues like Jon R on a german server (one with english BTS, one with german BTS).

  6. JP says:

    Hi Tobias,

    I fixed that issue with the help of Jon.

    Contact me directly ( and I will send you a build which fixes that issue.

    We will releade then in January a post V2 build which will fix definitively that issue and other ones as well.

    Sorry for this inconvience


  7. pramod says:

    Hi, We have

    Dev: BizTalk 2010 – 2 application server – 1 BizTalk DB

    TEST:  BizTalk 2010 – 2 application server  – 2 BizTalk DB

    PROD: BizTalk 2010 – 2 application server  – 2 BizTalk DB

    Do I have to Install BHM  on both application server?

  8. Lex Hegt says:

    Hi Jean-Pierre,

    I started using BHM on BizTalk 2010. Unfortunately, after having configured mail notification, I get an error while trying to send a Test mail. It says 'Failure sending mail. BackTrace: at System.Net.Mail.SmtpClient.Send(MailMessage message) as Microsoft.BizTalk.BHMSnapin.BTGroupSettinsDlg.TestSendMailBtn_Click(Object sender, EventArgs e)'.

    Any idea what might be wrong?

    Thanks in advance!


  9. Lex Hegt says:

    Hi Jean-Pierre,

    Fixed the problem with SMTP. When you try send a report but this fails, you get a better error message of what went wrong. I found out that the SMTP server could not be resolved. After fixing this I was able to send mails!



  10. Lex Hegt says:

    Hi Jean-Pierre,

    Could it be that the rule Total Host Instances Running under BizTalk Hosts does not return the correct value? I've tested it on 2 environments and it states that no Host Instances are running, while in fact they are running (verified in Admin Console).

    MBV (v13880) returns the correct state of the Host Instances.



  11. Lex Hegt says:

    Haven't fully found it out yet, but it seems to deal with authorizations. I need to take a better look at this but at certain circumstances BHM returns the correct values.



  12. Paul says:

    Hello JP,

    So BHM V2 is only available for Biztalk 2013 R2 through the CU package?

    When is the CU package scheduled release?

    Thank You


  13. JP says:

    Hello Paul,

    BHM v2 is available on the Microsoft Download  Center. We provide the link in the first post of the BHM blog.

    The version in BizTalk 2013 R2 is the v1.

    An update to v2 is coming fixing some issues and providing new features.

  14. Prakash says:

    Hello Guys,

     I am facing issue when I try to check "Send a mail only when critical warnings are raised".  The raid button is getting unchecked automatically. Any help is greatly appreciated.


  15. JPAUC says:

    Hello Prakash,

    yes its is a known issue of v2 that I forgot to document in the blog.

    it is fixed in the upcoming v3 of BHM  (should be available in two weeks).

    As workaround , you can create a global property named SENDMAILALWAYS in your XML profile file and assign to it a value of "True".

    ex:     <GlobalProperty ID="SENDMAILALWAYS" Value="True" />

Comments are closed.

Skip to main content