Biztalk Orchestration Parallel Convoy

Hi,

i have created a Biztalk orchestration which has a parallel shape.we have set up a correlation on BTS.ReceivePortName.

Both the receive location which receives the message have the same message type.

For example we have created 2 different messages and both the messages point the same schema so the message type is same.

after receiving them we just use both the messages in one map and transform it.

we have deployed this orchestration and created a single receive port which will have 2 different receive locations.in the orchestration bindings we have bound the same rcv port for the both the locations.

The problem what we are facing it is message is getting inversed some time in our map.

i used the orchestration debugger and see that msgA has the body of MsgB and MsgB has the body of MsGA.

Can you help us understand why is it happening?

March 26th, 2015 3:07pm

It's because there is no way to differentiate the messages.

You are receiving the same MessageType on the same Receive Port.  So, which even happens to be routed first hits the left Receive Shape.  There is no way to influence this.

You need to test each message after receiving them to correctly assign the Map inputs.  There has to be something in the message that lets you detect if it's a GTAF or YRT.  You can use xpath() for this.

Free Windows Admin Tool Kit Click here and download it now
March 26th, 2015 4:03pm

It's because there is no way to differentiate the messages.

You are receiving the same MessageType on the same Receive Port.  So, which even happens to be routed first hits the left Receive Shape.  There is no way to influence this.

You need to test each message after receiving them to correctly assign the Map inputs.  There has to be something in the message that lets you detect if it's a GTAF or YRT.  You can use xpath() for this.

March 26th, 2015 8:01pm

It's because there is no way to differentiate the messages.

You are receiving the same MessageType on the same Receive Port.  So, which even happens to be routed first hits the left Receive Shape.  There is no way to influence this.

You need to test each message after receiving them to correctly assign the Map inputs.  There has to be something in the message that lets you detect if it's a GTAF or YRT.  You can use xpath() for this.

Free Windows Admin Tool Kit Click here and download it now
March 26th, 2015 8:01pm

Yes I totally agree with John here.

there is no way through which BizTalk will ever know which message is A or B. You will have to identify something through which it can differentiate.

Otherwise another simple approach will be to create two receive shapes picking messages from two receive ports and set correlation on the basis of some other property, may be MessageType.

In this case if it is coming from two receive ports, it won't mix.


March 26th, 2015 10:49pm

Hi Sujith,

Another approach you can apply is that you can custom promote the receive loacations from which you are receiving the messages. By default the receive location name is not promoted you have to custom promote the receive location and then you can use this property for correlation.

Please follow below thread for promoting receive location:

https://social.msdn.microsoft.com/Forums/en-US/99a969c1-743d-431e-8990-0d4fc7f2351a/promote-biztalk-receive-location-name-to-context?forum=biztalkgeneral

Regards,

Rahul Madaan

Free Windows Admin Tool Kit Click here and download it now
March 26th, 2015 11:28pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics