Project Description
A set of tools to enable/disable or report on tracking options for BizTalk artifacts like ports, pipelines and orchestrations.
- exporter creates an XML file with currently tracking settings.
- importer takes (the same) XML file and set the tracking options.

Exporting

The exporting utility takes the following parameters:
Usage: BTSGetTrackingOptions.exe <TrackingOptionsFile> [-srv:server] [-db:MgmtDb] 
            [-a:app] [-r:receivePort] [/s:sendPort] [-o:orchestration] [-p:pipeline]
 where
   TrackingOptionsFile : xml file to export tracking options to
   srv : Sql server
   db  : Management database e.g. BizTalkMgmtDb
   a   : Application name
   r   : Receive port name
   s   : Send port name
   o   : Orchestration name
   p   : Pipeline name

Importing

The importing utility takes the following parameters
Usage: BTSSetTrackingOptions.exe <TrackingOptionsFile> [-s:server] [-d:database]
 where
   TrackingOptionsFile : xml file containing tracking options
   -s : Sql server
   -d : Management database e.g. BizTalkMgmtDb

XML file structure

The basic structure of the XML looks like this:
// Sample XML
<trackingOptions>
     <application name="Appname">
          <receivePorts>
               <receivePort name="*">
                    <tracking>
                         <remove />
                         <add key="*"/>
                    </tracking>
               </receivePort>
          </receivePorts>
          <sendPorts>
              <sendPort name="*">
                    <tracking>
                         <remove />
                         <add key="*" />
                    </tracking>
               </sendPort>
          </sendPorts>
          <orchestrations>
              <orchestration name="*">
                    <tracking>
                        <remove />
                        <add key="*"/>                    
                    </tracking>
               </orchestration>
          </orchestrations>
          <pipelines>
               <pipeline name="*">
                    <tracking>
                         <remove />
                         <add key="*"/>
                    </tracking>
               </pipeline>
          </pipelines>
     </application>
</trackingOptions>

Tracking option values

The following values are allowed for receive ports (one way):
  • BeforeReceivePipeline
  • AfterReceivePipeline
  • BeforeSendPipeline (only allowed on bidirectional ports)
  • AfterSendPipeline (only allowed on bidirectional ports)
  • TrackPropertiesBeforeReceivePipeline
  • TrackPropertiesAfterReceivePipeline
  • TrackPropertiesBeforeSendPipeline (only allowed on bidirectional ports)
  • TrackPropertiesAfterSendPipeline (only allowed on bidirectional ports)
The following values are allowed for send ports:
  • BeforeReceivePipeline (only allowed on bidirectional ports)
  • AfterReceivePipeline (only allowed on bidirectional ports)
  • BeforeSendPipeline
  • AfterSendPipeline
  • TrackPropertiesBeforeReceivePipeline (only allowed on bidirectional ports)
  • TrackPropertiesAfterReceivePipeline (only allowed on bidirectional ports)
  • TrackPropertiesBeforeSendPipeline
  • TrackPropertiesAfterSendPipeline
The following values are allowed for orchestrations:
  • ServiceStartEnd
  • MessageSendReceive
  • InboundMessageBody
  • OutboundMessageBody
  • OrchestrationEvents
  • TrackPropertiesForIncomingMessages
  • TrackPropertiesForOutgoingMessages
The following values are allowed for pipelines:
  • ServiceStartEnd
  • MessageSendReceive
  • InboundMessageBody
  • OutboundMessageBody

Wildcards

Wildcard characters are allowed during importing. For example, if you specify <add key="*" /> it means all tracking options for the specified object will be enabled. Removes are done before adds - e.g. if you specify the following <remove key="*" /><add key=" * "/> the utility will first remove all tracking options and then add it again. Adding only adds tracking options - it does not reset existing enabled tracking options.
The following XML will disable all tracking in all applications:
<trackingOptions>
     <application name="*">
          <receivePorts>
               <receivePort name="*">
                    <tracking>
                         <remove key="*"/>
                    </tracking>
               </receivePort>
          </receivePorts>
          <sendPorts>
              <sendPort name="*">
                    <tracking>
                         <remove key="*" />
                    </tracking>
               </sendPort>
          </sendPorts>
          <orchestrations>
              <orchestration name="*">
                    <tracking>
                         <remove key="*"/>                    
                    </tracking>
               </orchestration>
          </orchestrations>
          <pipelines>
               <pipeline name="*">
                    <tracking>
                         <remove key="*"/>
                    </tracking>
               </pipeline>
          </pipelines>
     </application>
</trackingOptions>

Tracking viewer

The third tool is a simple viewer that display the currently selected tracking options.
ViewBTSTrackingStatus.JPG

BizTalk version support

All tools use only the .Net 2.0 framework so it can be compatible with BizTalk 2006 (not R2). Tools has been tested on BizTalk 2006, 2006 R2 and 2009.
Tools reference the Microsoft.BizTalk.ExplorerOM assembly. This means that it must be run on a machine with BizTalk installed plus it must be the same version of the product as the BizTalk group you are connecting to.

BizTalk ExplorerOM issue

Due to a limitation of the ExplorerOM assembly that is only supported under 32bit the utilities must be build with the target platform set to x86. This means they will still run on a 64bit machine but in 32bit mode.

Last edited Oct 29, 2009 at 7:37 AM by RudolfHenning, version 19