BizTalk assigns one thread for every orchestration; even if you are using parallel shape inside your orchestration!
When you use Call Orchestration shape vs Start Orchestration shape?
The way BizTalk handles messages internally is different when it comes to calling or starting orchestrations.
Calling an Orhestration will use the same thread to run another orchestration while using Start Orchestration will create new thread to run the started orchestration.
A Call Orchestration returns the control back to the caller. A Start Ochestration shape starts the orchestration in a non-deterministic way.
As a conclusion, Calling an Orchestration will be synchronous operation where the caller waits for a response, while Start Orchestration is asynchronous operation.
- Will reduce latency as call orchestration doesn’t go via messagebox
- Possible to pass all types of parameters
- Call shape will tightly bound orchestration
- Allows to execute orchestraions asynchrounsly
- Will increase latency as strat orchestration call go via messagebox
- Possible to pass all types of parameters. No return param is supported
- Start shape will tightly bound orchestration
Short hint: If you call an orchestration from another project you have to set the Type Modifier Property to public. Otherwise the orchestration will not show up in the dialog where to choose the orchestration you call.
Tags: BizTalk | Orchestration