Pipeline.exe for performance Improvement

April 3, 2005

I guess many of you guys around will be working with custom pipeline components and I suppose you create biztalk artifacts (send/Receive port) to test your pipeline components.

Along with the SDK install comes this tool pipeline.exe which can be used for the following purposes:

* Debug third-party pipeline components outside of the server environment.
* Diagnose parsing engine error messages.
* Experiment with different schemas without the burden of compiling, deploying, undeploying, and recompiling.
* Explore flat file and XML assembler/disassembler behavior.
* View disassembler output and discover which message context properties are promoted and their values.
* Run send/receive pipelines without disassembler and assembler components (for example, you can view the output of the S/MIME decoder).
* Make fine-grained performance measurements of the pipeline alone (rather than the entire messaging subsystem).

The last point fine-grained performance measurements:

How to do that?

with pipeline.exe command line option, there is an option called "-t", which outputs the elapsed time after executing each stage. This is really helpful to see how much time it takes after each stage.

In my current project, we ended up changing lot of stuff inside an Disassembler component, this is the only way I can prove the new component is much more performant than the old version.

Look at the following command line entry and the output from a test project, now you know what I'm talking about.

C:Program FilesMicrosoft BizTalk Server 2004SDKUtilitiesPipelineTools>Pipeline.exe "C:My StuffSaravana.Biztalk.LearningSaravana.Biztalk.Learning.PipelinesTestReceivepipeline.btp" -d "C:My StuffSaravana.Biztalk.LearningSample Messagespipelinecomponenttest.xml" -c -t

Decode Stage:
before Execute Encode Pipeline Component pipeline component:
before Execute Encode Pipeline Component pipeline component:
after Execute, elapsed time is 00:00:00.0100144
Decode Stage: after Execute, elapsed time is 00:00:00.1001440
Disassemble Stage: before Execute
Disassemble Stage: after Execute, elapsed time is 00:00:00
Disassemble Stage: before GetNextOutputMessage
Disassemble Stage: after GetNextOutputMessage, elapsed time is 00:00:00
Validate Stage: before Execute
Validate Stage: after Execute, elapsed time is 00:00:00
ResolveParty Stage: before Execute
ResolveParty Stage: after Execute, elapsed time is 00:00:00


Author: Saravana Kumar

Saravana Kumar is the Founder and CTO of BizTalk360, an enterprise software that acts as an all-in-one solution for better administration, operation, support and monitoring of Microsoft BizTalk Server environments.

Get full control of your BizTalk Environments

Over 500 customers across 30+ countries depend on BizTalk360

Start your 14 days Free Trial

Back to Top