Welcome to TechNet Blogs Sign in | Join | Help

My Biztalk Tools blog

MsgboxViewer blog
MsgBoxViewer (MBV) Q & A

 

Q: What is the purpose of MBV ?
A: 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.


Q: How is MBV different compared to other known tools like BPA or BizTalk Server 2006 Documenter ?
A: While BizTalk Documenter generates a nicely formatted overview document of a BizTalk Group, BPA and MBV are health check tools and generate reports of a BizTalk System that are complementary to each other.

   - BPA was developed by the PG for BizTalk 2K6 and reports two levels of warnings. BPA 1.1 was updated to contain some MBV rules but also contains a lot of additional rules relating to  BAM and the Rules Engine for example.
     BPA also provides detailed documentation on its own warnings.

   - MBV was developed by a Microsoft Support Engineer in collaboration with BizTalk Support and Field teams and contains some BPA rules but also adds additional ones.
     MBV reports two levels of warnings with corresponding links to MS KB articles, MS BizTalk Documentation, or BizTalk Whitepapers (but does not provide its own documentation of its warnings).
     MBV also retrieves detailed collapsible reports of information related to a BizTalk Group including its settings and its complete topology organized by servers, so MBV is more a mix of BPA and BizTalk Documenter.


Q: Which version of BizTalk Server can be analyzed with MBV ?
A: All versions and their SPs since BizTalk 2004 can be analyzed.


Q: Is MBV safe to run on a Production System ?
A: Yes, firstly, MBV does not need to be "installed" and secondly it uses only read SQL queries targeting the MsgBox, DTA, or Mgmt DB and uses WMI to get info about the topology.
   The queries it contains were tested to not generate performance issues and locks


Q: Can MVB generate locks, deadlocks or Orphaned SPIDs on BizTalk DBs that it queries?
A: No, MBV uses only one thread for all its queries and does NOT use MSDTC transactions.
    If you have other health check tools querying your BizTalk DBs and running at same time as MBV I cannot predict the results.
    It is preferable to avoid using other Admin BizTalk tools when you use MBV.


Q: When I execute MBV, I get a "SecurityException" error
A: This error is raised when you start MBV from a remote location. You need to copy MBV locally and start it from a local folder 


Q: Is MBV able to analyze large BizTalk configurations involving multiple servers and clusters ?
A: Yes, MBV is able to identify and include in the topology report all servers and Cluster names involved in the BizTalk group


Q: Is MBV able to analyze large BizTalk configurations involving multiple servers and clusters ?
A: Yes, MBV is able to identify and include in the topology report all servers and cluster names involved in the BizTalk group

Q: Is MBV able to analyze multiple MsgBox DB configurations ?
A: Yes, MBV will identify and analyze all MsgBoxes in the BizTalk group


Q: Where do the SQL queries executed by MBV come from ?
A: Some of them come directly from BizTalk Architect Lee Graber’s "Advanced Queries" document. Other queries come from Microsoft BizTalk Support teams or known SQL & BizTalk Troubleshooting documents.


Q: Why do you have both a Console and a GUI version ?
A: The GUI tool interactively displays information collected in listviews and allows you to easily select which queries to execute. The Console version can immediately issue a Collect and can be launched by any type of parent application (like "PssDiagForBiztalk") 


Q: Why is MBV updated so frequently ?
A: To include ASAP additional check rules & warnings based on issues met by Microsoft BizTalk Support and Field teams.
 

Q: Why does MBV not use .NET 2.0 ?
A: In order to be executable on BizTalk 2004 Servers which might only have .NET 1.1 installed


Q: Why does MBV have two Listviews containing queries to execute ?
A: The first list contains queries which will always be executed and the second list offers you the option to choose additional ones


Q: What is the recommended choice of queries to execute?
A: I recommend that you select ALL queries the first time in order to collect the maximum number of reports including a fully detailed Topology Report and to have maximum checks done so all possible warnings are raised in the Summary Report. You can then unselect some queries depending of the type of output you want or to have a faster collection time


