What is BizTalk?
Biz Talk is a Business Process Management server from Microsoft. It is a message based integration tool. Biz Talk enables large enterprises to automate and integrate the business processes. This process is done by using adapters those are tailored for communicating among various software systems in an enterprise. It provides functions like Business Process Modeling, Business-to-Business communication, Message broker, EAI, Process automation. Biz Talk enables enterprises for integrating and managing business processes by exchanging various documents such as PO (Purchase Order), Invoices within and across boundaries of enterprises. MS Visual Studio supports development for Biz Talk server.
What is the difference between a Document Schema and a Property Schema?
A document schema is used to define a message. It is a definition on an Xml message with optional extensions for flat files, EDI file, etc that enable the parsers to convert the native format into Xml.
A property schema is used to define message context properties. These can be of type MessageDataPropertyBase (the property value is promoted or demoted from/to the message itself) or MessageContextPropertyBase(property value only exists within the message context and can be set by adapters, pipelines or within orchestrations).
If you wish to promote a field from a message into the message context, then you need to define a document schema and property schema. In the document schema, you promote the required field using the property schema to define the property type that will be used in the message context.
What is the difference between a Distinguished field and a Promoted Property?
Distinguished fields are light weight and can only be used inside an Orchestration.
Promoted Properties are defined inside a property schema, are tracking in SQL, can be tracked in HAT, and can be used for content based routing.
What is Property Promotion and why is it required?
Biztalk provides you with a really smart routing feature that allows the engine to decide where to send which message. For example, If you receive a message with the EmployeePaySlip schema, and it has the approved flag to true, it should be redirected to the Finance system Orchestration for making the payments and to the HR system Orchestration for keeping the records. This built in intelligence for the Biztalk engine allows it to route the messages simply based on some content within the messages.
To achieve this, the Biztalk engine obviously needs to understand the fields based on which the routing decisions can be taken. To simplify and optimize this working, Biztalk has introduced the notion of “promoted properties”. The Biztalk engine can get easy access to the promoted properties without knowing the entire message and hence it can save loads of time and complexity when dealing with routing. To route a message, the Biztalk engine simply reads its promoted properties and does not care about other contents in the message.
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.
What is the difference between static, dynamic and direct binding?
Static binding specifies port address,
Dynamic gives address of the port at runtime,
Direct binding sends messages to messagebox.
What is atomic Transaction?
It follows full ACID properties Atomicity, Consistency, Isolation and Durability. If you require full ACID properties on the data—for example, when the data must be isolated from other transactions—you must use atomic transactions exclusively.
When an atomic transaction fails, all states are reset as if the orchestration instance never entered the scope.
What is long running transaction?
Long running transaction support CD properties of ACID. It is not practical to lock transaction for a long time. This transaction can run indefinitely and can be dehydrated also.
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.
What is meant by Virtual Directory? Why do we use?
The publishing wizard publishes service at IIS (isolated host) in the virtual directory (the directory at which schema reference is given and config file for this). this is also called as service end where we receive messages.
What is correlation?
An Orchestration can have more than one instance running simultaneously. Even though each of those multiple instances perform the same action, it does it on different data contained within a message. Correlation is a process of associating an incoming message with the appropriate instance of an orchestration.
For Example: If your orchestration issues a purchase order, receives an invoice, and sends a payment, the developer must make certain that the invoice message is received by the orchestration instance which corresponds to the orchestration that sent the Purchase Order. Without correlation, it would be possible to send out an invoice for thousands of items even though the purchase order is for one.
What is Dehydration?
When an orchestration has been idle for a while, the orchestration engine will save the state information of the instance and free up memory resources.
What is Rehydration?
When a message is received, or else when a timeout has expired, the orchestration engine can be automatically triggered to rehydrate the instance – it is at this point that the orchestration engine loads the saved instance of the orchestration into memory, restores the state, and runs its from the point it left off.
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.
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:
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.
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.
How do you call a Non-Serializable .Net helper class inside an Expression Shape?
Add a reference to that class.
Make sure your Orchestration is Long Running transactional.
Add an Atomic scope.
Create an Orchestration variable of that class inside the scope.
Create an instance on that object inside the scope.
Call the method.
Bonus: Mention the class must be strongly signed and in the GAC.
How do you achieve First-In-First-Out message processing of messages received from multiple sources using an Orchestration?
Use a Sequential Convoy to process the messages in the order they are received into the Message Box.
Make sure Ordered Delivery is set to True inside the Orchestration Receive Port.
When working with Schemas, Maps, Pipelines, and Orchestrations, how should the projects be structured?
Schemas and Maps in its own project
Or Schemas and Maps together in its own project
Orchestrations in its own project
Pipelines in it own project
What are Persistence Points and what causes them?
Persistence is when the state of a running Orchestration is stored into SQL.
It is good enough to know various shape and actions cause persistence. More specifically, it occurs: end of a transactional scope, at a send shape, at a start Orchestration shape, during dehydration, if the system shuts down expectedly or unexpectedly, or the business process suspends or ends.
What group does a user need to belong to in order to submit messages to the message box?
The user needs to be a member of the hot group or isolated host group (assuming a default installation).
What user rights do you need to perform most actions in HAT?
BizTalk Server Administrator
When installing Biztalk in a multi-server configuration with a remote SQL and Analysis Services, what SQL components do you need on the Biztalk Server?
SQL Analysis Services Client Tools
Can an Envelope schema consist of more than one schema type?
Yes. Technically it is possible.
Can a flat file message be processed without a pipeline?
A Pipeline’s job is to convert any external format into XML, be it a flat file or EDI or anything else.
Can multiple messages be processed or batched without an envelope schema?
It is possible to process multiple messages, without an envelope.
What is property promotion, why is it required?
When a property is Promoted, it is exposed to the orchestration/send port filters etc.
In which scenarios, would use a “promoted property” vs “distinguished fields”?
The rule here is, if you dont want the schema element to appear in send port filters/debugging information then make it a distinguished field.
What are un-typed messages, how does one create them?
A message created in BizTalk Orchestration is bound to a schema, this is a typed message. In un-typed messages, the message is bound to System.Xml.XmlDocument instead of a schema.
How does one enable subscriptions in BizTalk?
A filter on the Send Port is the first step to enable subscriptions in BizTalk.
What is the difference between a delay shape vs a listen shape?
A ‘Delay’ is very much like a sleep on the current thread. A ‘Listen’ shape is used to wait for an incoming resource, with a timeout period.
When you use Call Orchestration shape vs Start Orchestration shape?
A Call Orchestration returns the control back to the caller. A Start Ochestration shape starts the orchestration in a non-deterministic way.
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.
Does BizTalk Orchestrations support recursion?
An Orchestration does NOT support recursion.
What is the purpose of the property “Activate” in a Receive shape?
It is used to invoke a new instance of an Orchestration.
Can an orchestration Start without an Activatable receive?
A Nested Orchestration can be started without an Activatable receive
Is it necessary for all .NET components being called from an Orchestration be Serializable?
Yes, it is necessary. There are cases where a .NET component need not be Serializable.
When do we need set the property “Synchronized” = true for a scope?
This needs to be set, when a variable is shared across the branches of a parallel shape.
How does one enable Correlations in BizTalk?
First create a Correlation type and then create an instance of it.
In an Orchestration design, Orchestration “A” calls another Orchestration “B”, and vice versa. Is it possible to implement this design?
It is NOT possible, since it forms a cyclic dependency.