BizTalk Health Monitoring and Message Box Viewer

BizTalk Message Box Viewer (MBV):

BizTalk provides Message Box Viewer (MBV) tool out of box to generate report for BizTalk health and performance monitoring activity. It’s collecting details about BizTalk Server, Configuration, database and performance details.

MBV analyze in details of BizTalk MsgBox Db but also other BizTalk Dbs and generates an HTML file containing different REPORTS including a “WARNINGS REPORT” which report in yellow and red some warnings.

This tool comes along with BizTalk. When we installed BizTalk, this will available at below location:

C:\Program Files (x86)\Microsoft BizTalk Server 2013\SDK\Utilities\Support Tools\MsgBoxViewer


Dashboard and Warnings report can now be sent automatically by mail after a collect


Purpose of MBV:

  • Health Check tool to analyze quickly and easily a BizTalk group
  • Generates different sub-reports in HTML and plain text files
  • Targeted users : BizTalk Admins

Why MBV ?

  • Retrieve quickly maximum info from a BizTalk Production System in one click
  • Avoid sending too many queries and their usage to customers!
  • Identify all possible issues which could be critical or need attention
  • Present them in a user friendly Format
  • Emit suggestions via comments and Doc links

Features of MBV:

  • Provided in BizTalk 2013 and each next CU.
  • Support all BizTalk versions since BizTalk 2004
  • Safe to run in Production
  • No setup, just copy and run
  • Frequently used by both customers and MS engineers to check for the good health and integrity of a BizTalk group, and to retrieve a complete topology of the BizTalk Platform
  • Used by BizTalk Users to deliver Health Checks
  • Checks the integrity of BizTalk Databases and propose immediate remediation tasks to famous “Terminator” tool  (
  • Provided as both a GUI and a console application. The console version is used more and more as a custom monitoring tool to be scheduled as a task, generating periodically HTML reports but also sending periodically raised warnings in the App journal, and the warnings and dashboard in emails. It can so complement  ideally System Center Operations Manager (SCOM) and the BizTalk Mgmt Pack to provide a complete monitoring of a Production BizTalk platform
  • Query and Topology Reports
  • Support ALL versions of BizTalk including BizTalk 2K4 and 2K9
  • Can run on ANY type of Servers – SQL, XP/Vista client
  • Can analyze ALL BizTalk complex configurations  : Multiple Servers  & Multiple MsgBox databases
  • Easily Extensible (XML, DLL) – MS Internal for the moment

The goal of MBV is to retrieve the maximum amount of information from a BizTalk System in one click in the minimum amount of time, identify all possible issues which could be critical or need attention, and present them in a user friendly format.

Below is screenshot of Summary Report




WCF-Custom (SQL) Receive Location Configuration with BizTalk in Multi-Server Environment

Issue:  In multi-server BizTalk environment, BizTalk WCF-Custom (SQL Binding) Receive Locations poll SQL Server more than one times instead of single polling.

Normally in multi-server BizTalk environment, we are creating host instances for each host on each BizTalk server. But BizTalk has little limitation for active/active multi-server setup.

Below are adapters which only work on single server host instance.

  • FTP
  • POP3
  • WCF-SQL (Receive Adapter)

Normally we get information on internet search about FTP and POP3 adapters for single server and forgot about mention about WCF-SQL Receive adapter. So when we deploy code on multi-server environment then we face multiple polling from WCF-SQL Receive location.

Reason: We have created two Host Instances for Host for Both BizTalk Servers and apply that host on Receive Location which is polling to Database.  So both Host instances are polling data from SQL that’s why BizTalk receive two time data.

If we apply multiple host instances on these adapters for Receive Location then every host instance will run and process data into BizTalk.

For more details you can refer to below link:


                     We can apply one of three approaches to resolve this issue. Below 2nd is mostly used in BizTalk development scenario.

  1. Create a Single Server Host Instance as Receive Handler for WCF-Custom (SQL) Receive Location
  2. In SQL, update Stored Procedure with lock for processing data and update the flag not to send any data 2nd time call until unless data is modified.
  3. Create Host Instance cluster which run on both machine. It will run as active/passive mode. If one server will unavailable then start polling with other server.

Below is link for setup for cluster Host Instances