Hello,
I updated today a new build of MBV.
With the previous one published few weeks ago, MBV brings now lot of new interesting queries and fixes (see below the complete list).
As interesting new query, MBV is parsing now your SQL Error logs for critical errors and raise corresponding warnings if found.
MBV is reporting now also the SQL agent log containg any errors if the BizTalk jobs are failing.
MBV includes also now the "tempdb" inf Db analyzed so you can see quickly in MBV report the size and files info about your temp. Knowing as important the tempdb is, it can be useful to have this info in report as well.
I added also again some new parsing rules for the Eventlog query identifying so possible know issues bases on the event source, event ID, and the event message contain.
Feel free so to use now latest version on my blog (http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx) containing these features and report me your comment or bugs found
Thanks !
JP
New Features:
- Include "Tempdb" info on the "Dbs infos", "Dbs Files", and "Dbs Space" queries
- Query to get list of IIS App pools with their owning Applications and check if an Application is a BizTalk Receive Location
- Query to get list of Web sites with all their propertes App pools with their owning Applications and check if an application is a BizTalk Receive Location
- Get list of active global SQL Trace flags
- Query to get the SQL agent log
- Changed the KB linked to the warning message when AllowOnlySecureRpcCalls is not set correctly on cluster
- Fixed HotFix queries to get also the 32 bits installed on a X64 machine
- Display now HotFix file(s) with their version
- Fixed the .NET config files to have also the ones from 64 bits version of the Framework
- Get also BTSNTSVC64.exe.Config if found
- Order by DESC the Most recent records in TDDSFailedTRRackingData table for both DTA and BAM dbs
- Fixed an HTML display issue (report can be expanded correctly ) when we fail to connect to some Dbs
- Added Autogrow rules for the "DBs File" query to check the current auto grow of BizTalk Dbs against our recommendations for MDF and LOG files- New query in “Server Info” category: “NET Config files” on all BT servers - not checked by default
- New query in “Server Info”: “Running Processes” on all servers
- New query in “Advanced DB Info” category: “Tracking tables Sequence Number” - not checked by default
- New query in “Advanced DB Info” category: “Tracking tables Sequence Number gaps” - not checked by default
- New query in “Advanced DB Info” category : “Tracking tables Sequence Large BLOBs” - not checked by default
- Provides a rule raising a warning if large table “NotEqualPredicateTables” found (known issue)
- Provides additional EventsLog rules
- Improves MsgBox Database naming convention in some Summary Report categories to be unique in multiple MsgBox scenarios
- Provides “Total Q rows” entry in the “MsgBox Table” Summary Report category
- "Current Error Log" query is modified to list entries in Descendant order
- Provides some rules to the "Current Error Log" query to check for Disk space errors, Db Integrity or Fatal errors, and raise warnings if found
- "Error Log.1" request in now moved into its dedicated query - not Checked by default
- Host instance "Start time" is now added in Topology Report "Running Host instance" category
- System Variables are added in Topology Report
Hello,
I did recently a webcast about MBV for the UK SOA/BPM User Group (SBUG)
Link to the video is available here : http://geekswithblogs.net/michaelstephenson/archive/2009/10/13/135448.aspx
I would like to thank Michael Stephenson for this web cast invitation which was a good opportunity for me to explain MBV goal and its usage and do some Q&A with participants !
JP
Several customers and MS engineers reported me recently some very long collect statements scenarios using version 10.15 and sometimes infinite ones.
1) Some bugs were indeed identified in some VBS queries which might create looping scenarios in some VBS query execution .
These bugs were so fixed.
2) A long collect statement can occur also when .VBS queries (belonging mainly to the “Server Info” query category) are running too long time.
MBV 10.15 enumerates indeed in some .VBS queries some registry keys or registry values, and when targeting several remote servers of the BizTalk group it can be sometimes long.
I decided so to implement a timeout mecanism to stop a VBS, .BAT, or .CMD query after 30 secs by default.
This timeout value can be changed of course in the MBV UI via the "VBS/BAT/CMD Query Timeout" Global Option.
3) When you have a long query situation or infinite one, please do the following :
- Note in the status bar of MBV UI the pending query (it will be also logged in the Status log file)
- Kill MBV (as stopping via the UI the collect statement during a query execution will NOT work, I don’t want to kill my query execution thread)
- Keep the generated status log file and send it to me later (it is precious for me to know what happened before MBV was killed)
- Restart MBV and then uncheck the queries which seem to run too long or infinite and then start a new collect statement (usually these queries should belong to the “Server Info” category) to exclude them from the collect statement
Current build 10.15.7777 available on this blog contain both the VBS queries fix and the VBS Query Timeout implementation.
Sorry for these introduced regressions and continue to send me your feedbacks or possible bugs found
JP.
Hello,
I just made available version 10.15 of MBV : http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx
This build fixes some bugs of version 10.14 of course but provides also lot of new queries & rules and use now some VBS queries like "MSDTC Setting" , "RPC Settings"', 'TCP Settings", etc...
Using VBS script with WMI calls in these queries allow to target correclty this time 64bits registries on 64 bits Servers.
As you probably now, a 32 bits tool like MBV using .NET remote registry functions can target only the 32 bits version of registry on a 64 bit server (by design with .NET) , so until now MBV returned sometimes invalid MSDTC settings for example when targeting 64 bits servers.
Using WMI in VBS script can workaround this limitation specifying the type of provider to load (32 bits or 64 bits).
I added also some new queries and one interesting query I added is the "Artifacts per host" one which list all artifacts used by each host.
For our Support teams for example, it is indeed critical to see very quickly which host manage which type of artifacts.
I also identify now what we name COM+ or MSDTC "Rollup package" from the software layers found on each server. We have again some dependencies with COM+ and obviously MSDTC so it is is important to know which COM+ or MSDTC version is installed on each server before to decide to apply possible COM+/MSDTC hotfixes.
You will find the list of new features in this version here : http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx
Feel free to report me your comments, suggestions, and of course the bug you could find ;-)
Thanks
JP
Version 1.10
New features :
- Allow to generate also automatically and periodically MBV reports by creating a Windows Scheduled Task
- Group now the MBV reports per targeted BT group
- Display an exclamation mark in node for MBV Reports having Red Warnings
- Use now File Notification Services to detect new or deleted MBV reports in monitored output folder
Version 1.0
Features :
- Allow to generate manually MBV reports by running in hidden mode the console version of MBV (BTSDBCOLLECT.EXE)
- Create nodes list corresponding to generated MBV reports found in the monitored output folder
- For each MBV report node, sub nodes are created to represent each section of an MBV report
- Allow to access directly to a MBV report Section like the "Warnings" one
- For each selected section node, right view in the MMC show the corresponding MBV report section in HTML format
Hello.
As I announced in a previous post, I just released a MMC Snap-in for MBV.
To be honest, I did not have ideas about really new useful features I could add in MBV itself or around MBV but reading some posts on other blogs talking about BizTalk Admin and suggestions of a better integration with MBV, I thouht : eh maybe I could integrate MBV in an MMC !
Doing that will allow so any BizTalk administrator to have for example his own custom MMC console (.MSC) by adding the BizTalk Snap-in and the MBV one !
If yoo look at the file behind the BizTalk Administration console, you can see that it is an .msc file containing both the Microsoft BizTalk Server MMC Snap-in and the EventViewer one; so you could create easily for example your own .msc adding BizTalk Snap-in, the Eventlog one, and MBV Snap-in
So I created a MMC snap-in for MBV in C# using the MMC 3.0 SDK: what is easier to develop an MMC Snap-in using .NET ! :-)
Setup:
just run the setup.exe on your machine to register the snap-in automatically
This snap-in use .NET 2 so on a BizTalk 2K4 machine, the setup can propose you to download the .NET 2. framework.
This snap-in use Microsoft Mgmt Console 3.00 framework on a W2K3 machine,you may have also to install KB 907265 :
http://www.microsoft.com/downloads/details.aspx?FamilyID=4c84f80b-908d-4b5d-8aa8-27b962566d9f&displaylang=en
One the setup finished, open MMC console and choose to add a Snap-in.
You should see in the list "MBV Snapin".
The first version of this MBV snap-in I release allow to run a collect statement in the MMC by starting in an hidden mode the console version of MBV tool : "BTSDBCOLLECT.EXE".
When you add first time the Snap-in, a dialogbox will be displayed inviting you to specify local path of MBV Console tool BTSDBCOLLECT.EXE.
Once it is one, you can also select the profile to use among the profiles present (created by GUI version of MBV) and then the MBV Snap-in will be added in the MMC console.
'MsgBoxViewer' Node
The 'MsgBoxViewer' MMC node will then allow you to start a Collect statement, change settings, open status file or History File or delete all HTML reports appearing as childre nodes.
This node display also as children nodes the existing HTML reports found in the HTML folder (either the one configured in selected profile file 'MBVSettings....XML' or by default the folder of MBV tool).
Starting a Collect statement
When you put the focus on 'MsgBoxViewer' node, right-click on it and start a collect statement, the MMC display in the right pane the resulting cmd line executed, and the status bar will show all the steps of the Collect statement.
At the end of the collect statement, the MMC will add in the left pane a children node representing the MBV HTML file produced and will show this file in the right pane.
Complete status of the collect is displayed in the right pane when selecting back the node 'MsgBoxViewer'.
Open an existing HTML MBV Report
Once you clicked a section (sub-node) of an HTML report node in the treeview of the left pane, you have immedialtely on the right pane of the MMC the selected sectioj of HTML MBV report displayed like in the Internet Browser.
You can so display quickly a Warning Report sectrion of an existing HTML Report.
Change Settings
Right-cliking on 'MsgBoxViewer' node and selecting the 'Settings" action, you can change the global settings and for example selectb the MBV profile to use for the collect, that you have prepared before with gui version of MBV.
Selecting a profile in the snap-in allow so to run only the queries you selected with also the global options you configured in the gui version of MBV.
Download here latest version :
http://blogs.technet.com/jpierauc/archive/2009/08/16/mbvmmc-latest-version.aspx
Let me know please your comments and questions on this Snap-in and any bugs you could find
Thanks !
JP
Download it : MBVQueryBuilder.zip
Hello,
This is the First version of MBVQueryBuilder tool, to integrate your custom Queries in MBV tool.
The zip to download contains :
- The tool itself MBVQueryBuilder.EXE
- Runtime DLLs : MBVEngine.DLL and MYHC.DLL
MYHC.DLL is in fact the runtime dll implementing My Health Check Framework and MBVEngine.DLL is the runtime dll using MyHC.DLL but is dedicated to analyze a BizTalk system.
- Versions of MBV Gui and MBV Console using the runtimes DLLs: MBVGUI.EXE and MBVCONSOLE.EXE
As MBVEngine.DLL and MYHC.DLL are both shared by MBVQueryBuilder.EXE and MBV client tools MBVGUI.EXE and MBVCONSOLE.EXE,
MBVEngine.DLL and MYHC.DLL must be so both located in same folder than the tools using them.
You can find here a quick help about this tool at :
http://blogs.technet.com/jpierauc/archive/2009/04/15/mbvquerybuilder-tool.aspx
Let me know please your feedbacks, questions, suggestions, and possible bugs found about this new tool
Thanks !
JP
Hello,
As mentioned in a previous post //blogs.technet.com/jpierauc/archive/2009/04/01/comming-soon-tool-to-build-your-own-queries-for-mbv.aspx, I make available publicly now on my blog a tool complementary to MBV which will allow you to create easily and quickly your custom queries for MBV.
What is MBVQueryBuilder ?
This tool allow in fact to create quickly and easily additional queries for MBV tool
This tool can create and update a Query Repository XML file with all queries you will create and allow also to generate the queries you want in an XML MBV Extension file starting with name "MBVEXT".
Why MBVQueryBuilder ?
MBV use a custom Health Check engine I developed ("MyHC" Engine) which is easily extensible in tem of queries and rules.
This extensibility is made possible via any XML file starting with name "MBVEXT" and located in same folder than MBV.
These MBV Extension File contain additional custom queries (with their rules if exist) which will appear in additional Queries tabs in MBV gui interface.
To generate easily and quickly such MBV Extension XML files, it became obvious to create a tool to do it.
Where to download laetst version of this tool ?
http://blogs.technet.com/jpierauc/archive/2009/04/27/mbvquerybuilder-latest-version.aspx
Where can I find a quick help on this tool ?
http://blogs.technet.com/jpierauc/archive/2009/04/15/mbvquerybuilder-tool.aspx
Ler me know please your feedbacks, questions, and suggestions about this tool
Tha¨nks!
JP
This doc below provide some documentation on MBVQueryBuilder tool , explaining what is this tool and why it exists and what it allow to do.
1) Presenting MBVQueryBuilder and its concepts
What is MBVQueryBuilder ?
This tool allow to create quickly and easily additional queries for MBV tool
This tool can create and update a Query Repository XML file with the all queries you will create and allow also to generate the queries you want in an XML MBV Extension file starting with name "MBVEXT".
Why MBVQueryBuilder ?
MBV use a custom Health Check engine I developed ("MyHC" Engine) which is easily extensible in tem of queries and rules.
This extensibility is made possible via any XML file starting with name "MBVEXT" and located in same folder than MBV.
These MBV Extension File contain additional custom queries (with their rules if exist) which will appear in additional Queries tabs in MBV gui interface.
To generate easily and quickly such MBV Extension XML files, it became obvious to create a tool to do it.
What is a MBV Query and what it contains ?
An MBV query is an object containing following information :
Main Query information :
- Internal ID: guid
- Category : category of the query
- Caption: visible caption of the query, ex: "List of Send Ports"
- Comment : Description of the query
- Source and Versions : Information about the source and version of this Query
- Type: SQL, WMI, .BAT, .CMD,.VBS, Other
- Target Type: server or Db to target executing the queries
- Target Name: Visible target name in MBV tool gui
- Body: Text of the query (ex: "Select @@Servername")
- Different attributes: selected by default in MBV gui interface, log a report, etc...
Rules:
A query can contain 0 to N Rules containing themselves 0 to N Conditions and each rule if validated can execute some actions.
A rule is so a set of conditions checking some values in each row of a report of a query, which is just in fact a table where you have columns as SQL fields for example and rows as records.
Each condition containing some references to a column is evaluated per row in the report.
Each condition containing no references to columns like "%ROWCOUNT% > 100" will be evaluated first and only once of course.
So a Rule object is composed of :
- Internal ID: guid
- Caption: Rule caption visible in MBV tool
- 0 to N Conditions
- Actions
A Condition is composed of predicates :
- A value to check, which can be either a reference to a report value in a specific column, or any other value (like %ROWCOUNT%)
- A value to trigger an action
- A Boolean specifying if comparison will be case sensitive or not
Possible Actions are :
- Write an entry in the Summary Report section with 0 to N link and 3 possible level of warning
- Write an entry in the Topology Report section
- Call a custom .NET function in a custom dll
- Assign a value to a global property (see below for "Properties")
Properties:
Each query can have 0 to N custom properties (i.e variables) identified by an ID, a caption, one value, and some attributes.
When specify in a body, caption, Summary Report entry, etc.. with syntax "'%<Property ID>%", MyHC engine will replace at runtime this "macro" by its corresponding value.
You can also decide to have a query property visible in MBV gui. In this case, the property caption and its current value will appear in MBV interface (right pane) when selecting the query in the Queries list, allowing you to enter a new value.
Custom processing Functions
Each query can (it is completely optional) to have custom .NET functions implemented in custom dll and called automatically by MyHC engine at different stages:
- before the query will be proceeded by MyHC engine
- to execute the query
- before each query report is populated
- after each query report is populated
- After the query processing is finished
These functions are interesting mainly when you have type of queries noty supported by MyHC engine or if you want to add your own logic at different stages of the query processing
A sample of a C# project implementing such custom DLL and functions is provided with MBVQueryBuilder
Which type of queries we can create in MBVQueryBuilder ?
MyHC engine that MBV uses provides implementation to execute automatically SQL, WMI, BAT.CMD and VBS queries.
By "automatically" I mean that by providing just the body of a SQL queries, the HC engine can execute them without having to provide any code or logic implementation. It is the same for WMI, BAT.CMD and VBS queries.
For .BAT,.CMD and VBS queries, they can be executed only locally on the machine where MBV is running, as opposed to SQL or WMI queries where you can target remote servers.
To execute automatically .BAT, .CMD and VBS queries, MyHC engine just create on the fly a temporary file and paste the body inside before to execute a CMD.exe or CSCRIPT.exe process and intercept the console output.
MBVQueryBuilder and queries Targets
Each Query has a corresponding Target Type and Target Name :
- The Type allow MyHC engine to know which server to target executing the queries, ex: MsgBox Servers, MsgBox Dbs, DTA Db, Mgmt Db,ALL Servers of the BizTalk group, SQL servers of the BizTalk group, etc...
- The Name is visible in the Queries List in MBV gui interface in the last column
If you select Target Type ending with "Server" or "Servers" for SQL queries, you can enter a specific Database name (ex: "Master") or if you let it empty, MBV engine will use automatically the corresponding BizTalk Database name, ex: "BizTalkMsgboxDb" for a MsgBox server
Queries Columns:
For querie which are not SQL or WMI, like .VBS, .BAT, .CMD, or OTHER you can specify the columns name the query report will have and also specify the delimiters of query output to use to identify the columns.This fetaure is interesting mainly for .BAt, .CMD, or .VBS to display the console output in a table formated way.
Global Properties:
In the same way you can define properties for Queries, you can also define in MBVQueryBuilder from 0 to N custom Global properties identified by an ID, a caption, a default value, and other attributes.
When specify in rule conditions, query body, query caption, Summary Report entry, etc.. with syntax "'%<Global Property ID>%", MyHC engine will replace at runtime this "macro" by its corresponding current value.
You can also decide to have a global property visible in MBV gui. In this case, the global property caption and its current value will appear in the Global Properties tab of MBV interface (left pane) allowing you to enter a new value.
These global properties are some sort of global variables that you can create and reuse everywhere in queries or rules allowing you to customize your queries.
MyHC engine provide by default some internal global properties that you cannot remove in MBVQueryBuilder but you can change their default values for some of them. Some of these internal global properties have their value changed dynamically by MyHC engine and will contain for example :
- the current physical targeted server name
- the current targeted DataSource name
- the current targeted database name
- the current type of targeted server (is it BizTalk Server, a SQL Server)
- etc ..
Query Categories:
Important: This feature is implemented in MBV only since version 10.13
A Query category allow to better sort and group queries.
When you want to create a query in MBVQueryBuilder, you can specify its category, whatever it is an existing one or a new one
Each Query Category is composed of :
- an Internal guid
- a Name
- a Type: “Important”, Optional”, “’Custom”
- 1 to N queries (see above for Query description)
At startup, MBV will load the categories of each query either from its embedded Queries Repository XML or from external XML Extension Files and it wil create a many tabs as it find categories.
Each Important category will have it name shown in bold in MBV, and for each categories found in a custom MBVEXTxxxx.XML file, MBV will create the corresponding tab in blue color to specify that it is a custom category
Once created in MBVQueryBuilder, a category will appear in the Categories List in the tab "Categories".
You can there change its name and sort them. The order will be so preserved in MBV tool when it will create corresponding Queries tabs.
Each category name will be present in the HTML report before the list of its queries? with also its category type;
2) Using MBVQueryBuilder :
MBVQueryBuilder Dialog Box is composed mainly of 3 parts :
- The tab pages part consisting of 7 top tab pages divided in 5 for settings of the current query, and 2 for Categories and Global properties settings.
- The queries List View part contain the list of queries that you created with their information summary
- The bottom control buttons allow to :
o add a query
o remove a query
o Load another query repository file
o Test the queries which are checked in the List View
o Export into an Extension XML file the queries which are checked in the List View
How to create a fresh new Query ?
- Select the Query Type you want in the corresponding ComboBox at bottom of the tool Dialog box
- Select the Query Category you want in the corresponding ComboBox at bottom of the tool Dialog box
- Click on the button "Add:".
- A File Dialog Box will be opened inviting you to chose the name of XML file representing your queries repository.
- A new query will be then added in the Queries List View with its summary of information and its main information will be visible in the "Query Main Info" tab page where you can there change lot of its information like its caption, comment, Target type, etc...
A default query body will be filled as sample so you will have to change it
Once you finished all your changes on this page, remember to click on "Commit Changes" red button to commit these changes in the query and update the Repository file..
How to sort created Queries ?
The two arrows on the right side of the queries List View allow you to sort the queries in a same category.
Sorting a query allow to change its order of presentation in MBV queries List but also its execution in its category : It can be important for example to execute first a query before another one.
Clicking one of this arrow will so move up or down the query in its category (only !)
How to add Rules to a Query ?
- Select the Query in the queries List View
- Select the "Query Rules" tab page
A new rule is created with a default caption that you can change
- Select the "Rules Conditions" tab page and add your conditions (see Conditions above).
- Select the “Rule Action Types” tab page to specify type of actions to trigger if the rule is evaluated^
- Select then the other Rule tab pages to fill the actions information. They are quite explicit themselves.
In each predicates of a condition or fields of action tabs, you can enter any query custom properties or global properties in the form “%<prodID>%
- When you finished to fill all rules settings, remember to click on “Commit Changes” red button at bottom of the Rule page
Notes:
To fill correctly conditions and actions and have a detailed idea of the type of information and rule you can create, I suggest strongly to select some any native queries in MBV tool itself and display their rules details (right pane when a query is selected)
How to add Query Custom Properties ?
- Select the “Query Custom Properties” tab page
- Click on button “Add Prop” to add a new property
A default prop ID, caption and value will be filled that you can by double-clicking on each item.
- if you want to make a property visible in MBV tool gui then set to “True” the attribute “Visible in HC tool”
- The two arrows on the right side of the List View allow you to sort the properties. It can be important to specify an order if they are flagged to be visible in MBV
- once you finished your changes, remember to click on “Commit Changes” red button in this page to update the Repository file.
How to add Query Custom Processing functions ?
Important Note:
Filling these function names is optional if the query type and body is supported natively by MyHC and if the rules you want to implement can be implemented completely using conditions in Rules tab page.
- Select the “Query Custom Processing” tab page
- Fill the name of the dll implementing the custom functions (can have or not .DLL)
- Fill the name of the different .NET functions implementing your logic.
These functions will be called automatically by MyHC engine when it will be the time to execute this query.
These functions do not accept arguments and return value.
The main important functions is the one called to process the query. Indeed, if it is filled, MyHC engine will not try to automatically execute your query body and will depend only of this custom functions to do the query job.
If you need to create such DLL, I recommend strongly you to look at the sample of C# project “SampleExtDLL” implementing a such DLL and functions, provided with MBQueryBuilder
How to add Custom Global Properties ?
- Select the “Global Properties” tab page
- Click on button “Add Prop” to add a new property
A default prop ID, caption and value will be filled that you can by double-clicking on each item.
- If you want to make a global property visible in MBV tool gui then set to “True” or “True – in bold” the attribute “Visible in HC tool”
- The two arrows on the right side of the List View allow you to sort the global properties. It can be important to specify an order if they are flagged to be visible in MBV in the Global properties list
- once you finished your changes, remember to click on “Commit Changes” red button in this page to update the Repository file.
How to Test immediately the queries you created?
- Check the queries in the List View you want to test
- Select the targeted BizTalk Mgmt Server and BizTalk Mgmt Db
- Click on the button “Test Checked Queries” which will be enabled
- you will see some activity in the status bar in yellow and Internet Explorer will be started to display the temporary HTML report created showing the report output.
How to Export some queries from your repository into an Extension File usable by MBV tool ?
- Check the queries in the List View you want to Export
- Click on the button “Export to Query Extension File” which will be enabled
- A File Dialog box will be opened to invite you to select the targeted folder for this Extension XML file.
- If you have SQL queries to export, a Warning message will be displayed alerting that creating SQL queries targeting BizTalk Dbs can be dangerous in term of performances or integrity.
- Then if the file is correctly saved, a message will be displayed to confirm it
Important Note:
You need to be sure the Extension File will begin with “MBVEXT“ to be seen as Extension file by MBV tool
If you copy then this produced file in the same folder than MBV, then MBV will load your queries at next startup and will add them in their corresponding blue category tab !
How to load an existing queries Repository ?
- Click on the control button "Load/import other Repository" and browse for the XML repository file
- A message box will be then displayed asking you to replace your working repository by the new one, or to append in your working repository all the queries of the selected repository (Append mode).
- once choice is made, your working repository will contain the new queries loaded
Hello,
I create this post just to announce that I will make available very soon a tool to build queries for MBV : MBVQueryBuilder.
Let me explain quickly role of this tool as I will make a more detailed post on that later :
As you noticed, I added already a lot queries embeded in MBV exe but because more and more MBV users, inside or outside Microsoft, suggest me to add some queries in MBV, I decided for a while to change MBV Architecture to be easily extensible in term of queries to add (MBV version 10.12 allow you to add also your own rules).
So it means that MBV accept "custom" queries to be added in its lists of queries via an XML file.
To achieve that, you will just have to use MBVQueryBuilder tool to create your custom queries with also their rules (warnings they can generate) in a queries repository XML file.
To create a query, you will have to provide some information like its Type (SQL, WMI, BAT, CMD, VBS), Caption, Comment, Target Type (MsgBox db, Mgmt db, ALL BT servers, ALL Biztalk SQL Servers,etc...) , and of course its body (ex: "Select @@ServerName" for a SQL query, or "Select * from MSBTS_SendPort" for a BizTalk WMI one)
MBV contain a query execution engine for queries of type SQL, WMI, CMD, .BAT, or VBS so it will automatically execute your queries knowing just its type and body.
Once you built your repository of queries, you can select in the same tool the specific queries you want to be visible in MBV and save them in an MBVEXT.XML file.
This file must be put in the same folder than MBV, and when MBV will be started you will see your custom queries in an additional listview in MBV Gui interface, that's all !
you can then select/unselect your queries like for any embeded queries an start a Collect process. and output of your queries will be also visible in the resulting HTML report
To see a concrete sample of this MBV query extensibility, you can have a look on following Thiago's Post (Thanks Thiago to have shared that) :
http://connectedthoughts.wordpress.com/2009/03/19/extending-msgboxviewer-with-biztalk-message-body-tracking-count-queries/
So stay tuned for availability of this tool !
JP
Hello everyone,
This is another “MBV - HOW TO” post, this time about a MBV usage as some sort of periodic Monitoring tool.
MBV can also be used indeed as a periodic Monitoring tool alerting user of warnings but w/o need to look each time at the HTML Summary Report
Indeed, since version 10.00, MBV can generate Red and/or Yellow warnings in the Application EventLog in the following Format :
<<
Event Type: Error
Event Source: MBV Engine
Event Category: None
Event ID: 0
Date: 23/03/2009
Time: 09:41:50
User: N/A
Computer: MJPIERAUC2K3B
Description:
Category : Other MsgBox Checks
Caption : Total active 'Cache msg' for MsgBox MSGBOX DB 1 (MASTER) "BizTalkMsgBoxDb" on FRDSIBTS-BTS2K6
Value : 6087 (they do NOT appear in HAT or BTS MMC and large number can impact MsgBox perfs) !!
Links:
kb 944426 - Orphaned cache instances may be built in the Instances table: http://support.microsoft.com/kb/944426/en-us
You experience performance issues with BizTalk Server 2006 and throttling messages are logged in the performance log file: http://support.microsoft.com/kb/936536/en-us
>>
This feature can be specially interesting if MBV user has already some tool monitoring the EventLog application
You can enable this feature with or w/o generating a HTML report.
These are for example the few steps to raise ALL REDS warnings in the application EventLog and generate NO HTML Report and Output files in the MBV Folder:
- Select the global property “Log RED Warnings in the Journal” to “True”
- Select the global property “Generate HTML file” to “False”
- If you don’t want keep history of MBV report, Select the global property “Update History File” to “False”
- If you don’t want keeping Status of MBV report, Select the global property “Update status File” to “False”
Once these global properties configured, each next Collect process will also raise in Application EventLog all Red warnings raised but will NOT produce any HTML or text files. You can of course select also the Yellow warnings if you want
All these changes will be kept in MBVSETTINGS.XML located in same folderv than MBV
Now, you can schedule Console version of MBV (BTSDBCOLLECT.EXE) to run perdiocally and it will use this settings file if is also present in the folder of BTSDBCOLLECT.EXE.
Look at this post from Richard about scheduling Btsdbcollect.exe using Windows Task scheduler :
http://www.richardhallgren.com/receiving-scheduled-msgboxviewer-reports-via-e-mail/
Let me know your comments/questions on this post
Thanks
JP
Hello,
Let me discuss about a new feature that I introduced in version 10.11 that I released recently (http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx) :
MBV 10.11 (in GUI tool) allow you now to unselect some “mandatory” queries and prevent them to execute so, and select only some of them.
Maybe this feature can surprise you first if we consider these queries as "mandatory" but I found in fact the need to be able to select sometimes only few important queries to have very quickly result of a report, like the Jobs one, or the MsgBox Integrity one, or the MsgBox or DTA Tables size, or only send ports, etc..
if we are now able to disable some mandatory queries, there can not considered anymore as mandatory ;-) so I decided also to rename the “Mandatory queries” list to “Important Queries” in the interface.
Let me explain now how to unselect some important queries (so previously named "Mandatory") :
There is now a global option in MBV named ”Can unselect some important queries” that you have to turn to “True” (it is “False” by default) in the global properties grid.
When you set it to "True" and display the Important Queries List, you will notice then check boxes in this list and also two butons Check All /Uncheck ALL , and you will be able so to select/unselect also these queries.
Notice that by default the behaviour is same than in previous versions: no check boxes are visible in this first Queries list,
so by default this feature is invisible !
Be careful however :
Topology Report and Warnings Report can be impacted if you unselect some specific important queries as some optional queries need for example some information returned by some important queries so you can have some errors or incomplete Topology and Warning reports depending of which important queries you have unselected.
So my recommendation is to use this feature only if you are interested by some specific query reports that you want to monitor
Let me kow your comments/questions on this feature !
JP
Hello,
Following a recent discussion I had with a US colleague about that, I would like to share with you below the few steps to follow to be able to run only some specific queries in the Console version of MBV - BTSDBCOLLECT.EXE.
As you maybe already know it :
- BtsDbCollect.exe will execute by default – w/o arguments - all important queries + most of the optional ones
- BtsDbCollect.exe /ALL will execute ALL queries
Now, if you want BtsDbCollect to run only a subset of queries, follow these steps :
1) Run the GUI version of MBV - MsgBoxViewer.exe – and select only the queries you want in the interface
In last build 10.11, you can even unselect some important queries - previously named “Mandatory“ - : set the global option “Can Unselect some important queries” to “True” and then unselect the important queries you want via the checkboxes - see my mail below for more details on this new feature.
2) Close the tool
3) copy the resulting file “MsgBoxViewer_setttings.xml” in the same folder than BtsDbCollect.exe
4) Rename this file to “BtsDbCollect_Setttings.xml”
5) Change in this file the 3 properties specifying the correct path for the output files, ex:
<HTMLandXMLFolder>C:\JP\MyProjects\BtsDBCollect</HTMLandXMLFolder>
<HistoryLogFilePath>C:\JP\MyProjects\BtsDBCollect\MsgBoxViewer_History.log</HistoryLogFilePath>
<StatusLogFilePath>C:\JP\MyProjects\BtsDBCollect\MsgBoxViewer_Status.log</StatusLogFilePath>
6) And that’s it ! Each time you will execute BtsDbcollect.exe, it will use this Settings XML file and so will execute only the queries you chose before
Let me know if you have any questions
JP
Hello !
I just finished a PPT presenting MBV, its role, usage, type of issues analyzed, and suggestions to analyze its reports
You can download it below.
Feel free to give me your comments on that and ask your questions !
thanks
JP
Hello,
Long time I did not write a post about MBV ! two reasons mainly : I was quite busy in my BizTalk Tech Lead job and I released until now on my blog only new minor MBV builds for which I considered that dedicated posts were not maybe justified; so I just made them available on my classic download link http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx listing quickly their new small features and the fixes.
I had took time however to think about an interesting major feature I could include in MBV to give to the tool again more flexibility for users and more attraction, and I think it can justify a post this time to present it :-).
I will make available very soon (probably next week) a new major build (10.00) containing I think an interesting new feature that I present below.
This build is not available immediately as I have small tests to do yet before and I would prefer that an important Access Denied bug found very recently is solved definitively (see below for more details) before.
I had so noticed two main areas of improvement in MBV :
1) Until now, it was not possible to enter at runtime some properties per query (like a “sort order” prop for example) . The sort order properties for “Send Ports/RL/Orchs” or “Tables Size” queries were well present in previous versions but were just some options in the ”Options” tab and were specific to only these queries.
I thought also that it could be interesting to be able to specify some properties at runtime for any type of query contained in MBV before to start an analyze
I decided so to add support of query custom properties in my Health Check engine that MBV use (I will write soon another post presenting you MBV Archirtecture and the HC engine that I developed which can be used very easily in any .NET app to do a custom Health Check).
Each query can have so 0 to N custom properties with following attributes :
a. ID
b. Caption
c. Default Value
d. Value
e. ReadOnly flag
f. Mandatory Value flag
When a such property is defined for a query, its ID can be used in the query body or query title to be replaced dynamically during collect execution, using syntax "à la macro" %<MYPROPID>%
This possibility allow so now to have parameterized queries with possibility then to enter quickly parameters value before to start a collect.
This new build of MBV that I hope to release next week will allow so to enter very easily value for each custom property present for a query (if they are not read only) depending of the query selected in the Query ListViews.
2) Until now, I have to admit that Gui interface of MBV tool (so the Gui tool version "MsgBoxViewer.exe" ) was quite “heavy” and confusing with lot tabs and fields everywhere present in the form and
That's why, with advises of Jean Severino my colleague, I redesigned the interface to be more easy to use, more intuitive, and less loaded I think :
a . I removed the User Roles support as it was rarely used
b. I grouped the output files Path fields and periodic collect options in the OPTIONS tab
c. I removed the numerous Queries output Tabs keeping only two: one displaying the Header and one displaying the Summary Report
d. For each query you select (not just check), its standard and custom properties are displayed immediately on the right side and you can enter quickly values for custom properties.
Once I will make available this version on this blog, you could see concretly this possibility selecting for example one of these queries : “Send Ports”, “Db Space”, “BizTalk Perfmon counters”, “Last Svc Instance” etc…. you will see then the corresponding custom propertis displayed on the right side of the dialogbox and can change them if you want
Each value you enter in a custom property will be saved into the MBV XML Settings file when you exit the tool
Other Features in build 10.00:
I added also optional queries below in this build suggested by Shaheer and Mike who are Escalation engineers in Microsoft BizTalk US Support team
See their very interesting blog http://blogs.msdn.com/biztalkcpr/default.aspx !
- Get number of rows in spool associated to dehydrated instances
- Rows/month for some tables (“Spool”, “Instances”, and some DTA tables)
And finally I added additional Check Rules on the optional "Last Max 100 Application Events errors" query identifying know issues from the error event entries found in your BizTalk Server Application Journal. I will add more and more warnings rules for this query in each next version, the idea is indeed to also use MBV as an "Application Journal Analyzer" identifying automatically some known important BizTalk issues when possible.
Fixes:
I had to fix urgently an important Access Denied issue occurring when an MBV user is not sysadmin on BizTalk Mgmt Db as it prevent MBV to start correctly its analyze.
I found indeed that Mgmt table "adm_Messagebox" do not have permissions like "adm_group" for example and because MBV is doing a select in this table to get all the messagebox, it fails raising an Access Denied error and stop immediately.
I found finally that a Mgmt SQL stored procedure is used instead to get that info and this sp is doing itself the select statement
Mark Thomas who is a famous BizTalk Field engineer at Microsoft UK reported me this problem recently and I made so a first fix but tests are still pending to see if this problem is definitively solved or not and if we don't have other Access Denied erros later in the analyze process, that's why I can not make available now this new build as I would prefer to publish it only if I'm sure these issues are fixed.
So, I have again to some very minor modifications and small tests do before to share publicly this version on my blog but I hope to publish it next week.
I sent it internally today to Microsoft engineers so maybe you can receive it anyway if you open a BizTalk incident at Microsoft Support
So monitor the blog in next days to get this new version
Thanks !
JP