Transport Pipe Line Tracing

The Exchange server transport pipeline is a collection of Exchange server roles, connections, components, and queues that work together to route all messages to the categorizer, and ultimately on to the messages final destination. Pipe line tracing is a feature built into Exchange 2007, 2010 and beyond allowing you to view a message and how it’s been touched at every step in the pipe line. You can use Pipe Line tracing for a number of things, such as:

  • Determine how content conversion modifies a message in transit
  • View how a message entered Exchange, and how it exits exchange to determine who is wrong with formatting
  • Troubleshoot disclaimer issues ( being applied, not being applied, not looking right)
  • Troubleshoot rules being applied, or not being applied to messages
  • Determine why messages are not being properly journaled

For more information see the following link; http://technet.microsoft.com/en-us/library/aa996349.aspx

Note | the big note / disclaimer here, entire email messages will be saved in plain text format on the Exchange server when you enable tracing. Think possible Security issue. Also every message sent from the SENDER through the configured server will be captured and stored 17 or more times, think, this could consume excessive space on a server; make sure you turn it off when you are done.

Pipe Line Tracing Configuration

Pipe Line tracing by default is disabled on Exchange Transport servers. You have to enable it on the transport server you will be working with. Then you have to configure it to capture email for a specific user. You’re only able to configure tracing to trace for a single SENDER. There are three settings you can configure for tracing using the set-transportserver command. The commands are as follows:

  • PipelineTracingEnabled |Pretty simple, you can set it to True or False, False is default. You need to set it to true before the feature will work. You don’t need to cycle transport to have the settings take effect, but you might need to wait for AD replication
  • PipelineTracingPath| The default path is C:\<exchange install path>\TransportRoles\Logs\PipelineTracing I’ve never seen much reason to change the path, but you can if you want to.
  • PipelineTracingSenderAddress | Set the email address of the SENDER you want to enable tracing for here. You can only trace for a single sender at a time.

You can run get-transportserver | fl *pipe* to see the current settings

Enable Pipe Line Tracing

The following example commands assume your environment has more than one transport server and it assumes you want to enable pipe line tracing on all transport servers. The following commands can be run to enabled pipe line tracing:

  • Enabled tracing run | Get-transportserver | set-transportserver – PipelineTracingEnabled $true
  • Set the SENDER address | Get-Transportserver | set-transportserver – PipelineTracingSenderAddress mainer@contoso.com
  • Configure the path | Get-Transportserver | set-transportserver – PipelineTracingpath “c:\bob\pipelinetracing” – You don’t need to change this setting.

Reviewing the Pipe Line Tracing logs

The pipe line tracking logs are *.eml text files stored in the PipelineTracingpath on each Exchange transport server. You can open the files in Notepad, or your email client of choice. For the purpose of reviewing the data I suggest you use notepad so you can see the RAW format / data of the email message. When you find the folder you will see something like the below image.

Each Routing000X.eml file corresponds to a step in the transport pipe line. You can view what your pipe line process looks like by running get-transportpipeline – When you run the command you will see something like the below image. For more information about what happens at each step of the pipeline view the following link; http://technet.microsoft.com/en-us/library/aa996349.aspx

When you open a message near the top of the message the X-MessageSnapshot-Source: tag will tell you what step you’re looking at in the pipeline and or what process / transport agent is toucing the message in this step.

Armed with the entire message, and the steps in the pipe line you should be able to work out where your message is not properly being handeled and trouble shoot futher.

Disabled Pipe Line Tracing

When you’ve captured enough messages to trouble shoot your issue, or you’ve solved your issue you should turn the tracking off. The following example commands assume your environment has more than one transport server and it assumes you want to enable pipe line tracing on all transport servers. The following commands can be run to enabled pipe line tracing:

  • Disabled tracing run | Get-transportserver | set-transportserver – PipelineTracingEnabled $fase
  • Set the SENDER address | Get-Transportserver | set-transportserver – PipelineTracingSenderAddress

 

 

Related Posts with Thumbnails

About Kevinm