Pipeline Stages
This topic discusses the Execution Mode property and stage affinity.
During the execution of a pipeline, the pipeline stages can run only the first component that recognizes the message format, or all components. The property that determines the execution pattern is Execution Mode.
Note
This property is read-only on the stages included in the pipeline templates, but understanding how it works is an important concept.
When the Execution Mode property is set to All, all the components within the stage are run in the configured sequence. This mode runs several components to complete a logical task. In this case, a run-time error results if any component encounters an error while processing a message during this pipeline stage.
When a pipeline is used to receive messages in several formats, then the Execution Mode property is set to FirstMatch. In this mode, only the first component that recognizes the message is run. If no components in the stage recognize the message, a run-time error results.
Note that each stage can have its own Execution Mode setting, so different stages within a pipeline can have different execution modes.
Note
In this release of BizTalk Server, all the stages in a send pipeline and all stages except Disassemble in a receive pipeline have the value of the Execution Mode property set to All. The value of the Execution Mode property in the Disassemble stage is set to FirstMatch. You cannot change the Execution Mode property of a stage.
In Pipeline Designer, click a stage shape.
In the Properties window, in the General section, read the following properties:
Use this To do this Name Indicates the name of the stage. Execution Mode Indicates the execution pattern of the stage.
Valid values: All or FirstMatchMinimum Number of Components Indicates the minimum number of pipeline components that can be added to the stage. Maximum Number of Components Indicates the maximum number of pipeline components that can be added to the stage. StageID Indicates the unique identifier for the stage.
Pipeline components have stage affinity, meaning that they are created for use within a particular stage or stages in a pipeline.
COM-based pipeline components express their stage affinity by registering themselves using the stage ID as the implementation category, while .NET-based pipeline components specify their stage affinity by using the ComponentCategory class attribute. Note that it is possible for a component to associate itself with more than one stage—components can have more than one implementation category or ComponentCategory attribute.
The following table shows the available component categories and their associated stages.
Component category | Stage where component can be placed | Description |
---|---|---|
CATID_Decoder {9d0e4103-4cce-4536-83fa-4a5040674ad6} | Decode | All decoding components should implement this category. |
CATID_DisassemblingParser {9d0e4105-4cce-4536-83fa-4a5040674ad6} | Disassemble | All disassembling and parsing components should implement this category. |
CATID_Validate {9d0e410d-4cce-4536-83fa-4a5040674ad6} | Validate | Validation components should implement this category. |
CATID_PartyResolver {9d0e410e-4cce-4536-83fa-4a5040674ad6} | ResolveParty | Stage used for Party Resolution component. |
CATID_Encoder {9d0e4108-4cce-4536-83fa-4a5040674ad6} | Encode | All encoding components should implement this category. |
CATID_AssemblingSerializer {9d0e4107-4cce-4536-83fa-4a5040674ad6} | Serialize | All serializing and assembling components should implement this category. |
CATID_Any {9d0e4101-4cce-4536-83fa-4a5040674ad6} | Any of these stages | If a pipeline component implements this category, it means that the component can be placed into any stage of a pipeline. |
Creating Pipelines Using Pipeline Designer
About Pipelines, Stages, and Components