What is BizTalk MsgBoxViewer (aka "MBV") ?

As the name imply, MBV analyze in details your BizTalk 2004, 2006 or 2009 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.
As you can imagine, red warning are considered as critical. All these warnings are based on my own experience as a BizTalk Support Escalation engineer but also of course on some "official" recommendations/supportability for BizTalk Databases and known issues around BizTalk.
This tool can analyze all types and versions of BizTalk 2004, 2006, 2006 R2 or 2009 configurations.

Let me enter now in details of MBV :

MBV is provided as two executables : a Console and a Gui application.
These two versions share a commong engine in C# reading only in the BizTalk Dbs and Servers registry to retrieve useful lists of infos.

Gui tool also display in some lists the HEADER REPORT and the SUMMARY REPORT.

Prefer to execute these tools on a BizTalk Server to get automatically Mgmt db location/name and BTS version info, but you can also start them on any type of server (SQL Servers, XP/VISTA clients,...)

IMPORTANT !! : Do not start them from a network share otherwise you will get some Security exceptions

Output Files :

Both tools generate by default 3 files:

- an HTML file which contain all reports. => This is the first file to open to see well formated result of the health check.

- an History log file which contain in TXT format the history of all reports. (you can purge it inside the GUI Tool).

- a Status log file which contain a detailed status of each query execution and possibly errors met (you can purge it inside the GUI Tool). This status log file is important to read if some errors were met during the collect process. It displays the start time of each query.

=> You have an option in both Gui and Console versions to generate also an XML file.
If you select this option, the tool will generate a XML file in the same output folder than the HTML containg its schema and all reports details. You can so build any parsing tool you want to analyze the collect output or build you own XLS sheet to present the result in format you prefer.

Both HTML/XML and History Log files generate 6 important type of Reports :

 

HEADER REPORT:

This report is the first one to appear an list the options selected in MBV, the target Mgmt Db location and BizTalk Version.
 

WARNINGS REPORT:

This report is the first one to focus on !

It reports all warnings found in the BizTalk MsgBox or DTA Db and will flag them in yellow or red depending of their severity.
Lot of entries in this report have also a link to a corresponding Query Report (see below for more info on that) and HTML link(s) to a corresponding MSDN document(s) or MS KB article(s).

=> ALL red warnings are usually critical to solve for a good health of BizTalk dbs !

SUMMARY REPORT:

It reports a summary of useful info like hosts configured, running hosts instances, running tracking hosts, ports disabled or stopped/largest, number of msg in suspend Queues and work Q, and many other ones !...
Lot of entries in this report have also a link to a corresponding Query Report (see below for more info on that) and HTML link(s) to a corresponding MSDN document(s) or MS KB article(s). 

 

TOPOLOGY REPORT:
This report show you quickly the topology of the BizTalk group with type of ports/host/db hosted on each server.

This report contains indeed a per server sub-report (BizTalk or SQL Server) and sub-report contains main items hosted in the corresponding Server : Dbs+Jobs for a SQL one, Configured Hosts+Running Hosts+adapters used+Ports+orch for a Biztalk one).

If you select in the GUI tool the optional queries (or /ALL in the Console version), it will complete each server list with more info : Server Date/time, Server CPU info, Server CPU Usage, Mem Usage, CPU and Mem of running host instances, CPU and Mem of running SQLserv.exe, DTC and TCP settings, and much more...

QUERY REPORTS:
This section list all the generated query reports ordered by query category and based on the query you decided to execute.
All these query reports are expandable/collapsible
you will see inside the list of Hotfix installed, Hosts, Host instances, ports, pipelines, orchestrations deployed, and much more...

Title of queries which were not selected to be executed will appear as disabled in the HTML so you can see very quickly which query was selected to be executed.

MSG FLOW REPORT:

If the optional Query "Message Flow" is selected in the optional queries list, this report will try to display msg flows it can identify based on the Activation subscriptions, ports and orchestrations found.This report can not make an exaustive list of msg flows but it should be able to display the main ones.
A msg flow should be read from left to right and they are ordered by Receive port

Options:

By default the console and GUI tool will execute lot of queries but not all of them, so you can select in the GUI tool additional optional queries to execute.
Gui tool provide you a button to Select or Unselect ALL queries in each category and you have the "/ALL" option in the Console version to execute ALL Queries of ALL categories.

GUI tool has also an option to start periodically a collection (enabled immediately when you check the "Collect Each" checkbox)

You have also an option in both Gui and Console versions to generate an XML file (see above for more details on this XM file).

Recommendations:

I would recommend in general to try the first collect with the default queries selected.
Even if you have some errors like Access Denied, they will appear in the html file and the status & errors file but they won't prevent the collections to stop. Doing that allow you to get the max info the tool can try to have, including the NON-SQL queries which are the last ones in the optional queries list; these last NON-SQL queries use WMI or remote REGISTRY access to get some perf counters or get some registry settings.

These NON-SQL queries can require some special user rights in additional to the BizTalk admin one because they can target all servers belonging to the checked BTS group and not only the Biztalk DBs ones on only SQL Servers.
So sometimes BTS admin user right is not enough but once again, if you have access denied errors with the NON-SQL queries, it is not critical because you should have already lot of info collected and lot of rules evaluated.

Furthermore the TOPOLOGY REPORT is populated with additional info from these NON-SQL queries (CPU type, CPU usage, mem, running BTSNTSVC.EXE pids, SQLSERV.EXE pid, etc…) and some additional warning can be raised also based on these NON-SQL queries, like the throttling ones : In Biztalk 2006, except a biztalk trace (and maybe eventlog, not sure ! ) only perf counters can show you if you have throttling, so if you don’t select the query “BTS perf counters” in the tool, you will not have this rule evaluated and no possibility to have the corresponding warning.

If you notice really lot of problems when ALL options are selected, well, just unselect them and make a collect with the base queries :-).

Finally, each time you collect the output files, please do not forget to collect also the status/errors file, it can allow me to analyze them if you have to report me some problems & errors and I can try quickly to determine the root cause.

 

- You want a sample of generated report HTML file ? just download one below generated on my BizTalk test machine. This one is simple of course and consist of just one Server hosting both BizTalk Server and SQL Server but it will you a good preview :

http://blogs.technet.com/jpierauc/attachment/2662771.ashx

 

 - Click here to access to a complete MBV Q&A:

http://blogs.technet.com/jpierauc/archive/2008/07/22/msgboxviewer-mbv-q-a.aspx

 

I hope so you will find useful this tool and feel free please to share your feedbacks & suggestions via this blog, or ask any questions regarding MBV usage or output

Thanks !

JP

MsgBoxViewer9_23__07_05_2008__15_38_31.html