A pipeline is a software infrastructure that defines and links one or more stages of a business process, running them in sequence to complete a specific task. Pipelines divide processing into stages, which are abstractions that describe a category of work. They also determine the sequence in which each category of work is performed.
Each stage of a pipeline contains one or more pipeline components (COM objects) that can be configured to work with the unique requirements of the site. For example, a typical Order Processing pipeline may include a Shopper Information stage, a Payment stage, and a Shipping stage.
Pipeline configuration files (.pcf) define pipelines. The pipeline specified by the file is created and run by a pipeline object. Commerce Server 2002 provides five objects to run pipelines: MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, and OrderPipeline. The MtsPipeline and PooledPipeline objects do not support transactions. The MtsTxPipeline and PooledTxPipeline objects do support transactions.
- In Commerce Server 2002, pipelines are often run indirectly through the RunPipe method of the OrderGroup object. The RunPipe method creates one of the five pipeline objects and uses it to run the pipeline.
Pipeline configuration files (.pcf files) are usually marked in one of following three ways:
- Any pipeline. May be loaded into any pipeline.
- Requires transacted pipeline. Must be loaded into an MtsTxPipeline or PooledTxPipeline pipeline.
- Requires a non-transacted pipeline. Must be loaded into an MtsPipeline, PooledPipeline, or OrderPipeline pipeline.
The pooled pipelines take advantage of COM+ object pooling to speed up pipeline loading and execution. For more information, see Pooled Pipelines.
Designing Pipelines for Your Site
As the designer of the pipelines for your site, you must take measures to ensure that the pipelines function correctly. First, you should ensure that no pipeline component is configured to overwrite the work done by another component.
Second, you should define the circumstances under which the pipeline is to stop processing. As each component in the pipeline runs, it returns a status that indicates success, a warning, or failure. If you configure a stage to tolerate warnings, the pipeline continues to operate despite a warning generated by a component in that stage. If you configure a stage to tolerate only success, and a component in that stage returns a warning, the pipeline stops processing, and returns an error.