Q: Why do I sometimes see timeout errors in the HTML or status log files ?
A: Some queries like Fragmentation or MSG Count in DTA db can take a long time to execute and so the default Query Timeout of 30 seconds will expire.
   In this case, the tool will report a timeout error but will continue to execute other queries


Q: Can we stop a pending Collect if it is taking too long to finish ?
A: No, MBV does not offer this feature to avoid having inconsistent output files. You would have to kill the MBV process.
   Future version could implement that if consistency of output files is sure to be preserved.


Q: How does MBV manage the errors met by some queries ?
A: Each error generated by a query is caught in order that it cannot prevent the next queries from executing


Q: why do I have Access Denied Errors executing some queries ?
A: These Access Denied errors are caused mainly by missing SQL, WMI, or REGISTRY access permissions for the user running MBV.
Recommendation is to be a BizTalk Admin but one of the assumptions that we often make with MBV is that the user running MBV will have complete access rights to both BizTalk Server and SQL Server but it is not always the case.
Ideally the user should be a BizTalk admin with SQL admin rights but you can play with the "User Roles" tab to see which query has chance to succeed according to the roles you select.


Q: How can I reduce the total duration of the Cllect ?
A: Either by reducing the number of queries to execute, or by reducing the query timeout if you have too many time consuming queries 


Q: What is the real purpose of the status log file ?
A: This file will report ALL activity generated by MBV with the time stamp of each query and report generated. This file is also very interesting for the author to identify possible bugs


Q: What is the real purpose of the History log file ?
A: This file will contain in plain text ALL Collect outputs made since the last purge. This file can be purged in the GUI.


Q: Can the Query or Connection Timeout be changed ?
A: Yes, both the GUI and Console versions can have the timeout changed


Q: Can I have the MsgBox or DTA db Tables size reports ordered by table name ?
A: Yes, you have the possibility to change the order type in the "Options" tab or by using a parameter in the Console version


Q: Can I know the collect duration from a HTML report ?
A: Yes since build 9.23.5, the first line of the summary Report includes this information


Q: Sometimes MBV appears to not be responding, how d I know what it is doing ?
A: The status bar shows the pending query and recent builds of the tool use two different threads for the GUI and the Collect engine so even during a long query the tool window is always visible and responsive. Be sure to use version 9.23.3 at the minimum


Q: What is the role of the different tabs in the second half of the Gui tool ?
A: The tabs contain listviews of some important reports including the Summary Report and these listviews are populated during the Collect.
   You can navigate into these lists (except the Summary Report one) even if the collect is still pending !


Q: How can I have more know info about the queries to execute ?
A: For each query to be executed, the GUI version displays in its list the target and scope of the query, its caption, and its type (SQL, WMI, .NET, etc...)


Q: What means really this entry in the Header Report ? : "This BizTalk Server is NOT a member of the targeted BizTalk group"
A: It means that the BizTalk server running MBV does not belong to the BizTalk group referenced by Mgmt DB server and name you have specified.
   By default when running on a BizTalk Server, MBV automatically tries to get the targeted Mgmt DB server and name from the registry


Q: Can I run MBV on a server which is not a BizTalk one ?
A: Yes, MBV can be run on any server that has .NET 1.1 installed no matter what it is. E.g. Win 2K, Win 2K3, Win XP or Vista.
If it is not executed on a BizTalk Server, you will have to specify the Mgmt DB Location and Name.
However, in this case, the query to collect local perfmon counters will not be executed and the ability to detect throttling will be missing! 


Q: Is it possible to develop some solutions analyzing automatically the MBV output file ?
A: Yes, MBV also allows the option to generate output in an XML file containing its own schema (in GUI version)
    Ideas of possible solutions to develop around XML MBV file :
    - Custom  Summary Report analyzer
    - Tool to build a Visio diagram from the Topology Report
    - Tool to identify differences between several MBV XMLs
    - ...


