Wednesday, September 11, 2013

Perform your own BizTalk audit

Microsoft continues to offer an Audit track for your BizTalk production environment. They will assign you with one of their international BizTalk consultants, which will be granted access on your servers to perform a series of tests. The conclusion to all these tests will be gathered into a Health check document which will give you an indication of how to improve the performance and stability of your Microsoft BizTalk environment. But why can we only perform such a health check only once a year or every two years? Wouldn’t it be good if we could just examine our own environment, preferably monthly, next to the Microsoft audits?

Quite often, large and medium companies have a support contract running at Microsoft in which a “spending budget” is included to use several services Microsoft is offering. One of them is performing audits and giving advice in health and stability of your installations. Sadly enough, these audits cost quite a lot of money which makes them impossible to be ran every month or so. But the added value of a certain audit cannot be underestimated. It will give you an insight in how your environment is running and configured, and will lay out some pain point.

These audits are in its core based on two elements: Checks being done by tools and scripts to verify the health of the environment, and manual checks to see if configuration can be improved or edited. Often, the tools being used in these audits are tools which are (almost) freely available on the internet. I’m not saying that Microsoft has developed some tools internally to support those guys offering the audit, but most of them are also available to the big crowd. Some of the tools even contain their own KPI’s, so that an analysis is being made just for you! So why wait for two years until the next audit comes across, when you can do some of the checks just by yourself?

0. Overall

An overall view of the environment can be retrieved by using the Microsoft BizTalk Best Practice Analyzer. It will examine the environment, match it to default set KPI’s and show you where there is need for improvement. Download the BPA here: http://www.microsoft.com/en-us/download/details.aspx?id=15963

1. Infrastructure

For the monitoring of the infrastructure which is hosting your BizTalk environment, there are two important things you can do.

First, there is the execution of the “Microsoft Baseline Security Analyzer”. This is a tool which will check if the environment is up to date with all patches, service packs and security updates. It is downloadable from Technet at http://technet.microsoft.com/en-US/security/cc184924.aspx

Second, it might be useful to see if there are any latencies on the network. This is important since, in a distributed environment where your SQL and BizTalk servers are hosted on different machines, network performance plays a significant role in the reliability of your BizTalk environment. Checking network latencies can be done by executing the following command from your BizTalk server:

“pathping <SQL SERVER NAME>”

Pathping will identify any package losses whilst combining ping and tracert command. More info on this pathping command can be found here: http://technet.microsoft.com/en-us/library/cc958876.aspx

2. BizTalk Configuration

When assessing the configuration of your BizTalk environment, there are already a lot of recommendations being done on the msdn site of BizTalk. Next to those items tackled there, you can use two tools which will examine your environment and present you with results and reports.

The BizTalk Documenter will create a report which lays out the structure of your BizTalk environment. That way, you can see how the structure of your current installation and configuration is set up, together with all items deployed on this environment. You can download the BizTalk Documenter from Codeplex (2010 version – 2006 & 2009 version can be found elsewhere on codeplex): http://biztalk2010autodc.codeplex.com/

Next to the Documenter, also the BizTalk MessageBox Viewer is available for download. It will analyze the Messagebox and other elements of the BizTalk installation, match them against baselines set in the tool and give you a nice and clean report of what is going on and what can be improved. Download the MessageBox Viewer here: http://blogs.technet.com/b/jpierauc/archive/2007/12/18/msgboxviewer.aspx

3. Reliability

Having a BizTalk environment which is reliable and almost 100% available, requires taking some concepts into account when designing the architecture of your environment.

Consider using clustering for your BizTalk and SQL servers. The concepts of clustering and high-availability often go hand in hand and are to be thought of when a new environment is being set up. If you already have an existing environment or when beginning with a clean sheet, consider reading the Microsoft documentation concerning clustering an existing BizTalk environment here: http://msdn.microsoft.com/en-us/library/aa547615.aspx

The BizTalk Host Instances are in essence windows services running on your BizTalk machine(s). Therefore, in case of an error, we need to make sure that these services will be automatically restarted after a shutdown has occurred. Locate your BizTalk Host Instances in the services.msc tool and check its properties – recovery options. Make sure that each of the failures is set to “Restart the service”, that the “Reset fail counter after” is set to 1 day and the “Restart service after” is set to 1 minute.

4. Performance

Checking the performance of your environment can easily be done by using the PAL tool (http://www.codeplex.com/PAL). Certainly check out the following performance counters to get a full overview of how the performance of your machine is doing compared to the Microsoft baselines:

\.NET CLR Memory(*)\*
\BizTalk: BAS TPM Management Web Service\*
\BizTalk: BAS TPM Publishing Web Service\*
\BizTalk:FILE Receive Adapter(*)\*
\BizTalk:FILE Send Adapter(*)\*
\BizTalk:FTP Receive Adapter(*)\*
\BizTalk:FTP Send Adapter(*)\*
\BizTalk:HTTP Receive Adapter(*)\*
\BizTalk:HTTP Send Adapter(*)\*
\BizTalk:Message Agent(*)\*
\BizTalk:Message Box:General Counters(*)\*
\BizTalk:Message Box:Host Counters(*)\*
\BizTalk:Messaging Latency(*)\*
\BizTalk:Messaging(*)\*
\BizTalk:MSMQ Receive Adapter(*)\*
\BizTalk:MSMQ Send Adapter(*)\*
\BizTalk:POP3 Receive Adapter(*)\*
\BizTalk:SMTP Send Adapter(*)\*
\BizTalk:SOAP Receive Adapter(*)\*
\BizTalk:SOAP Send Adapter(*)\*
\BizTalk:SQL Receive Adapter(*)\*
\BizTalk:SQL Send Adapter(*)\*
\BizTalk:TDDS(*)\*
\BizTalk:Windows SharePoint Services Adapter(*)\*
\Cache\*
\Distributed Transaction Coordinator\*
\Enterprise SSO(*)\*
\LogicalDisk(*)\*
\Memory\*
\Network Interface(*)\*
\PhysicalDisk(*)\*
\Process(*)\*
\Processor(*)\*
\System\*
\TCPv4\*
\XLANG/s Orchestrations(*)\*

Make sure to run the PAL tool for at least 24h in a row to collect sufficient data to analyze. Head over to the Microsoft BizTalk Performance documentation to match the results found to predefined baselines (http://msdn.microsoft.com/en-us/library/ee377056.aspx and http://www.microsoft.com/en-us/download/details.aspx?id=10855)


The elements I’ve ran through in this article are just a snippet of all tools available for maintaining your BizTalk environment. For more tools that can help you to automate your administrator work, see :
http://social.technet.microsoft.com/wiki/contents/articles/5208.biztalk-server-2010-tools.aspx

Andrew