My Biztalk Tools blog

MsgboxViewer blog

MsgBoxViewer (MBV) Q & A

MsgBoxViewer (MBV) Q & A

  • Comments 19
  • Likes

 

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, WMI or VBS queries targeting the MsgBox, DTA, or Mgmt DB and uses WMI or VBS scripts 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 nodes 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 some Queries Listviews in Bold ?
A: The  list(s) in bold contains queries which will always be executed and are considered so as importanrt and the other lists offers you the option to choose the queries to execute.


Q: What is the recommended choice of queries to execute?
A: I recommend to  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: Yes, MBV  offers this feature but the Collect will be stoped only after the pending query finish to execute or timeout.You can not stop a pending query.

 

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 and SYSADMIN on the SQL Server(s) hosting the BizTalk Dbs 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.

Q: How can I reduce the total duration of the Collect ?
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 these timeouts 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 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 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.


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, VBS, CUSTOM., 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.
However best way to achieve that is to schedule  the start of the console version of MBV (BTSDBCOLLECT.EXE)


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, MBV provide an optional query to to collect  error events of Biztalk sources


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

Q: Can MBV send its warnings in eventlog only ?
A: Yes, MBV provides an option to send automatically its warnings in the application eventlog and provides also some options to prevent generating the HTML, Status, and History files.



Comments
  • As the name imply, MBV analyze in details your BizTalk 2004 & 2006 MsgBox Db but also other BizTalk

  • Hi.

    Msgbox Database Integrity report gives me following message, what does that mean?

    How can i solve what is the Issue ?

    Control Message Check                                                      Missing Restart Msg in Spool table (can prevent some svc instances to be resumed, terminated or suspended) !!                                          

  • Hi Jokke,

    this warning means that the internal restart control message is missing in your Spool table.

    In BizTalk 2004, you have only 1 contol msg inserted in Spool at congiguration time when the msgbow is created.

    In bizTalk 2006, you have 4 msgs inserted.

    MBV is checking for presence of this msg in Spool table and raise this warning if not present.

    to fix that, you can look in Msgboxlogic.sql in your BizTalk install folder and search for "restart control message" string, you should find a INERT INTO statement inserting this restart control msg that you can reuse against your Msgbox db.

    Please, run your backup job before to do that and have a backup

    JP

  • Hi,

    Could you confirm the above comment, I have looked in the MsgBoxLogic.sql file for the string "restart control message" and some variations around this and can not be sure which Insert Into statement you mean.

    Any help would be appreciated

    Mike

  • Hi Mike,

    ok I will add asap  a comment on this page with the exact SQL query to repair that

    JP

  • Mike,

    it is not really in msgboxlogic.sql as I mentioned before but in  "MsgBoxSchema.sql" (mea culpa)

    If you open indeed "MsgBoxSchema.sql" in your <BizTalk 2006 Folder>\Schema, you will find that we execute these 4 queries below to insert 4 control messages in the "Spool" table just after its creation.

    So execute same queries to reinsert the corresponding missing control message; remember of course to do before a msgbox backup (using the backup job) as usual each time you have to touch "manually" a Msgboxdb in Prod - which should never occur ;-)

    MsgBowxSChema.sql :

    <<

    ...

    ...

    -- Inserting Restart Message for use in service recovery

    INSERT INTO Spool (uidMessageID, nNumParts, nCounter, imgContext) VALUES (N'61EAA7FC-AC85-42d9-BF3E-1BED258B82BE', 0, 0, 0xD4E0906C1849D311A24200C04F60A53302000000090000009800000050006100720074004E0061006D00650073005E0068007400740070003A002F002F0073006300680065006D00610073002E006D006900630072006F0073006F00660074002E0063006F006D002F00420069007A00540061006C006B002F0032003000300033002F006D006500730073006100670065006100670065006E0074002D00700072006F007000650072007400690065007300000001000000010820010000000000000000000700000098000000540069006D0065007200490044005E0068007400740070003A002F002F0073006300680065006D00610073002E006D006900630072006F0073006F00660074002E0063006F006D002F00420069007A00540061006C006B002F0032003000300033002F0078006C0061006E00670073002D00720075006E00740069006D0065002D00700072006F0070006500720074006900650073000000010000000008004A000000300030003000300030003000300030002D0030003000300030002D0030003000300030002D0030003000300030002D003000300030003000300030003000300030003000300030000000)

    -- Inserting Suspend Control message

    INSERT INTO Spool (uidMessageID, nNumParts, nCounter, imgContext) VALUES (N'2BE3D5B8-5685-40F2-BD97-51ADA3D02347', 0, 0, 0xD4E0906C1849D311A24200C04F60A53303000000000000001E000000420069007A00540061006C006B0043006F006E00740072006F006C000000020000000008002A000000410064006D0069006E00530075007300700065006E00640049006E007300740061006E00630065000000000000000C0000004A006F006200490044000000020000000008004E0000007B00340037004100450033003300380034002D0031003000410041002D0034003400430033002D0038003200350036002D003200350033003400380045004200390032004200320031007D000000090000009800000050006100720074004E0061006D00650073005E0068007400740070003A002F002F0073006300680065006D00610073002E006D006900630072006F0073006F00660074002E0063006F006D002F00420069007A00540061006C006B002F0032003000300033002F006D006500730073006100670065006100670065006E0074002D00700072006F00700065007200740069006500730000000100000001082001000000000000000000)

    -- Inserting Terminate Control message

    INSERT INTO Spool (uidMessageID, nNumParts, nCounter, imgContext) VALUES (N'57E5E753-0207-435D-8BE7-2B9F3C6556F9', 0, 0, 0xD4E0906C1849D311A24200C04F60A53303000000000000001E000000420069007A00540061006C006B0043006F006E00740072006F006C000000020000000008002E000000410064006D0069006E005400650072006D0069006E0061007400650049006E007300740061006E00630065000000000000000C0000004A006F006200490044000000020000000008004E0000007B00350032003500390031004600310031002D0046003700370034002D0034003600330038002D0042004300390041002D003200380034003800380034003600300034003500450032007D000000090000009800000050006100720074004E0061006D00650073005E0068007400740070003A002F002F0073006300680065006D00610073002E006D006900630072006F0073006F00660074002E0063006F006D002F00420069007A00540061006C006B002F0032003000300033002F006D006500730073006100670065006100670065006E0074002D00700072006F00700065007200740069006500730000000100000001082001000000000000000000)

    --Inserting Resume in Debug Mode message

    INSERT INTO Spool (uidMessageID, nNumParts, nCounter, imgContext) VALUES (N'50D173AF-5D6F-4D5F-AE23-1A7178CEBDC3', 0, 0, 0xD4E0906C1849D311A24200C04F60A53303000000000000001E000000420069007A00540061006C006B0043006F006E00740072006F006C0000000200000000080026000000410064006D0069006E004400650062007500670049006E007300740061006E00630065000000000000000C0000004A006F006200490044000000020000000008004E0000007B00330032003800330030004500450045002D0035004400330041002D0034003700370037002D0041003200440035002D003100320033004100450035004600340044004500420039007D000000090000009800000050006100720074004E0061006D00650073005E0068007400740070003A002F002F0073006300680065006D00610073002E006D006900630072006F0073006F00660074002E0063006F006D002F00420069007A00540061006C006B002F0032003000300033002F006D006500730073006100670065006100670065006E0074002D00700072006F00700065007200740069006500730000000100000001082001000000000000000000)

    ...

    ...

    >>

    JP

  • Hi JP

    Think I forgot to thank you for this, very helpful.  

  • hi

    im execute the last version of MsgBoxViewer above biztalk server 2004 and detected that

    Version found in BTS Registry (BizTalk 2004 SP2) seems different than version detected in Mgmt Db (Version Schema: 3.2.0.0=BizTalk 2004) !!look that version in the register hkey/software/microsoft/biztalk/3.0.

    whats is the fix that solutions it warning

    thank you

    regards

  • Hi Raul,

    you can ignore this warning

    It is unfortunately a bug in my tool occuring with BT 2004 SP2 environments and I already fixed it in next incoming build

    JP

  • Hi,

    This is Srikanth we are using BizTalk 2006 R2 and i have question like I ran MessageBoxViewer tool and under Query reports / Important Queries / DTA DB:DTA Tables Size order by Table Size i  am getting error saying

    "ERROR : The object 'dta_Process' does not exist in database 'BizTalkDTADb' or is invalid for this operation. (STAGE : Running SQL Query "DTA Tables Size order by Table Size" for DTA DB "BizTalkDTADb"

    Can any one help what kind of steps i have to do for this error.

    Regards,

    Kumar

  • Hi Srikanth,

    I never saw this prolem before to be honest

    can you send me please your msgboxviewer.html et msgboxviewer_status.log files ?

    thanks

    JP

    jpierauc@microsoft.com

  • Hi,

    When I start the MsgBoxViewer (Version 11), I get the error message. The MsgBoxViewer (Version 10.14) version is running without problem

    Does anyone have any idea what this could be?

    <<<<<<<< History.log <<<<<<<<<<<<<<<<<<<<

    15:48:25.2776410       CONNECTING TO SSO DB "SSODB" ON SERVER BTS_SQL_PROD_LU1

    15:48:25.2776410       GET MAIN DB INFO FOR SSO DB...

    15:48:25.2776410        QUERYING PHYS SERVER NAME FOR SERVER BTS_SQL_PROD_LU1...

    15:48:25.2776410        FOUND PHYSICAL SERVER NAME FOR SERVER BTS_SQL_PROD_LU1 : CHDLUA80

    15:48:25.2776410        ADDING SERVER CHDLUA80 IN TOPOLOGY REPORT

    15:48:25.2776410        QUERYING SQL SERVER VERSION FOR SERVER BTS_SQL_PROD_LU1, DB SSODB

    15:48:25.2776410        DETECTING BIZTALK VERSION FROM DB SCHEMA FOR DB SSODB...

    15:48:25.2776410        QUERYING DB INFO FOR DB SSODB...

    15:48:25.2932659        CHECKING CLUSTER PROP FOR DB SSODB...

    15:48:25.2932659        EXTRACTING SQL INSTANCE NAME FOR SERVER NAME BTS_SQL_PROD_LU1...

    15:48:25.2932659        QUERYING BTS DB STATUS FOR SSODB...

    15:48:25.2932659

    15:48:25.2932659 - ERROR ! : ERROR CALLING CUSTOM FUNCTION "CALLBACKCOLLECTSTART", ERROR: OBJECT REFERENCE NOT SET TO AN INSTANCE OF AN OBJECT.

    ERROR ! : ERROR CALLING CUSTOM FUNCTION "CALLBACKCOLLECTSTART", ERROR: OBJECT REFERENCE NOT SET TO AN INSTANCE OF AN OBJECT.

    15:48:25.2932659 - ERROR ! : CAN NOT CONTINUE THE COLLECT

    ERROR ! : CAN NOT CONTINUE THE COLLECT

    >>>>>>>>>>>>>>

    Thank you for an answer

    Roger

  • Hi Roger,

    send me if possible your status.log file

    question; do you have UDDI db installed and when did you download MBV 11 ?

    I fixed indeed a last minute bug last week which looked similar and I uploaded again on my blog the fixed version

    JP

  • Hi

    We do not have BAM configured in our environment. MBV doesn't collect counters complaining that it can't connect to BAMPrimaryPort Database. Is there a setting to exclude BAM dbs?

    Thanks!

  • Hi Steve,

    can I know which vesion of MBV you use ?

    Normally MBV can collect even if a BAM import is not present

    It was working fine in past versions

    if it is not the case in the latest build then it is a regression bug and I need to fix that asap

    I will do also a test  on my side and come back to you what the result is

    thanks for this remark

    JP

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment