MsgBoxViewer (MBV) Q & A

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, 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.



BizTalk Setup: System.EnterpriseServices.TransactionProxyException

This is now the second time that it has happened, and I didn’t write about it before.

I am setting BizTalk up in a multi server environment where the SQL Server exists on a different machine.

I got the following error after applying the configuration: System.EnterpriseServices.TransactionProxyException

After a couple of hours of going thru database permissions, checking MSTDC settings in component services. I found that on the SQL Server MS DTC was not installed (Add/Remove windows components -> Application Server)

Changes to the WCF LOB Adapter SDK in SP2

If you’re developing your own adapters against the WCF LOB Adapter SDK, then it might be worth your while to try out the June CTP of the SP2 of the WCF LOB ASDK. There are a few minor changes, but we might make more based on your feedback.

I’m mentioning the changes from SP1 to the June CTP of SP2 in brief. For more details, you should refer to the documentation.

  • Pre SP2, the ASDK allowed all input channel shapes – IInputChannel, IInputSessionChannel, IReplyChannel, and IReplySessionChannel. In SP2, there is a setting exposed to the adapter, which allows the adapter to control which of the above four shapes should be allowed. This is important when the adapter is used with BizTalk, and you want to integrate the LOB transaction (assuming it understands System.Transaction) with the BizTalk MessageBox transaction – in such a situation, you only want to allow one-way channels to be used. In other cases (SAP for example), where a reply always needs to be sent back to the LOB, you might want to only allow two-way channels.
  • Pre SP2, the WSDL generated (based on the operations selected in the Metadata Search Browse UI) was always compiled before being returned to the caller (or being converted to a WCF proxy). In some situations (e.g., where the adapter is overriding the XSD generation to return metadata for – let’s say a System.Data.DataSet) – the XSD/WSDL might not compile (even though svcutil.exe can successfully convert it to a WCF proxy). In order to allow this, a setting is exposed to the adapter which determines whether the WSDL should be compiled or not, before being converted to a WCF proxy. The advantage of compilation is that it can catch “real” errors in the wsdl.
  • There are two new QualifiedTypes added for System.Data.DataSet. (For “why two” and “why not just one”, refer to the documentation).
  • Pre SP2, the MSB UI tool by default always showed all authentication options – “Username”, “Windows” and “Certificate”. The adapter can now indicate which ones are supported (and correspondingly, only those appear in the UI).
  • Pre SP2, when using the “Consume Adapter Service” tool in a BizTalk project, the XSD files generated had names like “MyBinding1.xsd”, “MyBinding2.xsd”, etc. Even though a “filename prefix” textbox was present, it had a couple of drawbacks – (a) the user had to provide the prefix, which might not clearly indicate what the XSDs contained, and (b) the same prefix applied to all XSDs generated during the metadata resolution of all operations selected in the UI. In SP2, it is now possible for the adapter to specify a “filename hint” for each XSD generated.

A Great BizTalk Scenario – Two Way Port being Serviced by two one way backend ports

This one came from Paolo Salvatori (a senior PM within the MS Connected Systems Division
Team… I know a bit of a mouthful) whom has gotten in touch with his creative side
and drawn a picture for all us common folk 🙂 – well done Paolo.

The scenario is – a Request/Response Port is published at the ‘front
end’, goes through BizTalk and the work is done by a backend system that operates
via a One-Way Send and BTS gets the response via another
One-Way Receive
.

The thing I like about Paolo’s piece of work is that he shows all the Message Context
Properties required to be set by BizTalk for message correlation.
Which makes this a Messaging Only Solution and NO Orchestrations required!!!! (how
cool)

 

 

Click on the image to enlarge……one day I’ll get Silverlight Zoom Composer control
running for these…. 🙂

Configuring Dynamics 2009 AIF for BizTalk 2006

There has been little documentation, if any, either on MSDN or CustomerSource regarding the implementation of AIF Services with the BizTalk Adapter.

I have been working with this for Dynamics 2009, which is even worse, as all of the documentation is for dynamics 4. I managed to figure out, with the help of some others how to configure dynamics to enable BizTalk to at least send a document to it. It’s all about end points, and services. See below for the step by step.

Nice Summer Days

Before I get to a .NET-related post, I thought I would make a visit to the confessional. No fear – we’re not voting anyone off the island…but I do have a confession to make (but it’s something that you probably already know) — this blog has been quiet over the past couple weeks. I have a couple blog posts in the pipeline, but I thought I would drop some context around the pause.

For those of you who aren’t familiar with the Seattle area, western Washington in the summer is just pure magic. I know that it may be hard to believe – given the reputation Seattle has – but between the months of June and September, the skies clear and the mountains come out to play. When one isn’t cranking out code during these glorious months, it’s a time for biking, hiking, and enjoying the outdoors.

For our part, my wife and I struck out to British Columbia to see Whistler and Blackcomb – we enjoyed the mountain off-season and did some bear-watching. It was nice being able to walk about and do some mountain biking at the lower parts of the mountains, and have the option of doing some snowboarding on the still-snowy top of Blackcomb. The picture attached to this post was of the river that flows through the village at the bottom of the mountains – a river I was told the river was being fed by melting snow.

"Great story and an excellent photo of water," you say; "but what does this all have to do with WF/WCF?", you ask.  Well, the weather and the July 4th holiday weekend means that folks on various teams have been taking a couple days off here and there to enjoy the summer sunshine – which means that publication processes that usually move within a 2 day period have had a lot of delay steps placed in the middle of them. 🙂

That being said, there’s some good things afoot for the coming months:

  • We have some good technical content that’s going to be going live this week on the MSDN site.
  • There’s also some library clean-up being done with the posts that have been languishing in the Windows Vista branch of the library (much of it was posted there when this was all still WinFX).
  • I’ve been beta testing some new publication tools for the MSDN web site, which should make creating new pages much simpler. We’re going to try and get a couple new pages posted under the WF Dev Center and WCF Dev Center. Our current thoughts are to start tying to collect the video screencasts/how-to’s and the code samples together, to help with find-ability.
  • I’m trying to convince some of the folks that have signed up to blog to at least pop on and do an introduction, to at least get past their first posts.

I look forward to sharing more details on information as the stuff moves up from staging to production this week; and I hope everyone is having a good summer (for whom this is summer – for those who it is winter, I hope you’re enjoying the slopes!) and enjoying yourself.

Your buddy in .NET-Connectedness,
Cliff Simpkins

Creating a PIDX Partner Interface Process (PIP) in BTARN 3.5

The next step in developing your PIDX / RNIF solution using the BizTalk Accelerator for RosettaNet (BTARN 3.5) is to create a new Process Configuration from your PIDX PIP. I’m going to use the PIDX “Invoice” and “Invoice Response” PIPs (P21 & P22) in this example since they are generally the most important in the Energy, Oil & Gas industry right now.

1. You begin by opening the BTARN Management Console and right-clicking on the Process Configuration Settings node in the left-hand pane and selecting New > Process Configuration.

2. For PIDX configurations I recommend using a Display Code that includes the standard, the PIP and the version like “PIDX_P21_1.0”. This will make things a lot easier if you need to support multiple versions in the future. The Process Code corresponds to the PIP number which is “P21” in our case. The Version is “1.0” and the Process Name is “Invoice”. The Message Standard is “PIDX”, the Standard Version is “1.0” and the Payload Binding ID is also “PIDX. Once you are done, your General tab should look like this.

3. The parameters you set on the Activity tab are very important and the required values can be found in the PIDX Implementation Guide. To meet the PIDX requirements, the Non-Repudiation Required, Is Authorization Required and Non-Repudiation of Origin and Content parameters must all be set to “True” and the Type parameter must be set to “Request/Response”. The settings for all other parameters on the Activity tab must be agreed upon by both parties involved in the transaction. Once you are done, the Activity tab should look like this.

4. The parameters you set on the Initiator tab are also very important and these are all specified by the PIDX P21 Invoice PIP documentation. It’s very important that you communicate these settings to your trading partner as well since they must be the same on both messaging systems. Once you are complete the Initiator tab should look exactly like this.

 

5. The same goes for the Responder tab as shown here.

There are a lot of parameters to set when creating a new Process Configuration in the BizTalk Accelerator for RosettaNet. Almost all of these are used by the Initiator Private Process and Initiator Public Process to create the outbound RNIF headers and message so it’s vital that you and your trading partner agree on all these before you begin testing.

It’s pretty sad how complicated this is compared to an alternative such as AS2. As I’ve said before using RosettaNet is like “swatting a fly with an atom bomb”.

Currently listening to Eric Marienthal’s Just Around the Corner.

BizTalk Services “R12” Release – Workflow

Drum roll please.for those of you are as interested in the advent of cloud services, this is big. Today, we released BizTalk Services “R12” Community Technology Preview (CTP).  Just as a refresher: “BizTalk Services” is the code-name for an incubation for our SOA platform-in-the-cloud offering from Microsoft.  BizTalk Services provides Messaging, Identity and Workflow (our latest addition) enabling developers to extend existing premises applications and build new composite applications.  See my previous post for additional information.


 


While the BizTalk Services “R12” CTP includes a variety of updates, the piece that stand out is the release of the anticipated Workflow capabilities. The new cloud-based Workflow capabilities enable ’service orchestration’ from the cloud.  This functionality is based on the Windows Workflow Foundation (.NET Framework component) and can orchestrate services that connect to systems in your enterprise, or to systems running anywhere on the Internet via Web services messages. Using this service, you can define the interaction of any web-addressable services.  



In addition to the Workflow functionality, the BizTalk Services Identity Service has been expanded and enhanced to enable more flexibility for scenarios demanded by our customers.  R12 introduces a new approach for creating, viewing, and managing access control rules.   


 


The new BizTalk Services “R12” CTP is online and available now for your use and the SDK is available at http://labs.biztalk.net. Whether or not you currently have an account, now’s the time to try it!