Search code examples
biztalkbiztalk2006r2custom-pipeline-component

BizTalk Server Threading in Receive Pipelines


I am building custom pipeline components for receive pipelines in BizTalk Server (2006 and 2009). I am building the components in a streaming fashion.

My question: for any single inbound message, if I have a disassembling component, when I create n messages from a single inbound message, will the message agent always use a single thread when reading the (body) streams and persisting the messages to the message box? I would think so, but confirmation would be helpful.

Say if I create five messages in the disassembler, will any of these messages be persisted sequentially from the same thread? Or could these messages be processed in parallel?


Solution

  • On Biztalk 2004 it was done on a single thread, see http://www.microsoft.com/belux/msdn/nl/community/columns/claessens/custompp.mspx for details.

    It should be the same for latter versions of Biztalk:

    • There was not a big change in Biztalk 2006, compared with the change between 2002 and 2004.
    • How could this be implemented? If you have a non seekable stream, it is not possible to move around the stream, and therefore not possible to allocate different parts of the stream to different threads.