Note that there are some explanatory texts on larger screens.

plurals
  1. POBizTalk ESB Toolkit Dynamic Routing from within Orchestration
    primarykey
    data
    text
    <p>I'm trying to perform dynamic itinerary routing from within an orchestration by invoking a receive pipeline, much like the provided ItinerarySelectReceiveXml reveive port, to resolve the itinerary for a given message and send it to a direct bound port for ESB routing. The setup is similar to the ComposedMessageProcessor BizTalk sample.</p> <p>My receive pipeline is exactly like ItinerarySelectReceiveXml, as far as I can see, except on the ESB Itinerary Select pipeline component (in the ResolveParty stage) I've hardcoded the connection string and ItineraryFactName (e.g. BRI:\policy=MyResolveItineraryRule;useMsg=true;recognizeMessageFormat=true; and Resolver.Itinerary) so that I don't have to do tricks with loopback adapters and incur extra messagebox visits.</p> <p>The code to invoke the receive pipeline from an expression shape is like this:</p> <p>// The first message I want to route is just a node on my incoming message</p> <pre><code>strXPath = "/*[local-name()='BeginConversationMessage' and namespace-uri()='http://MyCompany.BeginConversationMessage.v001']/*[local-name()='BeginConversationMessage' and namespace-uri()='http://MyCompany.BeginConversationMessage.v001']"; BeginConversationMessage = xpath(InboundMsg, strXPath); RcvPipeOutput = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline(typeof(MyCompany.Itinerary_GenericSelector), BeginConversationMessage); </code></pre> <p>This goes fairly well, I can see that the correct Itinerary for the message type is being resolved using SQL Profiler, and I know the itinerary is good because I use it for this message type with a generic itinerary on-ramp.</p> <p>But I'm getting an exception from the Microsoft.Practices.ESB.PipelineComponents.Dispatcher which I have right after the Microsoft.Practices.ESB.Itinerary.PipelineComponents.ItinerarySelector (in the resolve party stage)</p> <p>The docs state that the ESB Itinerary Selector Pipeline Component should set the Microsoft BizTalk Server segment of the itinerary using the following properties: correlationToken, reqRespTransmitPipelineID, interchangeId, receiveInstanceId, epmRRCorrelationToken.</p> <p>The exception looks like this:</p> <p>Value cannot be null. Parameter name: interchangeId</p> <p>Source: Microsoft.Practices.ESB.PipelineComponents.Dispatcher</p> <p>Method: Microsoft.BizTalk.Message.Interop.IBaseMessage Execute(Microsoft.BizTalk.Component.Interop.IPipelineContext, Microsoft.BizTalk.Message.Interop.IBaseMessage)</p> <p>Error Source: Microsoft.Practices.ESB.Itinerary.OM.V1</p> <p>Error TargetSite: System.Object[] GetItineraryDataForBAM(Microsoft.Practices.ESB.Itinerary.OM.V1.Itinerary, Microsoft.Practices.ESB.Itinerary.IItineraryStep, System.String)</p> <p>Error StackTrace: at Microsoft.Practices.ESB.Itinerary.OM.V1.BAMItineraryProcess.GetItineraryDataForBAM(Itinerary itinerary, IItineraryStep step, String interchangeId) at Microsoft.Practices.ESB.Itinerary.OM.V1.BAMItineraryProcess.SubmitToBAM(Itinerary itinerary, IItineraryStep step, IPipelineContext context, IBaseMessage msg) at Microsoft.Practices.ESB.Itinerary.OM.V1.ItineraryV1.&lt;>c__DisplayClassa.b__8() at Microsoft.Practices.ESB.Itinerary.OM.V1.ItineraryV1.AdvanceByOrder(ItineraryMessageDirection messageDirection, String serviceInstanceId, IItineraryStep step, Action submitToBam, Boolean advanceStep) at Microsoft.Practices.ESB.Itinerary.OM.V1.ItineraryV1.Advance(IBaseMessage message, IPipelineContext context, IItineraryStep step, Boolean advanceStep) at Microsoft.Practices.ESB.Itinerary.OM.V1.ItineraryV1.Advance(IBaseMessage message, IPipelineContext context, IItineraryStep step) at Microsoft.Practices.ESB.PipelineComponents.Dispatcher.Execute(IPipelineContext context, IBaseMessage msg)</p> <p>Any help would be appreciated.</p> <p>p.s. I've also posted this question to the ESB Toolkit Form here <a href="http://social.msdn.microsoft.com/Forums/en/biztalkesb/thread/28c5befe-4c7f-4dc1-a5e7-8fe5b3ec1c75" rel="nofollow noreferrer">http://social.msdn.microsoft.com/Forums/en/biztalkesb/thread/28c5befe-4c7f-4dc1-a5e7-8fe5b3ec1c75</a></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload