Microsoft Knowledge Base Email Alertz

(837860) - Explains why you cannot receive a file in an orchestration by using a pass-through pipeline in Microsoft BizTalk Server 2004.

Search KbAlertz

Advanced Search

Receive Microsoft Knowledge Base articles by E-Mail?

Every night we scan the Microsoft Knowledge Base. If technologies you're interested in are updated, we'll send you an e-mail. You only get one e-mail a day, and only when new articles are added.

Click here to create a
FREE account
Already have an account?
[Click here to Login]











Microsoft Knowledge Base Article

This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks

Article ID: 837860 - Last Review: October 25, 2007 - Revision: 3.4

You cannot use a pass-through pipeline to receive a file in an orchestration in BizTalk Server

SYMPTOMS

If you use the pass-through pipeline to receive a file in an orchestration in Microsoft BizTalk Server 2006 R2, in Microsoft BizTalk Server 2006, or in Microsoft BizTalk Server 2004, the file is suspended, and error messages that are similar to the following appear in the application log of your BizTalk Server computer:

Message 1
The Messaging Engine encountered an error publishing a batch of "1" messages to the Message Box database for the transport adapter "FILE". Please refer to Health and Activity Tracking tool for more detailed information on this failure and check the endpoint bindings are correctly configured.
Message 2
The Messaging Engine failed to process a message submitted by adapter:FILE Source URL:C:\Program Files\Microsoft BizTalk Server 2004\SDK\Samples\Orchestrations\CallOrchestration\in\*.xml. Details: Could not find a matching subscription for the message. This error occurs if the subscribed orchestration schedule or send port has not been started, or if some of the message properties necessary for subscription evaluation have not been promoted. Please refer to Health and Activity Tracking tool for more detailed information on this failure.
Message 3
The "FILE" adapter is suspending a message coming from Source URL:"C:\Program Files\Microsoft BizTalk Server 2004\SDK\Samples\Orchestrations\CallOrchestration\in\*.xml. Details: "Could not find a matching subscription for the message."
Message 4
The Messaging Engine has suspended "1" message(s) from adapter "FILE" due to failures in message processing. Please refer to Health and Activity Tracking tool for more detailed information on this failure.
If you view the message details for the suspended message in the Health and Activity Tracking (HAT) interface, the error description reads:
Could not find a matching subscription for the message.

CAUSE

This behavior may occur because the message type that is required to create the subscription for the orchestration is not available because the XML parser has not parsed the message. The Microsoft.BizTalk.DefaultPipelines.Passthrough pipeline does not contain the XML disassembler. Therefore, the message type that is required to create the subscription for the orchestration is not available.

RESOLUTION

This behavior can be resolved depending on the message type that the orchestration is expecting:
  • If the receive shape in the orchestration contains a message that is of an XSD schema type, the orchestration subscribes based on messagetype when the orchestration is enlisted. To set the messagetype property, the receive pipeline must have an XML disassembler. You can change the pipeline that is configured for the receive location to the Microsoft.BizTalk.DefaultPipelines.XMLReceive pipeline because it contains the XML disassembler. You can also use a custom pipeline that contains the XML disassembler.
  • If the receive shape in an orchestration contains a message that is of type System.XML.XMLDocument, the orchestration creates no default subscription when the orchestration is enlisted. You can create a subscription by setting a filter in the receive shape of the orchestration. In this case, the type of pipeline that you use depends on your filter. For example, if you are filtering on ReceivePortName, the pipeline can be anything, including XMLReceive, PassThruReceive, or a custom pipeline, because the ReceivePortName property is not set by a pipeline. If you are filtering based on a promoted property in the message, you must make sure that the XML disassembler is in the pipeline. Therefore, you need to use the Microsoft.BizTalk.DefaultPipelines.XMLReceive pipeline or a custom pipeline that contains an XML disassembler.
  • If the receive shape in an orchestration contains a message that is of type System.String, the orchestration creates a subscription where the messagetype of the message must be “string” when the orchestration is enlisted. In this case, the PassThruReceive pipeline cannot be used because the messagetype property must be set. Because the orchestration subscribes based on the messagetype of the string type, the message that goes to the orchestration must be wrapped around XML tags <string>message</string>. One way to do this would be to use a custom pipeline that has a custom pipeline component that wraps the message(data) with a <string> root node and with the XML disassembler component to set the messagetype. The root node (<string>, for example) will be discarded, and only the actual data will be available in the orchestration.

STATUS

This behavior is by design.

APPLIES TO
  • Microsoft BizTalk Server 2006 R2 Branch Edition
  • Microsoft BizTalk Server 2006 R2 Developer Edition
  • Microsoft BizTalk Server 2006 R2 Enterprise Edition
  • Microsoft BizTalk Server 2006 R2 Standard Edition
  • Microsoft BizTalk Server 2006 Developer Edition
  • Microsoft BizTalk Server 2006 Enterprise Edition
  • Microsoft BizTalk Server 2006 Standard Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Partner Edition
Keywords: 
kbbiztalk2004-2006swept kbbtsadapters kbbtsmessaging kbbtshat kbbtsorchestration kbprb KB837860
       

Community Feedback System

Very often, it takes hours to solve a problem. Very often, you've looked high and low, and have tried a lot of solutions. When you finally found it, chances are, it was because someone else helped you. Here's your chance to give back. Use our community feedback tool to let others know what worked for you and what didn't.

Please also understand that the community feedback system is not warranted to be correct, it's simply a system that we've built to let people try and help each other. If something in a feedback response doesn't make sense to you, or you're not comfortable making changes that the feedback talks about (like registry edits), please consult a professional.

Thank you for using kbAlertz.com Feedback System.

-- Scott Cate