Mastering The BizTalk Technical Interview
Wisdom is learning all we can, but having the humility to realize that we do not know it all. Mastering the BizTalk Technical Interview 200 BizTalk Technical questions with clear and concise answers will help you gain more wisdom in BizTalk Interviews. The difference between a great BizTalk developer and someone who kind of knows some stuff is how you answer the BizTalk Interview questions in a way that will show how knowledgeable you are. The 200 questions I have assembled are for: job seekers (junior/senior developers, architects, team/technical leads), and interviewers. BizTalk Technical Interview Questions covers BizTalk versions 2002, 2004, 2006, 2006R and 2006 RFID. The questions cover the following areas:
- Basic Questions.
- General Questions.
- Schema Design Questions.
- Pipelines and Pipeline components Questions.
- Maps Questions.
- Messaging Questions.
- Adapters and Accelerators Questions.
- Orchestrations Questions.
- Rules Engine Questions.
- BAM and BAS Questions.
- Deployment and Installation Questions.
Learn the fundamentals relating to BizTalk and Enterprise Application Integration in an easy to understand questions and answers approach. It covers 200 realistic interview Questions with answers that will impress your interviewer. A quick reference guide, a refresher and a roadmap covering a wide range of BizTalk and EAI related topics and interview tips.
I have collected the following 200 questions through interviews I have conducted and interviews that I was the applicant. I also collected them from the online user groups and other websites. I have prepared the answers and reviewed them as best as I can. If you happen to fall on a question that I did not include here or you want to discuss any of the answers that I have provided please email me at Moustafa@MoustafaRefaat.com.
2. What Is a BizTalk Application?
A BizTalk application is a logical grouping of the items, called "artifacts," used in a BizTalk Server business solution. Artifacts include the following:
- BizTalk assemblies and the BizTalk-specific resources that they contain –orchestrations, pipelines, schemas, and maps
- .NET assemblies that do not contain BizTalk-specific resources
- Send ports, send
- port groups, receive locations, and receive ports
- Other items that are used by the solution, such as certificates, COM components, and scripts
7. What is the lifecycle of a Message in BizTalk server?
A message is received through a receive location defined in a given receive port. This message is processed by the pipeline associated with the receive location, and if there are any inbound maps associated with the receive port they are executed. The resulting message is then published to the MessageBox database. The MessageBox evaluates active subscriptions and routes the message to those orchestrations, and send ports with matching subscriptions. Orchestrations may process the message and publish messages through the MessageBox to a send port where it is pushed out to its final destination.
17. 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.
42. Can an envelope schema consist of more than one schema type?
Yes. XML envelopes serve two purposes within XML instance messages sent and received by Microsoft BizTalk Server:
- XML envelopes can contain data that supplements the data within the XMLdocuments. This data can be promoted into the message context by the XML disassembler to provide easier access from a variety of BizTalk Server components. For outbound XML instance messages, the XML assembler can demote values from the message context into an envelope for inclusion in the instance message transmission.
- XML envelopes can be used to combine multiple XML documents into a single, valid XML instance message. Without an envelope to wrap multiple documents within a single root tag, an XML instance message containing multiple documentswould not qualify as well-formed XML.
56. What are the execution modes in a pipeline Stage?
A stage in a pipeline has an execution mode of either “All” or “First Match”, which controls the components that get executed if more than one component is added to a stage.
- For stages with a mode of “All”, each component is called to process the message in the order in which they are configured in the stage.
- For stages with a mode of “First Match”, each component is polled to indicate that it is the right component until a match is found, at which point the component that matches is executed, while the remaining components do not get executed.
71. Which Interfaces do you need to implement in a disassembling custom pipeline component?
A disassembling pipeline component receives one message on input and produces zero or more messages on output. Disassembling components are used to split interchanges of messages into individual documents. Disassembler components must implement the following interfaces:
91. What is a link in a Map?
A link specifies the basic function of copying data from an element or attribute in an input instance message to an element or attribute in an output instance. You create links between records and fields in the source and destination schemas at design time. This drives the creation, at run time, of an output instance message conforming to the destination schema from an input instance message conforming to the source schema.
108. 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.