Tricky Biztalk Orchestration Interview Preparation Guide
Download PDF

Biztalk Orchestration related Frequently Asked Questions by expert members with professional career as Biztalk Orchestration. These list of interview questions and answers will help you strengthen your technical skills, prepare for the new job interview and quickly revise your concepts

50 Biztalk Orchestration Questions and Answers:

Table of Contents:

Tricky  Biztalk Orchestration Job Interview Questions and Answers
Tricky Biztalk Orchestration Job Interview Questions and Answers

1 :: Explain how to Promote Property inside an Orchestration?

The Orchestration can not promote the properties to message context by default like pipelines can do by using the msg.Context.Promote() method. Inside Orchestration one has to create a correlation set and intialize that correlation set while publishing the message. Then the BizTalk Engine will promote the property to the message context.

2 :: Tell us can we prevent Orchestration from entering a suspended state?

Any exception which is not caught within the exception handlers of the orchestration causes the orchestration instance to be moved to the Suspended state. By applying the appropriate error handling in an orchestration it can be prevented entering the Suspended state.

3 :: Please explain design patterns in Orchestration?

One of the best practices when implementing orchestrations is to use orchestration patterns when possible. These patterns are basically design pattern, which is a general reusable solution to a commonly occurring problem within a given context of BizTalk orchestration. This article will provide some useful resource links to aid you in using patterns when implementing an orchestration.

4 :: Tell us what is relation between Orchestration instance and correlation?

Correlation is the process of matching an incoming message with the appropriate instance of an Orchestration.

5 :: Tell me what is correlation type?

A correlation type is a list of properties that eventually populates with values for use in routing messages.

6 :: Do you know what is binding?

The term binding refers to the configuration of orchestration ports in order to control the creation of subscriptions and/or promoted properties. Binding is used to control how messages will be routed to or from orchestration ports by the subscription mechanism.

7 :: Explain me what's the main difference between Call and Start Orchestration?

Calling an orchestration will use the same thread to run another orchestration while using Start Orchestration will create a new thread to run the started orchestration.
A Call Orchestration returns the control back to the caller. A Start Orchestration 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.

8 :: Tell us pro's and Con's of Direct binding?

Pro's:
☛ Loose coupling
☛ Not bounded to any physical port (explicitly)

Con's:
☛ Can lead to subscribing to messages published by another publisher

9 :: Do you know what is the difference between written property and promoted property?

Promoted properties can be used as criteria in message routing while written properties cannot. Property field is a Promoted Property in the context. Distinguished field is a Written property in the context.

10 :: Please explain when a persistence point occurs at the Orchestration level?

The engine will save the state of an orchestration in the following circumstances:
☛ Send Shape (after a message is sent)
☛ Start Orchestration Shape
☛ Suspend Shape
☛ End of a Transactional Scope (atomic or long-running)
☛ An Orchestration Debugger breakpoint is hit
☛ Orchestration Engine determines that the instance needs to be dehydrated
☛ When the Orchestration Engine is shut down; through the controlled shutdown of the host or abnormal circumstances. The engine tries to persist but if that fails, the Orchestration instance will resume from the last successful persistence point.

11 :: Do you know how to route binary data?

To route binary data you can use pass-through pipelines on the receive location and send port. BizTalk will route (copy) the data from the source (receive location) to the destination (send port). If you want to route the binary data based on some information in the binary data then you write a custom Disassembler to promote the properties you need from the incoming message to route the binary data.

12 :: Tell us what are the different types of transactions available for orchestration?

Unlike traditional programming, BizTalk Server supports two distinct types of transactions: atomic and long-running.

13 :: Tell me when is property "Synchronized=true" used?

When a variable is shared across the branches of parallel shape.

14 :: As you know xMLDocument is non-serializable still it's called without atomic scope with no error, why?

It is the only exception to the requirement of types for variables having to be serializable and treated as special case.

15 :: Do you know which language does expression shape support?

Expression shape allows for writing XLANG/S statements that provide C# -like coding capabilities.

17 :: Tell me how to load message in a variable?

It can be done using the LoadXml method. Say xmlDoc is a variable then following is done to load employee message.

xmlDoc.LoadXml("<Employee><first_name>Jhon</first_name><last_name>Smith</last_name></Employee>");

18 :: Tell me what is the maximum number of properties that can be used in correlation set?

The correlation set can have a maximum of three properties used for correlation on the receive shapes.

19 :: Do you know how are messages created in an orchestration?

You construct a message any time that you introduce a message into your orchestration, either by receiving it or by assigning values to a message variable. There are several ways to create a new instance of a message in an orchestration

20 :: Tell us to which scope compensation block can be added?

A scope configured as Atomic or Long running can have compensation blocks added, but scopes that are configured with no Transaction type cannot.

21 :: Explain me where is BTS.SPID and BTS.ReceivePortID used?

It is used in Specify Later port binding option. In this model the orchestration ports are bound to messaging ports using BTS.SPID,BTS.ReceivePortID or other related properties.

22 :: Do you know what are Scopes used for?

Scopes are used for following reasons:
☛ To configure transaction (long running and atomic)
☛ To handle exceptions
☛ To trigger compensating logic

23 :: Tell me does BizTalk support synchronous communication?

BizTalk Server architecture is asynchronous for scalability reasons. However, the architecture of the BizTalk Messaging Engine enables exposing a synchronous message exchange pattern on top of these asynchronous exchanges. To do this, the engine handles the complex task of correlating the request and response messages across a scaled-out architecture by linking together a number of asynchronous message exchanges to expose a synchronous interface.

24 :: Tell us is it possible to use IF Then Else logic inside the Message Assignment?

No, It is not possible to use the If Then Else Logic inside the message Assignment. It has to be used in the expression shape.

25 :: Tell me is it possible to get an exception object from General Exception?

No. General exception in BizTalk is similar to writing a Try-Catch block but without the exception object thus not possible to get the exception object.
Biztalk Orchestration Interview Questions and Answers
50 Biztalk Orchestration Interview Questions and Answers