Geeks With Blogs
Nigel Parker BizTalk 2004 Developer - Auckland, New Zealand,

I know this is pretty straight forward stuff… but I have found that naming conventions chosen for these two distinct shapes (“Call” & “Start”) can lead to some confusion on how they operate. For this reason I’m going to attempt to clarify a few things here.

 

BizTalk 2004 has two different Orchestrations Shapes for invoking orchestrations from within an orchestration.

 

The Call Orchestration - Enables your orchestration to call another orchestration synchronously (BizTalk help - ms-help://BTS_2004/SDK/htm/ebiz_prog_orch_vont.htm).

 

A common use for the Call Orchestration shape would be to take a common piece of functionality that completes quickly and returns information to the calling orchestration. A place where I use Call Orchestration in my projects is to call an orchestration that initialises a new blank configuration message then calls the rules engine to populate it with configuration values and returns that message to the calling orchestration.

 

The Start Orchestration - Enables your orchestration to call another orchestration asynchronously (BizTalk help - ms-help://BTS_2004/SDK/htm/ebiz_prog_orch_kbmp.htm).

 

A common use for the Start Orchestration shape would be to take a process that may take some time to complete, but in which the results are important and you would at some point in time like to return some information to the calling orchestration. A place where I use Start Orchestration in my projects is when I process a batch of messages inside a loop and then send out each message one by one, with a long delay between acknowledgements. In this process I want to have control over the number of messages that may execute in parallel.

 

“Passed-in port references, role links, and correlation sets all perform like self-addressed envelopes: they supply the nested orchestration information it can use to send information back to the enclosing orchestration.”

 

Scott Woodgate has a great sample for implementing a “Uniform Sequential Convoy Sample” that creates a singleton orchestration controller that limits instantiations of child orchestrations to a set number using a loop.

 

This sample uses the Start Orchestration method to pass in a port to a child orchestration that is called asynchronously http://blogs.msdn.com/scottwoo/archive/2004/07/07/175391.aspx.

 

Hopefully this helps to clarify a few things…

 

Nigel

Posted on Sunday, November 14, 2004 8:58 PM BizTalk Tips & Tricks | Back to top


Comments on this post: Processes for invoking BizTalk orchestrations both synchronously and asynchronously…

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © Nigel Parker | Powered by: GeeksWithBlogs.net