- 4 minutes to read

Recommended tracking settings for default pipelines

Never miss a message or fill your disks again! Nodinite helps you have the proper BizTalk pipeline configuration at all times.

The problem

With Microsoft BizTalk Server there is a built-in tracking feature. There are many options and with many different people having access and managing your BizTalk Server you may end up with either:

  • Missing data - bad for business
  • Filling your disks - thereby giving the BizTalk tracking feature a bad reputation
  • Invalid configuration - according to your intention/policy

It seems that all versions of Microsoft BizTalk Server, ranging from 2006 and onwards, have a problem that stems from either:

  • BizTalk administrators (developers, consultants, ...) that do not understand the effects of changing the tracking settings for pipelines
  • Deployments with a "bad" binding file. Our opinion is that this is a bug.

The problem is known to exist at least for the following pipeline components:

  • Microsoft.BizTalk.DefaultPipelines.PassThruReceive
  • Microsoft.BizTalk.DefaultPipelines.PassThruTransmit
  • Microsoft.BizTalk.DefaultPipelines.XMLReceive
  • Microsoft.BizTalk.DefaultPipelines.XMLTransmit

Bad BizTalk Binding file

Below is an example of a "bad" binding file:

...
<SendPort Name="Send.File.UnzippedXMLFile" IsStatic="true" IsTwoWay="false" BindingOption="1">
      <Description xsi:nil="true" />
      <TransmitPipeline Name="Microsoft.BizTalk.DefaultPipelines.PassThruTransmit" FullyQualifiedName="Microsoft.BizTalk.DefaultPipelines.PassThruTransmit, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Type="2" TrackingOption="ServiceStartEnd MessageSendReceive InboundMessageBody OutboundMessageBody" Description="" />

Sample binding file with too many tracking options checked for one of the default pipelines

If the <TransmitPipeline element is part of the binding file with any of the Microsoft BizTalk Server default pipelines, the settings will be applied globally and affect ALL ports using the particular pipeline!

Good BizTalk Binding file

Below is an example of a "correct" binding file:

...
<SendPort Name="Send.File.UnzippedXMLFile" IsStatic="true" IsTwoWay="false" BindingOption="1">
      <Description xsi:nil="true" />
      <TransmitPipeline Name="Microsoft.BizTalk.DefaultPipelines.PassThruTransmit" FullyQualifiedName="Microsoft.BizTalk.DefaultPipelines.PassThruTransmit, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Type="2" TrackingOption="ServiceStartEnd MessageSendReceive" Description="" />

sample binding file with correct tracking settings for default pipelines

The solution

Use the Nodinite Auto Healing feature together with the Nodinite Microsoft BizTalk Server Monitoring Agent as described next.

Nodinite can reset the default tracking properties on selected BizTalk pipelines using the Auto Healing feature. This feature is available for all Monitoring Agents using Monitor Views. The mission here is to create a dedicated Monitor View with the default pipelines and then configure the Auto Healing feature on selected Resources (in this case, the default pipelines).

  1. First, verify the agent is configured to warn when invalid tracking settings for default pipelines are detected
    TrackingSettings
    Recommended settings for the BizTalk Monitoring Agent
  2. Create a new Monitor View
    • Make sure to check the option to allow for Remote Actions
    • Add a link to this documentation page in the Description field to have everyone understand why you are doing this
  3. Select the following Resources (type default, select BizTalk agent and category 'Pipeline')
  • Microsoft.BizTalk.DefaultPipelines.PassThruReceive
  • Microsoft.BizTalk.DefaultPipelines.PassThruTransmit
  • Microsoft.BizTalk.DefaultPipelines.XMLReceive
  • Microsoft.BizTalk.DefaultPipelines.XMLTransmit
    DefaultPipelines
    Selection of default pipelines
  1. Your monitor View should now look similar to the image below:
    DefaultPipelines
    Monitor view with default pipelines
  2. Create an Auto Healing configuration for each Resource (repeat this step 4 times)
    • Edit Resource
      EditResource
    • Add an Auto healing from the Configuration tab with settings like the following image:
      Add Auto healing
    • SAVE!!!
  3. Verify that there is an ambulance icon on all 4 rows in the Monitor View

Next Step