Q: What is the SQL Query used behind the "Running SPIDs" or "Locked SPIDS" queries  ?
A: These two queries use a SP_who3.SQL script based on sp_who2 but updated for BizTalk  


Q: Why some Queries can execute only on SQL 2K5 ?
A: Some queries like "Most CPU SQL Queries" are based on SQL 2K5 relational rowsets through dynamic management views (DMVs).


Q: Can MBV run periodically and automatically some Collect ?
A: Yes, you have an option in the GUI version which allows you to configure a periodic interval in minutes to collect
   As soon you check the option "Collect Each", a timer is started and will trigger the collect after the interval configured.


Q: Can I have access to previous HTML files generated ?
A: Yes, each Collect generates an HTML file in the specified output folder containing in its title the MBV version + current Date & Time to uniquely identify it.

Q: How is built the "Msg Flows" Report ?
A: This Flow report is built from the Subscription table but also from some orchestration port bindings tables.
    This report cannot show all possible flows!


Q: Is MBV able to retrieve BizTalk errors in the Application journal
A: Yes, recent versions of MBV provide the possibility to collect 100 max BizTalk error events in last 24 hours" in an optional query


Q: When I open HTML file in IE on some machines, I can not expand the reports
A: MBV HTML files use scripting and IE can be configured to prevent scripting from executing for security reasons

Version 9.23.42 and High fragmentation Info query

Hi,

I just uploaded a build 9.23.42 with some new features and two small fixes and among the new features I included two queries getting high fragmentation info for DTA and MSGBOX dbs. Behind this query is a SQL script  which is available only for 2K5 SQL Servers which  get list of indexes where fragmentation  percentage > 30, so these two queries won't execute on a BizTalk 2K4 Group  for example.The tool however keep the old Detailed Fragmentation queries.

You have to keep in mind that the SQL query getting this Index fragmentation info can be long to execute so it is possible that the query will timeout after the default Query Timeout of the tool which is 30 secs. If output of these two queries is important for you, then you just have to increase the Query Timeout in the tool (avail in the Console version also); as the opposite, If you can avoid the result of this query, well..just unselect them in the list of GUI tool as they are both optional !

Note that when you increase the Query Timeout, it will impact so all other quereies as all the queries use the same global Query Timeout. Indeed, I did not implement Query timeout per query (maybe in a next version if there is really a need)

 Let me know your feedbacks on that

 

thanks !

JP

Change in version 9.23.4

Hello,

as you already noticed probably, I uploaded build 9.23.4

This build has an important change I think which can reduce signicantly the size of produced files (history.log,html and xml) :  Indeed I keep now in this build only the name of Stored Procs found in the detailed report  "Most CPU Queries (SQL 2K5 only)" instead of the entire sp text as it was before.
In this report, for each row returned, I determine so if it a Stored Procedure and in this case I keep only its name and remove the remaining part. I think knowing the sp name is enough in this report.
However, I keep the entire SQL query if  SQL query is returned as statement instead of a stored proc

Let me know if you meet any problems with this change

thanks !

JP

Version 923 and User Roles

Hi,

In this post I would like to clarify this new feature I introduced in this version :

Several of my colleagues of Microsoft BizTalk  support reported to me that sometimes their customers have some "Access Denied"  errors in  some queries executed by the tool.

These access denied errors were caused mainly by either missing SQL, WMI, or REGISTRY acess permissions for the user running the tool.

Indeed, one of the assumptions that we often make with MsgBoxViewer is that the user running the tool will have complete access rights to both BizTalk Server and SQL Server but it is not always the case.

FYI, types of queries in the tool are splitted among these ones :

SQL queries

