Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Introduction
Being able to track messages is convenient for developers and administrators for debugging/analysis purposes. BizTalk enables you to track message content and context on ports, pipelines and orchestrations. Depending on your goal you can turn on/off different tracking options. These tracking options can be exported and imported through binding files.
This article contains the tracking options for Receive/Send Ports, Pipelines and Orchestrations as they may occur in binding files.
The article can also be downloaded in PDF format from the Gallery:
Deployment of tracking options
Given the performance penalty of using much tracking, you’ll want less tracking in your Live environment than in your Development/Test environment. If you use BTDF for deployment of BizTalk applications you can easily add variables to the Settings file, so you can automatically apply different tracking options per environment. Below some suggestions on how you could name these variables:
- send_tracking_oneway_ports
- receive_tracking_oneway_ports
- tracking_twoway_ports
- tracking_pipelines
- tracking_orchestrations
Receive Ports (One-Way)
Track Message Bodies |
|
Request message before port processing |
1 |
Request message after port processing |
2 |
|
|
Track Message Properties |
|
Request message before port processing |
16 |
Request message after port processing |
32 |
Example
Say you want to track messages and properties before and after port processing. You need:
- Request message before port processing = 1
- Request properties before port processing = 16
- Request message after port processing = 2
- Request properties after port processing = 32
- Tracking setting (1 + 16 + 2 + 32) = 51
In Binding file
< ReceivePort Name = "ReceivePort1" IsTwoWay = "false" BindingOption = "0" >
< Description xsi:nil = "true" />
...
< Tracking >51</ Tracking >
...
</ ReceivePort >
Send Ports (One-Way)
Track Message Bodies |
|
Response message before port processing |
4 |
Response message after port processing |
8 |
|
|
Track Message Properties |
|
Response message before port processing |
64 |
Response message after port processing |
128 |
Example
Say you want to track messages and properties before and after port processing. You need:
- Response message before port processing = 4
- Response properties before port processing = 8
- Response message after port processing = 64
- Response properties after port processing = 128
- Tracking setting (4 + 8 + 64 + 128) = 204
In Binding file
< SendPort Name = "SendPort1" IsTwoWay = "false" BindingOption = "0" >
< Description xsi:nil = "true" />
...
< Tracking >204</ Tracking >
...
</ SendPort >
Send/Receive Ports (Request/Response)
Track Message Bodies |
|
Request message before port processing |
1 |
Request message after port processing |
2 |
Response message before port processing |
4 |
Response message after port processing |
8 |
|
|
Track Message Properties |
|
Request message before port processing |
16 |
Request message after port processing |
32 |
Response message before port processing |
64 |
Response message after port processing |
128 |
Example
Say you want to track messages and properties as they enter/leave the port. You need:
- Request message before port processing = 1
- Request properties before port processing = 16
- Response message after port processing = 8
- Response properties after port processing = 128
- Tracking setting (1 + 16 + 8 + 128) = 153
In Binding file
< SendPort Name = "SendPort1" IsStatic = "true" IsTwoWay = "true" BindingOption = "0" >
< Description xsi:nil = "true" />
...
< Tracking >153</ Tracking >
...
</ SendPort >
Pipelines
Track Events |
|
Track Events |
|
Port start and end events |
ServiceStartEnd PipelineEvents |
Message send and receive events |
MessageSendReceive |
|
|
Track Message Bodies |
|
Message before pipeline processing |
InboundMessageBody |
Message after pipeline processing |
OutboundMessageBody |
Example
Say you want to track port start and end event and message receive and send events. You need:
- Port start and end events: ServiceStartEnd PipelineEvents
- Message send and receive events: MessageSendReceive
- Tracking setting: ServiceStartEnd PipelineEvents MessageSendReceive
In Binding file
< ReceivePort Name = "ReceivePort1" IsTwoWay = "true" BindingOption = "1" >
< Description xsi:nil = "true" />
< ReceiveLocations >
< ReceiveLocation Name = "ReceiveLocation1" >
< Description xsi:nil = "true" />
...
< ReceivePipeline Name = "ReceivePipeline1" FullyQualifiedName = " ReceivePipeline, Pipelines, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4747cde3b0ad4ae" Type = "1" TrackingOption = "ServiceStartEnd MessageSendReceive PipelineEvents" Description = "" />
...
</ ReceiveLocation >
</ ReceiveLocations >
...
</ ReceivePort >
Orchestrations
Track Events |
|
Orchestration start and end |
ServiceStartEnd |
Message send and receive |
MessageSendReceive |
Shape start and end |
OrchestrationEvents |
|
|
Track Message Bodies |
|
Before orchestration processing |
InboundMessageBody |
After orchestration processing |
OutboundMessageBody |
|
|
Track Message Properties |
|
Incoming messages |
TrackPropertiesForIncomingMessages |
Outgoing messages |
TrackPropertiesForOutgoingMessages |
Example
Say you want to track orchestration instances when they start and end, when messages are received and send and you want to see which shapes are started and ended in the Orchestration Debugger. You need:
- Orchestration start and end: ServiceStartEnd
- Message send and receive: MessageSendReceive
- Shape start and end: OrchestrationEvents
- Tracking setting: ServiceStartEnd MessageSendReceive OrchestrationEvents
In Binding file
< Service Name = "Orchestration1" State = "Started" TrackingOption = "ServiceStartEnd MessageSendReceive OrchestrationEvents" Description = "" >
< Ports />
< Roles />
< Host Name = "ProcessingHost" NTGroupName = "BizTalk Application Users" Type = "1" Trusted = "false" />
</ Service >
See also
Another important place to find a large amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.