What is Parallel convoy ?
Parallel convoy in BizTalk is used to receive messages in any order. The Orchestration process does not start its execution further until all the messages in parallel convoys are received. In Parallel convoy we have a parallel shape as the first shape in the Orchestration and multiple receive shapes for receiving multiple messages.
For example if there is a Online shopping portal which sends several messages to BizTalk like ShoppingDetails, CustomerDetails, BillingAddress and they all need to be received in BizTalk and then only process should continue further and these messages can be receied in any order into BizTalk. This situation can be implemented using Parallel convoy :
SourceSchema for ShoppingDetails message:
SourceSchema1 for BillingAddress messages:
SourceSchema2 for CustomerDetails message:
NOTE : CustID is promoted in all the three schema's. Here is Property schema for CustID :
PropertSchema for CustID:
DestinationSchema :
Orchestration :
In Orchestration we have a Parallel shape with three receive branches and three receive ports for receiving three different types of messages. Now for parallel convoy we have to create Correlation set and correlation type which is done on CustID. All three receive shapes initialize the correlation set because any message can arrive at an time. Suppose 2nd parallel branch's message arrives then the 2nd receive shape initializes the correlation set and the other two follows the correlation set. When all the three messages arrives then only further execution of the Orchestration takes place.
Hi Rahul,
ReplyDeleteAs new to biztalk its given me alot of clarification.Please send me the code to my mail id sathish.gdk34@gmail.com.
Thanks advance
Regards,
Sathish
]
Good explaination, keep posting like this posts ........ this will more helpful to beginners and please send like this to my mail sushma.reddy532@gmail.com
ReplyDeleteThanks Sushma..unfortunately I can not send the code...
DeleteBut if u need any help regarding Biztalk contact me at rahul.madanin@gmail.com
Thanks,
Rahul Madaan
hi
ReplyDeleterahul
i have lot dout
what i will write in expression shape .
litille bit confution on correlation as well
if it is posible
pls send me code and discription
Hi Ashish,
DeleteI will not be able to send the code....but yeah I can publish a nice article on Correlation. You first need to learn Correlation then Convoys as convoys are special cases of correlation.
Thanks,
Rahul Madaan
how can we achieve parallel convoy without using parallel action shape?
DeleteGood question
DeleteGood question
DeleteNice article
ReplyDeleteRahul..
ReplyDeleteI have two questions here. I am bit new Biztalk. But have loads enthu to learn it.
So, please help me with my questions.
1. How do you relate the field CustID in property schema with all the other document schemas in your example.
2. What did you write in expression shapes?
Looking forward to your response.
Thanks
Mahendra
Hi Rahul,
ReplyDeleteThis indeed is a very good post and gives a good understanding of BizTalk Convoy patterns. You are a BizTalk champ. Microsoft should be proud of you......
can we set any other other unique property which is same for all parallel shapes
ReplyDeleteHello Rahul,
ReplyDeleteI tried with above solution but the messages are staying in dehydrated state.The issue is becuase you were created three corelation set and applied on 3 recieve shapes respectively.
The point here to noted that when i received three messages there will be three orchestration instances are created as it should not create these instances. We are using parallel convoy to receive multiple messages within the same orchestration instance for particulare corelation id.
To avoild dehydration of the messages, i have created a single corelation set and appiled this on all the receive shapes. Now its working fine.
Please correct me in case i am wrong.
Thanks and Regards,
Shambhu
Hello Rahul,
ReplyDeleteI tried with above solution but the messages are staying in dehydrated state.The issue is becuase you were created three corelation set and applied on 3 recieve shapes respectively.
The point here to noted that when i received three messages there will be three orchestration instances are created as it should not create these instances. We are using parallel convoy to receive multiple messages within the same orchestration instance for particulare corelation id.
To avoild dehydration of the messages, i have created a single corelation set and appiled this on all the receive shapes. Now its working fine.
Please correct me in case i am wrong.
Thanks & Regards,
Shambhu