o   Target pure BizTalks dbs : Mgmt db, MsgBox dbs, DTA
o   Target SQL System tables or other ones (msdb, master) or call Sys stored procs (to have more info about targeted SQL Server, SQL version, jobs, SQL agent state,etc…)

WMI queries to get info about servers of the BizTalk Group: os, cpu, memory, running btsntsvc.exe and sqlserv.exe processes

o   Local access
o   Remote access

REGISTRY queries get info on MSDTC settings, TCP, CLR threads pool, BizTalk Services, Perf counter

o   local access
o   remote access (not for perf counters)

 

Try to minimize the number of Access Denied errors, I implemented so  in this version User Roles :

The tool let the user now choose which permissions he has among 4, and depending of his choice, some queries will be "disabled"  (grayed in both queries Listboxes in the gui tool).

The disabled queries will not be executed during the collect, and for each disabled query a status message will be inserted in the status log file mentioning that the query is “disabled”. The User roles selected are visible in the HEADER REPORT so you can see quickly what is the profile of the user running the tool.

By default , all roles are selected and all optional queries are selected, so all queries will be tried.

I decided to  have this default configuration to try to collect by default maximum information from the BizTalk Group  analyzed

if you see that you have some Access Denied errors in the report files , you can unselect in the tool the permissions you think you don't have, to keep executed only the queries which will have chance to succeed.

 

JP

MsgBoxViewer 9.20.7

Hello,

I just released  recently this build to fix an issue of Summary Report not generated on some very specific configurations of BizTalk analyzed

FYI,  you will always the latest build at the url below (you can click also on "Latest MsgBoxViewer" link in the 'Tags' section)  

http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx

 JP

 

MsgBoxViewer 9.20.3

Version 9.20.3

 

 

New features :

 

- Report the "Applications" found on a BizTalk 2K6 Group

 

- Report now Hotfixes installed on  ALL BTS  of the BizTalk group (optional  query) and not only ones installed on the BTS running the tool

 

- Raise a red warning if suspended cache instances found > 5000

 

- Raise warnings if large number or "Ready To Run" Svc Instances are found

 

- Check if Servers of the BizTalk group have /3GB enabled (add this info in the Topology Report and raise a yellow warning if it is for a BizTalk Server as an important information to raise)

 

- Report now the size of ALL BizTalk Databases

 

- Report in the Summary Report the larger table of Msgbox and DTA databases

 

- Report more Msgbox or DTA tables rows count in the Summary Report using “Select count(*) from..” and raise warning if difference between sp_spaceused output is > 1000

 

- Add more categories in the Summary Report

 

 

Fixes:

 

- Enumerate now only the send ports with their primary transport (some sendports having backup transport were previously duplicated in the "SendPorts" Detailed Report)

 

- Add the "MinCompletionPortThreads" check in the BTS CLR Detailed Report

 

MsgBoxViewer 9.20.02

Hello,

 

in this post, I make avail version 9.20.02 (see below for the minor new features) and I also would like to share with you a recommendation on the tool's usage :

 

I would recommend strongly each time you run the tool for the first time for a bizTalk Group to check to select ALL options (so including  all optional ones).

Indeed, more you select options, more you will have a detailed TOPOLOGY REPORT of the  Biztalk Group and more you will have checks done and possible warnings raised in the SUMMARY REPORT.

For example, if you keep only the mandatory options, you won’t have any check of presence of Suspended Caches messages (which is not a rare issue in BizTalk 2006)  or presence of large number of "Ready To Run" Svc instances (which is a good indicator usually that the server(s) are overloaded).

 

I think it is important so on first  usage of the tool to collect maximum info about the BizTalk Group  topology, and  if you have to run the tool periodically, you can then unselect some optional options and can keep only the ones you are interested by (including mandatory ones of course).

 

You need also to remember that you can change the  "Query timeout" option to change the timeout delay of each SQL query.

For example, DTA and Msgbox fragmentation queries can be long sometimes to execute. 

 

See  also the readme.txt of the tool about this topic.

 

 

Version 9.20.02:

 

New features :

 

 

- Add more categories in the SUMMARY REPORT

 

- Report more MsgBox and DTA tables rows in the SUMMARY REPORT using Select count(*) and raise warning if result's difference between sp_spaceused is > 1000

 

- Report the "Applications" found on a BizTalk 2K6 Group

 

- Report now size of ALL BizTalk Databases

 

- Report in the summary Report the larger table of Msgbox and DTA databases

 

- raise red warning if suspended cache instances found > 5000

 

- raise warnings if large number or "Ready To Run" Svc Instances are found with link to a technet article

Fixes:

 

No bugs reported since 9.10

 

 

JP

MsgBoxViewer 9.20

I just released a new major build (9.20) displaying now in the SUMMARY REPORT a third column which contain, for most of the entries, a button to go directly the corresponding Detailed Report and sometimes a URL link to an MS KB or Tech Article avail on the Net. It should very fast so now to make the link between an entry in the Summary Report and the corresponding Detailed Report and access to some KB or tech articles can be done by one click.

 

 

Version 9.20

 

New features :

 

 

- The SUMMARY REPORT display now a third column containing, for most of the entries, a link to the corresponding Detailed Report

and sometimes a URL link to MS KB or Tech Article on Internet.

 

- Add now the Server Domain, Server Domain role, and Server Model in the Topology Report

 

- Raise a warning if a server found in the Topology is running in MS Virtual Machine

 

- Raise a warning if a “AutoClose” prop  is set for a Biztalk DB

 

- Collect all the registry values  under each Biztalk host Svc reg key  of all BTS and raise a yellow warning if some Throttling ones are found

 

 

Fixes:

 

No bugs reported since 9.10

 

 

JP

CHECKDB

Hello,

In this post, I would like to share with you a tool I created and which is commonly used at Microsoft in the COM+ & MSDTC Support team but also in my Biztalk Support team for example to troubleshoot DB access & DTC issues : CHECKDB.

Be careful, don't make confusion with the SQL CHECKDB command :-)

 

Purpose of this tool is mainly to test very quickly  Db connection/query execution to a Database using or not an MSDTC transaction.

 

I'm sure you already met errors saying that Db connection failed or that an MSDTC transaction can not be enlisted ("Failed to Enlist") without to know really if the problem was specific to the client application you were using.

My tool just allow so to make quick connection/query tests to any ODBC or OLEDB compliant Databases w/o MSDTC and to Oracle via OCI 7 w/o XA.
It display then the detailed results of each step of the test (Connection to MSDTC, Tx creation, Db connection, Tx Enlistment, Query, Close...) with their duration.
This tool can also test quickly the db via 2 MTS/COM+ components, one configured to be non-Transactional and the other to be Transactional implementing both OLEDB, ODBC and ADO interfaces.

You can so verify very quickly if you can connect to the DB using the  connection settings you configured and most important if an MSDTC transaction can be well propagated to the targeted Resource Manager (the DB).

This 32 bits tool was developed in C++ & MFC and can be used in any x86 windows platforms

 Tool usage is very simple :

- Just select the options you want to use via the "Options" tab (like MSDTC usage or not, COM+ components usage or not)

- Select the tab corresponding to the API Db you want to use : ODBC, OLEDB, ADO, Native Oracle db using API OCI 7

- Then  press the "Test" button to run the test

Detailed results of each step of the test (Connection to MSDTC, Tx creation, Db Connection Tx Enlistment, Query, Close...) with their duration will appear then in a Listbox and also in a log file (full path is shown in the "Options" tab).

If you see errors in the Enlistment step, you can read the two following good KB articles  http://support.microsoft.com/kb/191168/en-us and http://support.microsoft.com/kb/306843/en-us

Feel free to add your comment if you have any question or feedback to raise

Thanks !

JP

Page view tracker