1. Tell us where does XSLT come into the picture in BizTalk?

When a developer faces a complex mapping (problem) and to solve it requires a substantial amount of logic he/she can use custom XSLT.

2. Tell us can the filter be applied to the output from the xml file?

Yes. It can be done by adding a criterion to the select attribute in the <xsl:for-each> element.Filter operators which can be used are:
☛ =(equal)
☛ != (not equal)
☛ < less than
☛ > greater than

3. Tell me how does one enable subscriptions in BizTalk?

A filter on the Send Port is the first step to enable subscriptions in BizTalk.

4. Explain me what is the difference between a “Message Assignment” shape and an “Expression” shape?

A “Message Assignment” shape is used to create a new message and assign values to it. A Expression shape is used to assign values to variables and also write ‘if' conditions.

5. What is isolation level?

This property defines the degree of isolation between the state changes performed by different atomic transactions. This is not applicable for Long-Running transactions. BizTalk supports three isolation levels. These are ‘Read Committed', ‘Repeatable Read' and ‘Serializable'. The last one being the default value.

6. Tell us what are adapters? What do we need it?

Adapters can simply be termed as medium with which BizTalk communicates with other software, processes, and information together.

7. Do you know what is BAM?

Business Activity Monitoring (BAM) is a collection of tools that allow you to manage aggregations, alerts, and profiles to monitor relevant business metrics (called Key Performance Indicators, or KPIs). It gives you end-to-end visibility into your business processes, providing accurate information about the status and results of various operations, processes, and transactions so you can address problem areas and resolve issues within your business.

The BAM Framework provides an easy, real-time, transaction-consistent way to monitor heterogeneous business applications, and to present data for SQL queries and aggregated reports (OLAP). Through queries and aggregations, you can include not only the data that is present during the running business process, but also the state and the dynamics of the running business process, independent of how the business is automated.

8. Do you know what is XSLT?

XSLT or Extensible Stylesheet Language Transformations is a style sheet language for XML documents (stands for XSL Transformations), it defines the transformation rules of the messages.

9. Explain why do we need convoy?

When a group of correlated messages could potentially be received at the same time, a race condition could occur in which a correlation set in a particular orchestration instance must be initialized by one of the messages before the other messages can be correlated to that orchestration instance. To ensure that all of the correlated messages will be received by the same orchestration instance, BizTalk detects the potential for such a race condition and treats these messages as a convoy.

Convoy is a term which we use to describe a class of application protocols, specifically it is a set of application protocols which have a race condition as described above. Let's take an example. Say you are a hospital and want to have a service which handles all information about each patient. For a given patient you have three types of messages, an admittance message, status messages, and a discharge message.

If you look at your protocol, you will have built a service which just receives. Now let's think about what could happen. Let's say you send the patient admittance message and it goes through the system using maybe a synchronous protocol like HTTP. That means when you get the 202 back, you know the message has been delivered. But what if the BizTalkServer host which is actually supposed to process the message hasn't started yet (i.e. the NT service is stopped). Maybe you had a power outage, maybe some intern decided to “hit this button”, who knows.

So the orchestration instance which is supposed to handle all messages for patient X has not physically started. The message is in the database (MessageBox) and if you look in HAT you will see the orchestration is marked as ready to run, but it can't start cause there is nowhere for it to start.

10. Tell us does BizTalk automatically compensate an unsuccessful transaction?

☛ A Compensation section is generally written, in order to UNDO the effect of a transaction.
☛ The Compensation section for a scope gets activated only when the scope terminates normally or the scope completes its execution.
☛ Unlike exceptions, a compensation section can be written for a “Atomic” as well as a “L-R”
☛ A Compensation section needs to be explicitly invoked, using the Compensation Shape in order for it to execute.
☛ A Compensation section for a scope does NOT automatically undo the effect of a transaction. The compensation section must have the undo logic in place in order to have such an effect.
☛ A Compensation shape can be used to invoke/execute a compensation section. The control returns to the next operation after compensation shape, once the execution of the compensation section is complete.
☛ Is it possible to share variables across two branches in a Parallel shape
yes it is possible you just need to set the “Synchronized” property to true.

Download Interview PDF

11. Please explain what is BizTalk Pub-Sub architecture?

Fundamental to BizTalk is the Publish / Subscribe Architecture. This architecture basically comprises of 2 main components. First of all, a publisher, who would be responsible to publish the message in the message store. And secondly, a subscriber, who will subscribe to messages of a particular format so that he gets them whenever they are published.

Publishing refers to the process of inserting the messages in the message box database. Normally, a receive port, an orchestration or solicit send port would be involved in publishing any message to the message box. A receive port would receive the message from the pipeline and publish it to the message box for an orchestration or a send port to pick up.

An orchestration would publish the message usually while sending it using the send shape. A solicit response port would actually publish the message when it receives a response from the end system.

The subscribers would indicate the message they would like to receive by a set of criteria or filters.
Thereby, whenever a message is posted or published to the message box database, a subscriber will be able to get the message based on the filters or criteria mentioned while subscribing. The filters can be specified only on the promoted fields on the message.

12. Explain me what are the communication patterns available in BizTalk?

Each port type has a communication pattern. The communication pattern determines whether one-way or two-way (request-response) transmissions can take place on ports of the given type.

13. Tell us what is the purpose of the property “Activate” in a Receive shape?

It is used to invoke a new instance of an Orchestration.

14. Tell me are there different editions of BizTalk Server?

BizTalk Server 2002, 2004 2006 R2, 2009, 2010, 2013, 2013R2 and 2016.

15. Tell us is it possible to have custom functions?

Yes, it can be done in script blocks which can be done using <msxsl:script> element.

16. Tell us which version of XSLT is supported by the BizTalk mapper?

BizTalk Mapper supports XSLT 1.0. Using XSLT 2.0 in BizTalk Mapper is not supported

17. Tell us what is debatching in BizTalk?

Recently I end up in a scenario where I need to debatch a message inside the orchestration to produce multiple messages based on XPATH

18. Explain me what is Muenchian method?

The Muenchian Method is an algorithm for grouping of data used in XSL Transformations that identifies keys in the results and then queries all nodes with that key. It can be applied with custom XSLT within a BizTalk Map.

19. Please explain what is Message routing and Content routing?

When a message is passed through BizTalk without being processed then it is called Message Routing. When a message is passed based on certain field value of schema, it is called content routing.

20. Tell me where and how did you use Web Services in Orchestration?

We can use web services where we need to get data from multiple sources in one go. For e.g. getting price quote from 10 different vendors. You make one orchestration and use WS inside it.

21. Tell us is it possible to exclude xml declaration <?xml...?> in the ouptut file?

Yes. To exclude xml declaration, the attribute "omit-xml-declaration" is to be set as "yes."

22. Do you know what is Single Sign-On (SSO)?

Enterprise Single Sign-On (SSO) provides services to store and transmit encrypted user credentials across local and network boundaries, including domain boundaries. SSO stores the credentials in the SSO database. Because SSO provides a generic single sign-on solution, middleware applications and custom adapters can leverage SSO to securely store and transmit user credentials across the environment. End users do not have to remember different credentials for different applications.

23. Tell me is it possible to use the method from an assembly available in GAC?

It can be done using <msxsl:assembly> element and it has to be child of <msxsl:script>element.

24. What is retry?

A boolean value which specifies that the atomic transaction can be retried in the event of a failure. Perform the following for Retry-”throw an instance of Microsoft.XLANGs.BaseTypes.RetryTransactionException” within the transaction boundary.

Download Interview PDF

25. Tell me can I use Custom XSLT inside a BizTalk mapper?

Yes, by making use of the scripting functoid.