Wednesday, July 7, 2010

BizTalk High Availability Host Separation

While doing some digging into High Availability, I always find myself referencing Kent Weare’s great blogs. There were some quick updates that I found in the BizTalk 2009 documentation that may add on to this.

I figured that this may be valuable to the community so I wanted to blog this here.

We all know about providing dedicated hosts for receiving, sending and processing(orchestration) tasks. One that is overlooked is the tracking.

As per MSDN,

“BizTalk Server is optimized for throughput, so the main orchestration and messaging engines do not actually move events or messages directly to the BizTalk Tracking (DTA) or Business Activity Monitoring (BAM) databases, since this would divert these engines from their primary job of executing business processes. Instead, BizTalk Server leaves the events and messages in the MessageBox database and marks them as requiring a move to the BizTalk Tracking or BAM databases. A background process (the tracking host) then moves the events to the BizTalk Tracking and BAM databases, while a SQL Server Agent job copies tracked messages to the BizTalk Tracking database.”

So, we ask, what are the benefits ?

“A BizTalk Host that hosts tracking is responsible for moving the DTA and BAM tracking data from the MessageBox database to the BizTalk Tracking (DTA) and BAM Primary Import databases. This movement of tracking data has an impact on the performance of other BizTalk artifacts that are running in the same host that is hosting tracking. Thus, you should use a dedicated host that does nothing but host tracking.

Using a dedicated tracking host also allows you to stop other BizTalk hosts without interfering with BizTalk Server tracking. The movement of tracking data out of the MessageBox database is critical for a healthy BizTalk Server system. If the BizTalk Host responsible for moving tracking data in the BizTalk group is stopped, the Tracking Data Decode service will not run. The impact of this is as follows:

  • HAT tracking data will not be moved from the MessageBox database to the BizTalk Tracking database.
  • BAM tracking data will not be moved from the MessageBox database to the BAM Primary Import database.
  • Because data is not moved, it cannot be deleted from the MessageBox database.
  • When the Tracking Data Decode service is stopped, tracking interceptors will still run and write tracking data to the MessageBox database. If the data is not moved, this will cause the MessageBox database to become bloated, which will affect performance over time. Even if custom properties are not tracked or BAM profiles are not set up, by default some data is tracked (such as pipeline receive / send events and orchestration events). If you do not want to run the Tracking Data Decode service, turn off all tracking so that no interceptors save data to the database. To disable global tracking, see How to Turn Off Global Tracking ( Use the BizTalk Server Administration console to selectively disable tracking events.”

It took a little while, but I was able to track down the link into how to enable this as this was not in the older MSDN sites (or I mixed up the versions most likely :) :

To perform the procedure in this section, you must have the following user rights for modifying host properties to allow host tracking:

  • You must be a member of the BizTalk Server Administrators group.
  • You must have the following rights in SQL Server:
    • You must be either a SQL Server administrator or a member of the db_owner or db_securityadmin SQL Server database roles in the BizTalk Tracking database (BizTalk DTADb), MessageBox databases (BizTalkMsgBoxDb), and the BAM Primary Import database (BAMPrimaryImport).
    • You must be a member of the sysadmin SQL Server role on all the computers where there are MessageBox databases, or a member of the db_owner or db_ddladmin SQL Server role for all the MessageBox databases.
To enable host tracking
  1. Click Start, click Programs, click Microsoft BizTalk Server 2009, and then click BizTalk Server Administration.

  2. In the console tree, expand BizTalk Server 2009 Administration, expand the BizTalk group, click Platform Settings, and then click Hosts.

  3. In the details pane, right-click the host that you want to modify, and then click Properties.

  4. In the Host Properties dialog box, on the General tab, select or clear Options - Allow Host Tracking, and then click OK.

    Select this check box to indicate that the host loads the BizTalk Tracking component to process health monitoring and business data. If you select this check box, the current host will have read/write access to the tracking tables in the MessageBox database, as well as to the Tracking database. Accordingly, any objects running in this host will also have read/write access to these databases.

    If you clear the check box, the host will have only write access to the tracking tables in the MessageBox database and will not have access to the Tracking database.


So there you have it… HAPPY HIGH AVAILABILITYing!

No comments: