Search This Blog

Sunday, January 25, 2015

BizTalk Developer Interview Questions and Answers - ( Schema,Map ,Orchestration ,BizTalk Application ,BAM ,Pipeline ,Visual Studio ,BRE ,XSLT ,Helper Class ,Adapter ,Functoid ,EDI ,HL7 ,ESB Toolkit ,BizTalk Database )

BizTalk Developer Interview Questions and Answers : Schema
1.  What is the purpose of a document schema?
The schema is basically a contract of your message and defines it. The XML Schema definition (XSD) language defines the structure of an XML instance message, and this is the intended purpose of XSD, such schemas use XSD in a straightforward way.

A schema is a term borrowed from the database world to describe the structure of data in relational tables. In the context of XML, a schema describes a model for a whole class of documents. See MSDN 
Different Types of BizTalk Schemas .
2.       What is the purpose of a property schema?
Property schema is a special type of schema, not created to describe messages. Instead it describes context properties. It consists of only child node under a root node. See MSDN 
Different Types of BizTalk Schemas .
3.       What is the purpose of an envelope schema?
An envelope schema is a special type of XML schema. Envelope schemas are used to define the structure of XML envelopes, which are used to wrap one or more XML business documents into a single XML instance message. When you define an XML schema to be an envelope schema, a couple of additional property settings are required, depending on such factors as whether there is more than one root record defined in the envelope schema. See MSDN 
Different Types of BizTalk Schemas .
4.       What is the purpose of a Flat File schema?
A flat file schema defines the structure of a class of instance messages that use a flat file format, either delimited or positional or some combination thereof. Because the native semantic capabilities of XSD do not accommodate all of the requirements for defining the structure of flat file instance messages—such as the various types of delimiters that might be used for different records and fields within the flat file. BizTalk Server uses the annotation capabilities of XSD to store this extra information within an XSD schema. BizTalk Server defines a rich set of specific annotation tags that can be used to store all of the required additional information. See MSDN 
Different Types of BizTalk Schemas .
5.       What is the target namespace for schema?
Target Namespace is to schema what a namespace is to .Net Object and root node as a class name.
6.       Is it possible to create a custom data type and use it in a schema?Yes, it's possible to create custom data types and it can be used across the schema. See Can We Have Custom Data Type.
7.       Can schema have two nodes with the same name and different datatypes?
Yes, as long as they are not in the same scope.
8.       Can schema have multiple root nodes?
Yes, a schema (XSD) can have multiple root nodes. In case you have a schema with multiple root nodes you will end up with multiple message types declared in BizTalk, one for every root node. So when you want to create a message you will need to specify exactly which message type you are going to use!
9.       Is it possible to include and import in a single schema?
Yes, it is possible, both are the ways to utilize already existing schema. The only condition is the schema which is included should have same TargetNamespace or no namespace.
10.    By default, what is the data type of elements in a schema?
11.    What is the difference between Group Max occurs, Group Min Occurs and Max occurs, Min Occurs?
These are all node properties. See MSDN 
Node Properties .
Group Max Occurs: Specifies the maximum number of times that to the underlying group content of the selected All Group node can occur.
Group Min Occurs: Specifies the minimum number of times that the underlying group content of the selected All Group node can occur.
Max Occurs: Specifies the maximum number of times that the element corresponding to the selected Record node can occur.
Min Occurs:  Specifies the minimum number of times that the element corresponding to the selected Record node can occur.
12.    What is BlockDefault property used for?
Use the BlockDefault property to prevent or restrict the types of derivations that can be used in instance messages for all data types defined by the schema being edited. See MSDN BlockDefault (Node Property of All Schemas) .
13.    What is a canonical schema?
A canonical schema is a design pattern, which is applied within a service oriented paradigm, and within BizTalk server context establish the loose coupling between systems. Through performing the transformation of messages from one system to canonical schema and from the canonical schema to message of another system, systems have no direct relation with each other. The canonical schema can also be viewed as an internal schema in BizTalk and aid you in structuring your solution through best practice of creating separate projects for maps, orchestrations, internal and external schemas. Another advantage of using a canonical schema is that it reduces the number of transformations you need. If you need a to map a few types of inbound message coming from different parties to a few outbound messages, you can create a map to your canonical schema for each inbound schema and then a map from your canonical schema to each outbound schema. If for example you have three types of incoming that needs to be mapped to three types of outgoing messages you will only need to build and maintain six maps instead of nine.
14.    What is the correlation property schema?
Correlation types define a set of properties on which you will be correlating messages. These can be any properties which were previously defined in a property schema (see question 2) and deployed with some BizTalk Project including "system" properties deployed with the GlobalPropertySchemas  which is installed as part of the base BizTalk install. A correlation set defines a set of properties and values for these properties that a message must contain to be processed by a particular orchestration. See MSDN 
Correlation Sets .
15.    Difference between Flat File Schema and XML schema?
A flat file schema defines the structure of a class of instance messages that use a flat file format, either delimited or positional or some combination thereof. Because the native semantic capabilities of XSD do not accommodate all of the requirements for defining the structure of flat file instance messages—such as the various types of delimiters that might be used for different records and fields within the flat file—BizTalk Server uses the annotation capabilities of XSD to store this extra information within an XSD schema. BizTalk Server defines a rich set of specific annotation tags that can be used to store all of the required additional information. See MSDN 
Different Types of BizTalk Schemas .

An XML Schema is basically a contract of your message and defines it. The XML Schema definition (XSD) language defines the structure of an XML instance message, and this is the intended purpose of XSD, such schemas use XSD in a straightforward way. See MSDN 
Different Types of BizTalk Schemas .
16.    Can we have schema without a target namespace? What will be its MessageType?
Yes, we can have a schema without target namespace and it's message type will be the Root node.
17.    Which property is only available for the flat file schema?
Custom Date/time property is only available for flat file schema.
18.    What is the Message?
Each message in BizTalk Server is considered a multi-part message and is made up of zero or more parts. Each message with one or more parts has one of these parts identified as the body part. Each part consists of a binary chunk of data which can represent an XML document, a flat file, a serialized .NET class, or other binary stream of data. You use the body part of the message to identify the type of the message that can be used for routing. See MSDN 
The BizTalk Server Message .
19.    What is the difference between BizTalk (Schema) Editor and BizTalk Schema Generator?
BizTalk Editor resides within the Microsoft Visual Studio shell. Some of the functionality within BizTalk Editor relies upon existing user interface elements within the Visual Studio shell. See 
Using BizTalk Editor .

BizTalk can automatically create the schema from DTD, well formed XML, XDR. To do this schema generator is used.
20.    How is schema generator invoked?
Right click the project in Solution Explorer and select Add Generated Items --> Generate Schemas.
21.    What is InstallWFX.vbs script?
It is a script which when run installs the BizTalk Schema Generator. It is used when generating schema from existing items. It's likely to get error first time or after updates "WFX to XSD Schema generation module is not installed". Then this script can be used to install the schema generator.
22.    Can "EDI" be a part of Namespace?
It can be but it should be avoided in the projects that uses BizTalk EDI engine as during run time there can be conflicts with this and expected results might not be seen.
23.    Is it possible to promote XML record of ComplexContent ?
No. To promote XML record its ContentType property should be set SimpleContent.
24.    What is the maximum length allowed for promoted properties?
255 characters
25.    What is the maximum length allowed for Distinguished fields?
It can be of any length, no limits.
26.    How to create an XPath alias  to a field which can be used in decision making in Orchestration?
Distinguished field  is a XPath alias to the field.To create it , right click the element-->Promote-->Show promotion-->Add
27.    What is <Any> element?
An <Any> element in a schema designates a specific location in the schema where new elements or attributes can be added. When BizTalk uses the schema to process a message containing unknown elements or attributes in the designated location, the schema will still consider the message valid.
28.    What is the Root Node?
It's a node within a BizTalk Server schema that represents the outermost XML element in the business document specified by the schema.
29.    How BizTalk engine identifies a unique schema?
BizTalk uses a combination of namespace#rootnode to define the schema type of a message, thereby making a MessageType unique (for example: In other words, BizTalk uses this combination to identify and resolve schemas references.
30.    How BizTalk engine performs a validation of an instance of the message against the Schema?
By default, BizTalk Server will examine only the namespace and the root node name of a message to identify and validate the schema, and will not detect extra elements in the message body. To perform a deep validation of a message format, you have to create a Custom Pipeline with the XML Disassembler component. See more
here .
31.    What are encoding options available used by BizTalk when creating schema?
There are various options but BizTalk always uses UTF-16 encoding for their schemas. See
32.    Does BizTalk add any namespaces when creating schema?
Yes.     and    are added by BizTalk when creating a schema. See more.
33.    How is schema namespace added by BizTalk when creating schema?
By default, the BizTalk Editor will set the namespace of a schema to http://ProjectName.SchemaName. 
34.    What is the difference between XSD and DTD? Difference between XSD and DTD are listed below:
o    XSD are written in XML.
o    XSD  support data types.
o    XSD  support namespaces.
o    XSD is extensible to future additions.
o    XSD is richer and more powerful than DTDs.

BizTalk Developer Interview Questions and Answers – Map:
1.       What are maps?
Maps are graphical representations of XSLT (Extensible Stylesheet Language Transformation) documents that allow us to perform, in a simple and visual manner, transformations between XML messages. A map file basically is the XML file that defines the correspondence between the records and fields in one schema and the records and fields in another schema. You create a map when you want to transform or translate data that you receive or send from one schema to another. See more
2.       Can we have map without any links on it?
Yes. But to do so custom XSLT is to be provided to the map.
3.       How do we provide/include custom XSLT in the map?
Click on the map grid and in properties tab specify the location where custom XSLT is stored against the property "Custom XSLT path".
4.       Is it possible to have a global variable in a map?
Yes. Choosing inline code allows us to declare global variables outside the method declaration. These are accessible throughout the map from within all inline code scripting functoids.
5.       What are the places map can be used?
Receive Port, Orchestration, Send Port
6.       Can we have map chaining on ports?
Not on the same port, only the first that matches the received message type will execute.  You can have a map execute on a Receive Port and then have another map execute on the Send Port (or have multiple maps in an Orchestration, or use the
ESB Toolkit to achieve this.
7.       What is limit of maps on ports?
There is no limit.
8.       Is it possible to generate XSLT from the map?
Yes, right click the map and select Validate Map. The output window will include "The output XSLT is stored in the following file:" and the location of the XSLT file.
9.       Is it possible to use untyped message in the map?
10.    Is it possible to create map for a schema with unknown structure?
Yes its possible. It can be done by including the <Any> element in the map.
11.    Where are transformations more flexible?
Transformations are more flexible and fast when they are executed from a send or receive port. We can replace map on the ports without any development effort. But if we replace map in orchestration we have to recompile and redeploy the orchestration assembly.
12.    Is it possible to override the mapping of Mass copy?
It can be done on line by line basis. Example a field need to be passed a current date, then have the Date functoid placed a link to destination field this will override mass copy. 
13.    Is there limit on number of pages on Map grid?
There is no limit, it depends on the requirement and complexity of the map.
14.    Why should pages to be added to Map Grid  if all can be done on a single page?
Multiple pages enable you to organize your links so that any one page does not become too cluttered and confusing.It is also very helpful to label the pages and the links.
15.    Is there a way to add custom logic required in a Map?
Yes it's possible and it can be done with the help of Scripting functoids or creating the custom functoids.
16.    Can value from Orchestration variable be passed to the destination field in the Map?
Yes it can be done, by creating a new schema which will contain fields for capturing values from Orchestration variable and with the help of LoadXml  to load the values. This schema can be used along with an other source schema and mapping can be done. The variable also can be passed inside the Assign shop in an expression.
17.    Is it possible to have map with n incoming messages to n outgoing messages?
Yes, but only inside Orchestrations! This type of maps must be created using the Transform shape within an Orchestration. Orchestration Editor creates an envelope schema which includes all nested message schemas.
18.    Is it possible to have map with n incoming messages to 1 outgoing messages?
Yes. And the only place that map can be created with multiple schemas is in a Transform shape within an Orchestration.
19.    Is it possible to have map with 1 incoming message to n outgoing messages?
Yes, but only inside Orchestrations! This type of maps must be created using the Transform shape within an Orchestration.
20.    Can the graphic map representation and external XSLT be used in single map?
No. As everything which we see in Map grid (links, functoids) are overwritten when external XSLT is used.
21.    Can we debug Map just like .Net code?
Yes. Right click the map to debug and select "Debug Map".
22.    What is a .btm File?
.btm is a BizTalk Server map file.
23.    What is the BizTalk Mapper Designer and where I can find it?It is a tool that runs within the Microsoft Visual Studio .NET environment after you install BizTalk Server. We use the Mapper to create and edit maps.
24.    What kind of transformation can we accomplish using maps? [Controversial]
Using maps he can accomplish Semantic Transformations. This type of transformation usually occurs only in BizTalk maps but also can be performed inside pipelines. Here the document maintains the same syntax that is represented (XML), but changes its semantics (data content). This type of transformation is typically one-way, since that's when we added and aggregate small parts of the information, that compose the document into another differently document, we may miss important details of its reconstruction.
25.    What are grid pages and how many can we have?
The mapper grid plays a critical role in the definition of maps, containing the links and functoids that control how data in a source instance message is transformed into an instance message that conforms to the destination schema.
The grid view can have multiple layers, called grid pages, allowing you to organize complex maps into logical subdivisions of mappings. BizTalk 2010 no longer has the limitation of 20 grid pages that exist in the previous versions of the product.
26.    Is it possible to link the output of a functoid placed on the right side of the map grid with a functoid placed on the left side of the map grid? No it is not possible as grid follows left to right precedence. An output link of the first functoid has to be placed into an input of the second functoid.
BizTalk Developer Interview Questions and Answers – Orchestration:
1.  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 (see MSDN 
Constructing Messages ). There are several ways to create a new instance of a message in an orchestration, see Michael Stephenson blog post Message Construction in an Orchestration .
2.  Where is information about promoted properties stored?
The information about the promoted properties is extracted and stored in the bts_DocumentSpec table in the Management database.
3.  What is message metadata?
The message metadata is called Context Properties and on receiving the message, both the adapter and the pipeline will add information to the context.
4.  Can we use message metadata in Orchestration?
5.  How does Orchestration subscribes to messages?
In Orchestration, the first Receive shape is responsible for creating a subscription. Following two properties are involved in it,
o  Message : This tells what message this Orchestration is subscribing to
o  Activate : This tells to consume the message when found in a MessageBox

6.  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. See TechNet Wiki articles 
BizTalk Server 2010: Orchestration Patterns and BizTalk: Enterprise Integration Patterns.
7.  Types of messages?
Two types of message
o  Typed message : A message created in Orchestration is bound to the schema
o  Untyped message : A message is bound to System.Xml.XmlDocument instead of the schema.

8.  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.

9.  Can recursion be achieved in Orchestration?
10.    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.
11.    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.
12.    Is it necessary for all .Net components being called from orchestration to be serializable?
Yes it is necessary (good practice) for all .Net components being called to be serializable. If not then Atomic scope is to be used which has its own limits.
13.    Is it possible : Orchestration A calls another Orchestration B and vice versa?
No it is not, since it forms cyclic dependency.
14.    What is XLANG and where it is used?
XLANG/s can be viewed as a messaging language with some of the expression capabilities of C#. However, code is not portable between XLANG/s and C#. The language is used for orchestrations. XLANG/s statements generally fall into one of two categories: simple statements that act on their own, such as receive or send, and complex statements that contain or group either simple statements or other complex statements, such as scope, parallel, and listen. The semantics embodied in XLANG/s are a reflection of those defined in the Business Process Execution Language for Web Services (BPEL4WS) specification published by Microsoft, IBM, and BEA for the definition of business process semantics. See MSDN
XLANG/s Language .
15.    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.
16.    What is persistence point?
At various points within a running orchestration the state can persist. See MSDN 
Persistence and the Orchestration Engine .
17.    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. See more here
18.    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.    Can an Atomic scope can have an exception handler of their own?
No, it can only have a Compensation Block.
20.    Pro's and Con's of Direct binding?
1.       Loose coupling  
2.       Not bounded to any physical port (explicitly)
3.       Can lead to subscribing to messages published by another publisher

21.    Can orchestration use components other than listed in Toolbox?
Yes. It is possible to use components like pipeline, business rule policy, .net component etc.
22.    When is convoy used?
The convoy is used to receive multiple messages in sequence or parallel to achieve a goal/result.
23.    Is it possible to enforce Orchestration to behave in singleton way?
Yes it is possible with the help of correlation.
24.    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.
25.    When is property "Synchronized=true" used?
When a variable is shared across the branches of parallel shape.
26.    What is the maximum number of branches that can be used in a parallel shape?
There are no limitations on the number of branches which can be used in a parallel shape.
27.    Which language does expression shape support?
Expression shape allows for writing XLANG/S statements that provide C# -like coding capabilities.
28.    What is relation between Orchestration instance and correlation?
Correlation is the process of matching an incoming message with the appropriate instance of an Orchestration. 
29.    What are the ways to add properties in context?
Promoting a node to a property field means to make a node value available in the context of the message. Adapters and pipeline components write in the context.
30.    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.
31.    What is correlation type?
A correlation type is a list of properties that eventually populates with values for use in routing messages.
32.    What are conditional persistence points?
The Receive shape, Listen Branch and Delay shape are conditional persistence points.
33.    What are Scopes used for?
Scopes are used for following reasons:
0.       To configure transaction (long running and atomic)
1.       To handle exceptions
2.       To trigger compensating logic

34.    Which shapes are used to implement "AND" and "OR" situation in Orchestration?Parallel Action shape is used for a AND situation whereas Listen shape is used for OR situation.
35.    Which scope can have an Exception Handling?A scope configured with the transaction type of None or Long running  can have exception handling added but not Atomic scope.
36.    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.

37.    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. See more
here .
38.    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.  See more
here .
39.    When a persistence point occurs at the Orchestration level?
The engine will save the state of an orchestration in the following circumstances:
o  Send Shape (after a message is sent)
o  Start Orchestration Shape
o  Suspend Shape
o  End of a Transactional Scope (atomic or long-running)
o  An Orchestration Debugger breakpoint is hit
o  Orchestration Engine determines that the instance needs to be dehydrated
o  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.
See more here .
40.    Can persistence point occur in the Delay or Receive shape?
Yes, but only if the Orchestration Engine determines that the instance needs to be dehydrated.
41.    Is it possible to use Message Assignment shape and Transform shape individually? No, it is not possible, Transform and Message assignment shape must run under construct shape.

BizTalk Developer Interview Questions and Answers - BizTalk Application:
1. What is MessageBox?
·    MessageBox is a SQL server database along with messaging agent. See MSDN MessageBox .
2. What is the purpose of MessageBox?
·    Store all messages and context received.
·    Stores all subscriptions.
·    Stores all Host Queues.
3. What happens to the messages coming into MessageBox?
·    Checking the subscription table is the First thing when messages come in MessageBox and a copy of the message is sent to the subscriber.
4. How does MessageBox treats messages without subscriber?
·    The message is suspended when there are no subscribers found for it.
5. How many receive locations can a single receive port have?
·    Receive port can have any number of receive location.
6. Types of subscription in BizTalk?
·    Two types of subscription 
1. Activation
2. Instance

Instance subscriptions are removed from the message box while Activation subscriptions remain active as long as the orchestration or send port is enlisted.

7. Is it possible to have various ports with the same name in two applications?
·    No. The names of the various ports must be unique, not just inside an Application but for the whole BizTalk group.
8. In which state can a send port does not subscribe to a message?
·    In Unlisted state send port does not subscribe to any messages and no messages will be sent through the port.
9. What could be the reason for having multiple receive locations inside one Receive port?
·    The reason for having multiple receive locations inside one Receive port is to have the ability to receive different messages from different locations and having BizTalk treat them as if they were received from the same place and/or had the same message type.
10. How can we check what's going on inside BizTalk Server?
·    The group hub gives the user an overview of what is currently going on inside BizTalk.
11. Can a send group be a part of multiple send group?
·    No only static send ports can be part of send group.
12. Ordered delivery on send port has serious performance impact, why?
·    Because only one thread can submit messages through the port and each message has to wait for messages through the port and each message has to wait for the message before it can be processed.
13. Ordered delivery does not have an effect even after it is set, when this might happen?
·    When back up transport is also applied.
14. Can a message in a MessageBox be changed?
·    Messages in BizTalk are immutable after constructed and the message is considered constructed after it is placed into the MessageBoxDatabase.
15. What happens when we run MSI package?
·    When we run MSI packages, it will register the application with Windows Operating System and then load any related assemblies in the Global Assembly Cache.
16. In how many ways can we do the BizTalk Application deployment?
·    BizTalk Application deployment can be done using the following:
1.  Deploying from Visual Studio
2.  Building a Microsoft Installer (MSI) package that can be exported or imported between environments.
3.  Using command line-based tools such as MSBuild and BtsTask.
4.  Using community frameworks, such as BizTalk Deployment Framework and NANT.
17. How it's possible to work with several pipelines as soon as new Application is created?
·    BizTalk.System is already referenced in all new applications, as a result of this we can work with several pipelines as soon as a new application is created.
18. What happens to message when all subscribers have received their message?
·    BizTalk will no longer need to hold on the message and the message will be removed from BizTalk.
19. What can be done to avoid loss of messages in a scenario where we know beforehand unavailability of the destination system, but source system is publishing messages?
·    In this scenario we can stop the send port bound to the destination system. This way the messages will lie in a queue inside Messagebox. Subsequently, we can start the send port when the destination system is available.
20. When do Error Report properties get promoted?
·    When Failed message routing is enabled and if an error occurs at the port, then the message will have all the regular context properties unprompted and instead have some error-specific context properties promoted - all in the ErrorReport Namespace e.g. ErrorReport.ErrorType, ErrorReport.ReceivePortName etc.
21. Which is the first step to enable Subscription?
·    A filter on the send port is the first step to enable subscriptions in BizTalk.
22. Can Application be in start state when host is Offline?
·    Yes. But this application will not function properly.
23. When don't filters on send port apply?
·    If a send port is directly bound to an orchestration port,then filters do not apply.
24. How to apply maps on send port group?
·    Maps can't be applied to Send Port Group.

BizTalk Developer Interview Questions and Answers - Business Activity Monitoring:
  1. What is BAM and whats the benefits of using it?
    Business Activity Monitoring (BAM) is used to monitor business milestones and key metrics in near real-time throughout a process in BizTalk. Business Activity Monitoring (BAM) is a module in BizTalk that captures business data and process milestones to allows business decision makers to gain insight of their in-flight processes.  Using BI tools to derive up-to-date metrics and key performance indicators from the BAM databases, users can forecast process trends and monitor processes in real-time. BAM also provides a mechanism to alert users to situations that require their intervention to prevent undesirable outcome or to encourage a beneficial result.
  2. Is it possible to integrate BAM installed on server1 and BizTalk installed on server2?
    Yes its possible with a condition that BAM server has to be part of the BizTalk group. See more
  3. What is the difference between TrackingProfile DB and DTADB?
     Both are same and terminology is used interchangeably.
  4. What is an Activity and an Alert?

    BAM Activities identify the milestones and tracking data an individual is interested in tracking. Milestones are the steps in an activity that are measured in time, and tracking data are the key data points in a process you are interested in tracking (such as a customer ID or name).

    BAM alerts allow you to configure and receive alerts related to specific changes in business data. Alerts are set up per BAM view.
  5. What is ContinuationID?

    Continuation is the ability to contribute to a single BAM activity from different applications by using two different unique identifiers as the ActivityID. For example, in one part of a business process, a customer’s PO number might be used to track an activity. In another part of the process, an internal order fulfillment number might be used to track the same activity. You could enable continuation and relate the PO number and the order fulfillment number, so that both parts of the process could add information to the same activity.
  6. What is TDDS?
    Tracking Data Decode Service or TDDS, is a service that moves event data from the MessageBox database to the BAM Primary Import database. This service processes and persists both Business intelligence and BizTalk Health Monitoring data.
  7. What are the various types of BAM Interceptors available?

    The BAM Interceptor is an object that lets you instrument your application to capture data of interest. See more
    here .
a.        BAM WCF interceptor: BAM can capture data from SOAP envelope in a WCF request, response or fault message. The data is specified using interceptor configuration (IC) file (XML file created by developer). The service’s app.config must be modified to load the BAM components at runtime.
b.       BAM WF interceptor: like WCF Services, BAM can also capture milestones from WF Activities. Am IC file is used to specify the data that must be captured. BAM components must also be loaded at runtime.
  1. What is Activity Relationship ?
    An activity relationship exists when an activity relates to one or more other activities. An example of this is having multiple Shipment activities related to a single Purchase Order activity, or one Shipment activity containing items from two Purchase Order activities.

    To indicate that two activities are related, you need to know both names and have the corresponding ActivityIDs in memory in order to call AddRelatedActivity. This API creates the link between the corresponding activity records. See more
    here .
  2. What is a BAM View?
    A BAM view is a representation of the milestones and business data tracked in one or more activities on the BAM Portal.
  3. Can we have multiple views created on single Activity?

    Yes it’s possible to have multiple views on single Activity.
  4. Where BAM collects raw tracking data?
    BAM collects raw tracking data from the BAMPrimaryImport (BAM Primary Import) Database.
  5. Is BAM Tools a prerequisite for EDI/AS2 Runtime in BizTalk Server 2010?
    That depends on the functionalities (features) you want to install, but for me the correct answer is no. See more
    here .
  6. How many database are used by BAM?
    BAMPrimaryImport, BAMStarSchema, BAMAnalysis, BAMArchive, BAMAlertsApplication and BAMAlertsNSMain.
  7. What is this tool BM.EXE and why do I need it?
    BAM Management utility or “bm.exe” provides for end-to-end management and deployment of BAM. You can use the BAM utility to perform the following tasks:
    1. Consume BAM definition and BAM configuration XML as input.
    2. Deploy the run-time infrastructure on the server, which includes the BAM Primary Import database, BAM Star Schema database, BAM Analysis database, and corresponding Data Transformation Services (DTS) packages.
  8. Where the data came from, what the BAM Data Sources?
    The most commonly data sources used with BAM are:
    1. BizTalk Application
    2. BAM API
    3. WCF Services (WCF Interceptor)
    4. WF Workflows (WF Interceptor)
e.       See more here .
  1. What is BAM Portal?
    It is a Web-based feature that consists of a collection of ASP.NET pages, it portal provides real-time, end-to-end visibility into a business process.

  2. It is required to track custom code used in application, which can be used TPE/BAM API or both can be used?
    TPE can't be used here as it can only be used to capture data from BizTalk artifacts, thus BAM API have to be used.
  3. Is there any shape in Orchestration which can't be tracked?

    Yes. There are some shapes like:
a.        Terminate
b.       Throw Exception
c.        Group 
d.       Loop 
e.       Message Assignment
f.         Suspend
g.        Transform
  1. What are various event streams used in BAM API?
a.        Orchestration Event Stream (OES)  
Asynchronous, participates in BizTalk orchestration transactions.
b.       Buffered Event Stream (BES)  
Asynchronous, high throughput, some latency.
c.        Direct Event Stream (DES)  
Synchronous, no latency and directly written to the BamPrimaryImportDb.
d.       Messaging Event Stream (MES)
Asynchronous, participates in BizTalk Server pipeline transactions.
  1. Is it possible to apply BAM on the retry mechanism of Send Port?
    No, because the code execution for retry happens in adapter which is out of the BAM tracking scope.

BizTalk Developer Interview Questions and Answers - Pipeline
1.       Why do we need a custom pipeline when we have default pipelines?
BizTalk Server provides a few out of the box pipeline components. For instance the S/MIME components for encrypting or decrypting messages. In case you need to do some pre or post processing on a message and the functionality is not offered through the provided pipeline components you will need to built your own custom pipeline component. The pipeline component(s) can then be used within a custom pipeline. See also TechNet Wiki Article 
BizTalk: List of Custom Pipeline Components.

2.       What is the maximum message size supported by XML send an XML receive pipeline?
This depends on infrastructure specifications (CPU, Memory, Disk) and on specific (possible) bottlenecks in your Microsoft BizTalk Server system (see MSDN 
How BizTalk Server Processes Large Messages ). While BizTalk Server imposes no restriction on message size, practical limits and dependencies might require you to minimize the size of your messages because large messages require more processing resources (see MSDN Message Considerations ).

3.       What is the minimum number of components allowed in pipeline stage?
Minimum is zero components, example PassThru pipeline.
4.       What is the maximum number of components allowed in pipeline stage?
All stages in the pipeline can take maximum of 255 components, except the assemble stage that has a maximum of one.
5.       Does Flat file assembler pipeline component validates the incoming XML message?
6.       What is a .btp File?
.btp file is a BizTalk Server pipeline file.
7.       How many states have the Receive Pipelines and the Send Pipelines?
The receive pipeline consists of four stages
a.        Decode Stage: This stage is used for components that decode or decrypt the message.
b.       Disassemble Stage: This stage is used for components that parse or disassemble the message.
c.        Validate Stage: This stage is used for components that validate the message format.
d.       Resolve Party Stage: This stage is a placeholder for the Party Resolution Pipeline Component.
8.       Regarding to the send pipelines, they consist of three stages:
a.        Pre-assemble Stage: This stage is a placeholder for custom components that should perform some action on the message before the message is serialized. 
b.       Assemble Stage: Components in this stage are responsible for assembling or serializing the message and converting it to or from XML. 
c.        Encode Stage: This stage is used for components that encode or encrypt the message.

9.       Is there any Visual Studio Wizard to create custom pipeline components?
Yes there is. The Pipeline Component Wizard is intended to ease development of pipeline components used within a BizTalk Server environment. Supports both C# and VB.NET. See more
here .
10.    What's the difference between Default Pipelines and Custom Pipelines?
When you create a new application, the default pipelines are created and deployed by default and appear in the Microsoft.BizTalk.DefaultPipelines assembly in the \References folder for every BizTalk project. The default pipelines cannot be modified in Pipeline Designer. These pipelines can be selected when configuring a send port or receive location in BizTalk Explorer.

Pipelines and pipeline components present out of the box can do most of the tasks for you. But sometime specific message processing or messaging requirements encourage developers to develop custom pipeline components. You can create three types of pipeline components: general, assembling, and disassembling. Each of the three types can additionally implement probing functionality. Each type of pipeline component has an associated interface that must be implemented for the component to be plugged into the BizTalk Messaging Engine; the pipeline interfaces that distinguish the types of components are IComponent, IAssemblerComponent, and IDisassemblerComponent. A custom pipeline component is just a plain .NET class that implements several BizTalk interfaces.
11.    Is there an error handling functionality to handle error on pipelines? 
Yes. Error-handling functionality called error reporting which enables handling pipeline errors. Error reporting is specified on receive and send ports within the BizTalk Administration console.
12.    When is filter used to create a subscription?
Filters are used to create subscription when orchestrations are not part of the scenario.
13.    Which property is required when using Flat file Disassembler component?
Setting the Document Schema property is required, all other properties are optional.
14.    What if Document Schema property is not specified when using Flat file Disassembler component?
A runtime schema discovery will be attempted, Biztalk Server attempts to determine the correct flat file schema to assemble the message with, based on the namespace and the root node of the message.
15.    Which API is used to implement Pipeline?To implement pipeline we have to use the API in the Microsoft. BizTalk. Component. Interop namespace.
16.    What are types of pipeline components?
a.        General
b.       Assembling
c.        Disassembling
d.       Probing
17.    Why attributes are added to class while developing a custom component?
To indicate that the component is a custom pipeline component and in which stage it can be used, couple of attributes are added to the class. 
a.        [ComponentCategory(CategoryTypes.CATID_PipelineComponent)]            --  This attribute tells that the component is cutom pipeline component
b.       [ComponentCategory(CategoryTypes.CATID_Any)]                                         -- This attribute tells that the component can be used at any stage
c.        [ComponentCategory(CategoryTypes.CATID_DisassemblingParser)]            -- This attribute tells that the component can be used only on Disassemble stage

18.    Custom Component is not visible in Toolbox, even after adding the assembly to GAC?
Just adding assembly is not sufficient, it needs to be added to component dll at location :
C:\Program Files\Microsoft BizTalk Server 2010\PipelineComponents and then reset the toolbox, it will be visible and ready to use.
19.    What interfaces are used in developing a general custom pipeline component?
20.    What interfaces are used in developing a custom dis-assembler component?           IBaseComponent,IComponentUI,IDisassemblerComponent,IpersistPropertyBag
21.    What interfaces are used in developing a custom assembler component?           IBaseComponent,IComponentUI,IAssemblerComponent,IpersistPropertyBag
22.    What interfaces are used in developing a custom Probing component?           IProbeMessage

BizTalk Developer Interview Questions and Answers - Visual Studio:
1.  What purpose does Visual Studio serve?
Development for BizTalk Server is done through Visual Studio <version> (depends on BizTalk version). Visual Studio has templates for BizTalk artifacts like orchestration, pipelines, schemas and maps, so a BizTalk solution can be created (design time) and deployed to the BizTalk runtime. Besides artifacts .NET development can be done in creating pipeline components, custom functoids, custom adapters, and .NET helper classes to aid in orchestrations. As a BizTalk professional Visual Studio is your friend and required to build BizTalk solutions.
2.  What is strong name key?
A strong name ensures that each assembly name is unique. Each assembly in your BizTalk project requires a strong name in order to deploy successfully. See also MSDN 
How to Configure a Strong Name Assembly Key File
3.  How is strong name key generated?
At the command prompt, from the folder where you want to store the key file, type the following command, and then press ENTER: sn /k file_name .snk. In Visual Studio Solution Explorer, right-click the project and then click Properties. Click the Signing tab and choose Browse in the Choose a strong name key file drop down box. See also MSDN 
How to Configure a Strong Name Assembly Key File.
4.  Difference between Build and Rebuild?
means compile and link only the source files that have changed since the last build, while Rebuild means compile and link all source files regardless of whether they changed or not. See also MSDN 
Building and Cleaning Projects and Solutions in Visual Studio .
5.  What are the actions in order to deploy from Visual Studio?
o  Sign the project with strong name key
o  Give the name to the Application
6.  Can I create or configure Receive Ports or Send Ports through Visual Studio?
That depends of the BizTalk Version/Visual Studio that you are using! In previous version you could create and configure port through the BizTalk Explorer view in Visual Studio, but since BizTalk Server 2010 the BizTalk Explorer view was removed from Visual Studio.
7.  What is a .btproj File?
.btproj is a Visual Studio BizTalk project file.
8.  Are all the BizTalk development tools embedded in Visual Studio?
No. Indeed BizTalk Mapper Editor, Schema Editor, Orchestration editor and Pipeline editor are embedded in Visual Studio. However BAM and BRE tool are not embedded.
9.  Why we get the error "Unexpected error writing metadata to file <filename>"? 
It is a known issue of Visual Studio. Visual Studio will not successfully compile a project if it would result in an assembly larger than 75 megabytes (Mb). 
10.    Where can we see assembly information in Visual Studio?AssemblyInfo.cs contains information about  assembly, like name, description, version, etc. It can be located under Project-->Properties-->AssemblyInfo.cs
11.    What is Build Order and can it be changed?Build Order is the sequence in which the projects will be build when the whole solution is build and yes it can be changed.
12.    What is option Clean used for?Clean Solution is used to delete any intermediate and output files (mostly assemblies). With only the project and component files left, new instances of the intermediate and output files (mostly assemblies) can then be built.
BizTalk Developer Interview Questions and Answers - Business Rule Engine:
1.  What is a Business Rules Engine?
A run-time inference engine that can link highly readable, declarative, semantically rich rules to any business objects (.NET components), XML documents, or database tables. It can evaluate rules against facts and initiate actions based on the results of that evaluation.
2.  What is the tool that I need to use to create Business Rules?
You need to use the Business Rules Composer. This is a graphical tool used for authoring, versioning, and deploying policies and vocabularies.
3.  What is a Business Rule Language?
It is a rule markup language in XML format for declarative rule definitions.
4.  How can I execute a Business Rule in my orchestration?
Using the Call Rules Shape. See more
here .
5.  What is used to create new vocabulary definition?
 The Vocabulary Definition Wizard is used to create vocabulary definitions.
6.  What is a Policy?
A policy is a logical grouping of rules. You compose a version of a policy, save it, test it by applying it to the facts, and, when you are satisfied with the results, publish it and deploy it to a production environment. See more
here .
7.  Is it possible to change Business Rule policy after it was published?No. After policies are published it can't be edited. But if there is a need to have a change in policy then new version of policy is to be created.
8.  Does rule composer have provision of adding ELSE logic?No, there is no provision of adding ELSE but else logic can implemented with extra IF.
9.  What is Long term fact and Short Term fact?The fact is the user data to which rule conditions are applied. At design time a fact is a reference to that data.
Facts have two categories – Short Term Facts and Long Term Facts. Consider a loaning process of any Bank. We can think a “loan application” as short term fact. Short team facts are business information which changes per occurrence. On the contrary, “interest rates” do not change very regularly. This business information is steady and we can consider it a long term fact. See more
here .
10.    What is the difference between Publishing and Deploying the Rule?Rule alone cannot be published or deployed, it has to be wrapped under Policy and then published and deployed. When a policy is deployed it is ready to use and can't be edited whereas when published, policy aren't ready for use.
11.    Can we call policies from .Net code?Yes. Firstly it needs to be declared (policy name which is to be called), passed in the fact instance and finally executed. 
12.    Can we call a specific version of Policy using Call rule shape in Orchestration?No, as the call rules shape calls the latest version of the policy deployed.
13.    What is purpose of BizTalkRuleEngineDb?This database is a repository for:
o  Policies, which are sets of related rules
o  Vocabularies, which are collections of user-friendly, domain-specific names for data references in rules.

14.    Is there limit for versions of policies?
15.    What is Rete Algorithm, does it have any relation with BRE?Rete Algorithm is an efficient pattern matching algorithm for implementing production rule systems. BRE's inner working is based on the Rete algorithm.
16.    How does it differ, calling the policy in Call Rules Shape and in Expression?The Call Rules shape in the Orchestration calls only the latest version of the policy. To call an older (specific) version from within an orchestration, the Business Rules Framework APIs is used, which can be called from within an expression.
17.    How to test specific rules (not all) defined under one policy?  To be answered

BizTalk Developer Interview Questions and Answers – XSLT :
  1. 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.
  2. Where does XSLT come into 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. See TechNet Wiki article BizTalk Virtual Mapper VS Custom-XSLT.
  3. 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. See MSDN Blog Muenchian Grouping and Sorting in BizTalk Maps .
  4. 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 (See MSDN Creating Maps Using BizTalk Mapper ).
  5. Can I use Custom XSLT inside a BizTalk mapper?
    Yes, by making use of the scripting functoid.
  6. 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."
  • 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)
    • &lt; less than
    • &gt; greater than

    1. How to traverse through the repeating node the input
     The XSL <xsl:for-each> element can be used to select every XML element of a specified node-set.
            9.  Is it possible to have custom functions?
                 Yes, it can be done in script blocks which can be done using <msxsl:script> element.

          10. Is it possible to use method fro
    m a
    assembly available in GAC
                It can be done using <msxsl:assembly> element and it has to be child of  <msxsl:script>element.
    BizTalk Developer Interview Questions and Answers - Helper Class:
    1. What is a helper class?
      A .net helper class with the context of BizTalk is a class (library) that can support an orchestration with extra functionality. It can enhance an orchestration in tracing, error handling, caching, and serialization/deserialization. See TechNet Wiki article BizTalk Server 2010: .NET Helper Classes.
    2. Where can the helper class be used?
      .NET (helper) classes can be used inside an orchestration. See TechNet Wiki article BizTalk Server 2010: .NET Helper Classes.
    3. A helper class which is not marked serializable ,
    can it be used in Orchestration?
    Yes, it can use in orchestration but in an atomic scope only.
  • Why is it required that helper class/.net assembly to be marked serializable?
    When creating an assembly that will be used by BizTalk, it is appropriate to mark all classes as serializable. Since BizTalk is stateless and makes use of persistence points, which details are stored in BizTalk SQL Server databases by serializing all the data. Therefore non-serializable Classes or Types cannot be used directly in Orchestrations.
  • What does property "copy local" indicates?
    "Copy Local" property indicates whether the assembly referenced should be copied into the local bin directory when a project is built.
  • Is it possible to create a .Net class variable in BizTalk if property "Use default constructor" is set to false?
    Yes it is possible; in this case the variable will need to be instantiated in an Expression shape through the new keyword.
  • What is Gacutil.exe?
    The Global Assembly Cache tool allows you to view and manipulate the contents of the global assembly cache and download cache. See MSDN GacUtil.exe .
  • Is there a way to automate the process of adding assembly in GAC?
    Yes. Right click the project, go to properties and select Build Events
    And add following in the Post-Build event command line:
  • "C:\Program files\Microsoft Visual Studio 8\SDK\v2.0\Bin\GacUtil.exe"   -u $(
    1. Is helper class deployed like BizTalk application?
      No, it is added to GAC on the machine where it is used.
    2. Why helper class/.Net assembly doesn't list in the Resources of Application, in spite of having reference to it and used in the application?
      Because resources are meant to hold only BizTalk resources.
    3. How helper class or .net assembly  is added to GAC
    With the use of gacutil.exe and following command:
    gacutil /i

    1. There is a .net helper class which suits to a requirement (in Orchestration) of an application but it is  Non-Serializable, how can it be used?
      Below are the steps :
      1. Add Reference
      2. Make Orchestration as Long running
      3. Add Atomic Scope
      4. Add Expression shape
      5. Orchestration variable of class inside scope 
      6. Instance of object inside the scope
      7. Call method
    BizTalk Developer Interview Questions and Answers – Adapter:
    1. What is an Adapter?
      An adapter is a software component (COM or .NET-based) that enables you to easily send messages out of or receive messages in BizTalk Server with a delivery mechanism that conforms to a commonly recognized standard, such as SMTP, POP3, FTP, or Microsoft Message Queuing (MSMQ). As Microsoft BizTalk Server has evolved, the need for adapters that quickly enable connectivity with commonly used applications and technologies has increased. BizTalk Includes over 25 multi-platform adapters that simplify the integration with Line of Business (LOB) Applications (such as Siebel, SAP, JD Edwards, Oracle, and Dynamics CRM), database (Microsoft SQL Server, Oracle, DB2) and other technologies (Tibco, Java EE). (See more here )
    2. What is required for a developer to create a custom adapter?
      A developer can receive requirements for building a custom adapter in case there are no out-of the box or commercial available to fulfill certain functionality.  This can be done by using the Microsoft Windows Communication Foundation Line of Business Adapter SDK. See MSDN Microsoft Windows Communication Foundation Line of Business Adapter SDK .
    3. What is the purpose of Adapter?
      Adapters are the components that enable the BizTalk to interface with the external communications protocol. They mediate between the protocol and the messaging pipeline in use.
    4. Does an adapter write to content of the message?
      No. The adapter only writes data in the context of the message which is further interrogated by another component of BizTalk.
    5. What are the native adapters in BizTalk?
      "Native" or "integrated" adapters in BizTalk are: FILE, FTP, HTTP, MQSeries, MSMQ, POP3, SMTP, SOAP, Windows Sharepoint Services, and the seven WCF adapters (WCF-WSHttp, WCF-BasicHttp, WCF-NetTcp, WCF-NetMsmq, WCF-NetNamedPipe, WCF-Custom, and WCF-CustomIsolated)
      Adapters in BizTalk Server , BizTalk 2010) or the ten WCF-based in BizTalk Server 2013 if you include WCF-BasicHttpRelay, WCF-NetTcpRelay, WCF-WebHttp and two other new ones SB-Messaging and SFTP adapter.
    6. Which port
    do you need configure in a firewall for in and outbound traffic when using the FTP Adapter?
    For the FTP adapter you will need to configure port 20 and/or 21. See MSDN Ports for the Receive and Send Servers .
  • What happens  to file when message is suspended in a MessageBox?
    The file adapter deletes the file from disk.
  • What does "Public address" property defaults to?
    This property defaults to file://{Receive folder value}/{file mask value}. The literal prefix file:// is required so as to communicate the protocol in use. It is string from 0 to 255 characters.
  • What is the default value of Retry count and Retry interval (min)?
    The default value is "5". This can be altered through the Advanced Options Tab of the Transport Properties of a Send Port. See MSDN How to Configure Transport Advanced Options for a Send Port
  • What is an Adapter Handler?
    An adapter handler is an instance of a BizTalk host in which the adapter code runs. When you specify a send or receive handler for an adapter you are specifying which host instance the adapter code will run in the context of. An adapter handler is responsible for executing the adapter and contains properties for a specific instance of an adapter. A default BizTalk Server configuration will create adapter handlers for all of the installed adapters, but you may want to create additional adapter handlers for purposes of load balancing or to provide process isolation for a particular adapter handler. (See more here )
  • What Is the Adapter Framework?
    The BizTalk Adapter Framework offers a stable, open mechanism for all adapters to implement or access work from the BizTalk Server Messaging Engine. The interfaces described in the Microsoft.BizTalk.Adapter.Framework namespace enable adapters to provide a means to modify configuration property pages. It also is a means to import services and schemas into the BizTalk project.  (See more here )
  • What you mean with Native Adapters and Custom Adapters?
    Native adapters are those that are shipped with the product and there are more than 25 multi-platform adapters. But in some cases a BizTalk Server may need to transport messages to a specific custom application or use a protocol for which a native adapter does not exist. If you are unable to locate an adapter to support your communication requirements, BizTalk Server provides a framework for developers so that you can develop your own custom adapter.
  • I've heard the term
  • connector in BizTalk. So what's the difference between an adapter and a connector?
    Probably the same thing. In BizTalk, we can call a connector as a software component that enables you to easily exchange messages between BizTalk Server with different systems, i.e, it's an adapter- a communications service used to exchange documents with your trading partners or your internal systems.
  • What can we expect when Propagate fault message is enabled?
    The fault message will be published to subscribing applications. If it is not enabled then any fault messages will end up being suspended and are available in the BizTalk Administration Console.
  • What is an Isolated Receive
  • Adapter?
    The receive adapter that is hosted in a process other than a BizTalk Server process. This adapter is created and controlled by an external process and it registers with BizTalk server at run time to submit messages.
  • What is journal queue?
    The journal queue is a system queue that is automatically created when MSMQ is installed and is meant to contain copies of messages that are sent or received.
  • What is dead queue?
    The dead letter queue is a system queue that is automatically created when MSMQ is installed and is meant to contain undelivered messages.
  • BizTalk Developer Interview Questions and Answers – Functoid:
    1. What is functoid
    The term functoids refers to predefined functions within the BizTalk Mapper tool set. Functoids support a number of useful translations and transformations.
    We can consider functoids, as pre-defined functions that we can use to perform complex data manipulations and transformations. Typically on a map, the data is copied from source to destination by dragging links between elements of the two schemes. Functoids stays in the middle of these operations and apply an operation on the incoming data in order to transform them to the requirements of the destination. BizTalk Mapper Designer represents a functoid as a box in the middle of the link or links between the processing elements. As a point of interest, functoid is a term coined by Microsoft and is commonly described as “functions on steroids.”
  • What is required for a developer to create a custom functoid
  • ?
    Basically you need to Create a new class library project using the .NET language of your choice and create a class derived from Microsoft. BizTalk. BaseFunctoids. However the easiest way is to use the BizTalk MapperExtensions Functoid Wizard. See more here .
  • Why would a developer create a custom functoid ?

  • Below scenarios can tempt developer to create custom functoid:
    • When there is no out of box functoids which can be used to complete the logic.
    • When the number of functoids used to implement the logic goes on increasing and becomes difficult to follow and manage.
  • What is the difference between Value Mapping and Value Mapping Flattening functoid
  • ?
    • Value Mapping: When both the source and the destination schemas define parallel repeating structures between which the relevant data is mapped.
    • Value Mapping (Flattening): When the source schema defines a repeating structure and the destination schema defines a flat structure, such that different instances of the repeating structure in the source schema are intended to be mapped into the unique elements in the flat structure in the destination schema.
  • How can you build an if-then-else construction with functoids
  • ?
    To build if-then-else it will need any of the Logical functoid (depending upon the requirements, e.g., if value is to be matched then Equal Functoid) and a Value mapping functoid. The combination (Logical Functoid and Value Mapping Functoid) will repeat, firstly to implement IF condition and secondly to implement ELSE condition.
  • Is it possible to reuse method of a Scripting Functoid in other Scripting Functoid?
    Yes, it is possible. To do so the method at first place should be declared as public and then it can be called from other scripting functoid.
  • What is Microsoft.
  • BizTalk.BaseFunctoids.dll?
    This DLL implements all the base classes which are needed to create a functoid.
  • What are the ways to integrate custom functoid into solution?
    Custom functiods can be integrated into a solution using two ways (in both BizTalk.BaseFunctoid is derived):
      • Directly by using inline code 
      • Indirectly by reference to a method in a class library deployed into the global assembly cache.
            9. What can be done using Scripting Functoid?
                 Custom code or custom scripts can be added .

          10. How many categories are functoids
    divided in
    Tool Box?
     There are 9 categories available in Toolbox viz.,
      •  Advanced
      •  Conversion
      •  Cumulative
      •  Database
      •  Date and Time
      •  Logical
      •  Mathematical
      •  Scientific
      •  String
           11. Can we concatenate 200 input parameters using String Concatenate functoid?
                  No. As the minimum input parameter accepted is 1 and maximum is 100.

           12. How can we get the count of the repeating node or repeating element?

                  Record Count Functoid can be used here, the input to this is the looping record/element.

           13. Is it possible to know the index of the current record in looping structure?

                 Yes with the use of Iteration functoid. Iteration functoid gives the index of the current record in a                       looping structure.

    BizTalk Developer Interview Questions and Answers – EDI:
    1.What is EDI?
    ·    Electronic data interchange (EDI) is a document standard which when implemented acts as common interface between two or more computer applications in terms of understanding the document transmitted. It is commonly used by big companies for e-commerce purposes, such as sending orders to warehouses or tracking their order.
    2. What are the things which make EDI solutions differ from standard XML solutions?
    ·    EDI solutions are on the same line as XML solutions but involved more complexities in schema, maps etc. Also few more things are to be done like setting up and configuring the trading partners (business profiles, parties, agreements etc.).

    3. How to create the EDI schema?
    ·    BizTalk already ships with the standard EDI schemas. To use it we need to extract the schemas using the MicrosoftEdiXSDTemplates.exe file, located in the root of the XSD_Schema\EDI folder.
    4. What is the default character set supported by EDI pipeline?
    ·    UTF-8 is the default Character set supported and it is used for run-time validation and applies only to EDI X12.
    5. How does BizTalk resolves Agreement?
    ·    BizTalk requires the qualifier and identifier fields for sender and receiver in order to perform agreement resolution. It will match the values of ISA5, ISA6, ISA7, and ISA8 in the interchange header with those in the properties of an agreement.
    6. When does fallback agreement properties come into the picture?
    ·    When BizTalk is not able to resolve the agreement, then it uses the fallback agreement properties.
    7. It is required to use EDI Pipeline in the EDI solution, but I can't see in the options?
    ·    EDI pipelines are not included in the Application as XML and Pass Thru pipelines are available. A reference to the BizTalk EDI Application is to be explicitly added so as to use EDI pipelines.
    8. What are the values which Segment Separtor Suffix and Segment Terminator Suffix can have? 
    ·    Either of the following : None,CR,LF or CRLF
    9. Are there a relation between EDI sending pipeline and Parties?
    ·    The EDI sends pipeline performs a party lookup by performing a series of steps to determine whether there is a match between the outgoing interchange and the properties of a party.
    10. What are the options to release EDI Batch messages to destination?
    ·    There are four options which can be used as deciding factor and then release:
    o  Schedule : At regular intervals
    o  Maximum Number of Transaction Sets :Fixed number of transactions within an Interchange
    o  Maximum Number of Characters in an Interchange : Number of characters
    o  External Release Trigger : Whenever a Trigger Message is given to BizTalk
    11. Is it possible to receive Multiple Interchanges in a Single Message and parse it?
    ·    Yes it's possible to receive Multiple interchange in a single message and to parse it, the pipeline  property called DetectMID is to be set as True.
    12. Can we access EDI message context properties in orchestration?
    ·    Yes it's possible. To do so reference to Microsoft.BizTalk.Edi.BaseArtifacts.dll should be added.
    BizTalk Developer Interview Questions and Answers - HL7:
    1.       What happens when HL7 accelerator is installed?
    The installation of the HL7 accelerator results in one or more of these items, depending on the selection during installation:
      1. Schemas : Contains the XSD representation of HL7 messages which are in flat file format in version v2.x
      2. Pipelines : Converts HL7 messages in flat file format into XML on receive and XML to flat file when sending messages and validates the HL7 message
      3. Adapter: Minimal Lower Layer Protocol (MLLP) adapter enables BizTalk to receive or send HL7-based messages, which BizTalk Server typically transports using the MLLP protocol. The MLLP adapter ensures that BizTalk Server and BTAHL7 are interoperable with HL7-based messaging applications.Generates acknowledgements for received messages
      4. Tools and Utilities : Configuration Explorer, MLLP Test Tool, SDK, Logging framework 
    2.       What does BTAHL72VXCommon project contains?
    It contains Schema for MSH segent and HL7 acknowledgements.
    3.       What does BTAHL7231common project contains?
    It contains the definitional schema referred to by all version 2.31 message schemas.
    4.       Is it mandatory to configure party for HL7?
    Yes,You need to add a party for each application that sends data into BizTalk server.
    5.       Is it required to specify schema per pipeline?
    Unlike default flat file DASM that BizTalk server provides, the HL7 does not require that a schema be specified per pipeline.
    6.       What consideration is to be taken while dealing with MSH entries?
    Entries in MSH are case sensitive.
    7.       When does DASM generates acknowledgements?
    If configured for Acknowledgement or if MSH.15 and MSH16 request them, the DASM generates one or more acknowledgements.
    8.       Why is it required to have party configured?
    The HL7 parser is designed to check the party configuration for each HL7 message. It reads the MSH.3 and checks for whether a party has been defined. If it has then HL7 parser follows the configuration supplied via HL7 configuration explorer.
    9.       HL7 accelerator runs in which mode?
    HL7 accelerator runs only in 32 bit mode.(64 bit support is available in BizTalk 2013).
    10.    Can we override values in the MSH segment of the outgoing message?
    Yes, it is possible to override certain field values in MSH segment of outgoing message.
    11.    Can we alter the namespace in the MSH schema?
    We can, but do not alter because the HL7 parser only looks for single MSH, the standard one that the HL7 accelerator provides.
    12.    What is difference between BTAHL72XReceive and BTAHL7XMLReceive?
    Both are used to receive HL7 message but former one used to receive HL7 message as flat file and later one to receive HL7 message as XML.
    13.    What are the acknowledgement types defined by HL7?
    The ACK code is found in the MSA-1 field of the ACK message. The following codes are supported by HL7:
    ·         AA – Application Accept
    ·         AE – Application Error
    ·         AR – Application Reject
    BizTalk Developer Interview Questions and Answers - ESB Toolkit:
    1. What is ESB Toolkit and why do we need it?
      BizTalk ESB Toolkit provides a set of services on top of the existing BizTalk Server 2010 architecture to enable service consumers and service providers to be part of a loosely-coupled but mediated environment. Using ESB toolkit, it helps to enable Dynamic Routing, Transformation and Exceptions handling and considered to be a platform to realize a service-oriented architecture and by solving the problems of point-to-point service connectivity with the help of a common mediation layer (the "bus"). 
    2. What is the ESB Toolkit version shipped with BizTalk Server 2013 R2?
    3. Can there be any drawbacks which you need to take care before deciding to implement ESB Toolkit?
      It is a security issue that can happen while doing ESB Toolkit setup in a multi-server configuration. This happens when ESB Portal web application refused to forward the impersonated credentials to the SQL Server since it is on another server. An identity delegation rights should be given to the application pool. Refer this to know more details.   
    4. Can you highlight the features of ESB Toolkit?
      Below are some underline features of ESB toolkit:
      Location & Version Transparency
      Transport Protocol Conversion
      Dynamic Data / Format Transformation
      Lightweight Service Composition
      Error Handling & Repair
      Service Interactions Support
    5. Does ESB Toolkit improve BizTalk performance?
      ESB Toolkit doesn't address to improve run-time performance.
    6. How you can use ESB Toolkit and BRE for BizTalk application development?
      We can have BRE resolver to achieve more dynamic routing approach. Rules can be configured not only for transport or transformation but also for itinerary itself.
    7. What are the ESB toolkit Core components?
      > Itinerary Services
      > Resolver, Adapter Provider Frameworks
      > Exception Management Framework
    8. What is an Itinerary?
      Itinerary (also described as "Routing slip") is a mediation Policy which can be attached to a message which comes to the ESB dynamically. Itinerary provides pictorial view of message flow with On/Off Ramp 
    9. Can we encrypt Itinerary?
      Yes, in fact visual studio default option is to enforce encryption. Since Itineraries may potentially contain sensitive configuration information, “Itinerary Encryption” was introduced to encrypt your itineraries with certificate before exporting them.
    10. What is resolver, and can you list out the ESB toolkit provides?
      A component which feeds run time configuration values to the Adapter provider the so that it can dynamically configure the Dynamic Adapter at run-time. It is a .NET component having a collection of entries which tells what values to use for various BizTalk components.
    11. What are On/Off Ramps?
      > On-Ramp is receive location which provides esb context (Corresponds to Receive port)
      > Off-Ramp (typically dynamic) is send port with respect to esb context (Corresponds to the send port) 
      Refer MSDN Article for details  
    12. What is ESB Management Portal?
      The ESB Management Portal provides views of fault information that make it easy to monitor, manage, and debug ESB applications. It also provides features that you can use to manage alerts, publish UDDI information, and administer the portal. To open the portal, navigate to http://localhost/ESB.Portal/. Refer MSDN for details .
    13. What is Routing Slip pattern? How ESB toolkit supports it?
      Routing Slip pattern is widely used message routing pattern and used when a message is routed through a series of components in a pre-defined order (may be unknown during design time). ESB provides this pattern via Itinerary-based processing. Business rule can be used to select an Itinerary for a message dynamically. See How to in msdn
    14. Can we develop a custom itinerary resolver?
      Yes, by implementing IResolverProvider interface. Refer Creating a custom resolver .
    15. What is the use of Export Mode property in?
      Export Mode property can be used to define where the service will execute.
      Strict: ensures that the itinerary service executes in its prescribed container; itinerary has a stage property that specifies the pipeline in which the service executes.
      Default: the itinerary service executes in the order prescribed, but not necessarily in the pipeline stage desired.
    16. I can see my Itinerary in the EsbItineraryDb database and set the correct resolver connection string in pipeline but I still see error "The itinerary ESBTransformServiceItinerary was not found in the repository.  ", why??
      The Itinerary need to be in the Deployed status in order to use it. To verify this, you can either check nStatus column value "1? in Itinerary table or Itinerary Status column in Visual Studio by selecting Model Exporter as Database.
      You won't be able to call the itinerary in Published status.
    17. Why there is no Itinerary status option when choosing XML Itinerary Exporter?
      Because you have choosen to export your Itinerary in XML for moving it to different environment. Once you are importing it to the targeted environment, you have option for "Publish" / "Deploy".
    18. How to move itineraries from one environment to another (e.g. QA to Production)?
      EsbImportUtil.exe utility tool is a good option used to publish or deploy the itinerary XML into the ESBItineraryDB database. 
    19. What is ESB Dispatcher?
      It sets endpoint location properties for outbound message using esb resolution guidance.
    20. Can you summarize a typical Message Life Cycle in ESB Toolkit?
      On-Ramp -> ESB Pipeline (ESB Context promotion) -> Itinerary -> MessageBox -> Queue message for subscriber -> Subscriber (Orchestration / Off-Ramp). Refer this MSDN Article for details
    21. Can we On-Ramp / Off-Ramp message with messagebox?
      Yes (with some trick), a message created within BizTalk Orchestration can promote properties with ESB context and published to MessageBox.
    22. Can we perform multiple transformation in sequence inside Itinaries?
      Yes, you need to add multiple Itinerary Services in sequence to achieve this.
    23. How can you call an Orchestration inside the Itinerary ?
      Using Orchestration Service Extender.
    24. What are the three commonly used promoted properties to subscribe correct message of an itinerary service?
      ServiceName, ServiceState, ServiceType
    25. What are the common patterns implemented in Itineraries?
      Message Routing
      -> Message Router : determines the recipient of the message based on a set of conditions
      -> Content-Based Router : determines the recipient of a message based on message content
      -> Routing-Slip : a message must be routed through a series of components in a pre-defined order, which may not be known at the design time.
      -> Recipient List: a message is routed to one or more recipients (statis / dynamic)
      -> Splitter : Breaking one message to multiple chunks
      Message Transformation
      -> Translator : Solves the problem of translating incompatible data formats between two systems
      -> Normalizer : Solves the problem when messages received from different sources are semantically equivalent but format is different
      -> Content Enricher : Solves the problem by furnishing additional data to the received message required by target system
      Service Mediation
      -> VETO / VETRO : Solves the problem using esb pipelines for Validate, Enrich, Transform, Route, Operate
      -> Request-Response: Solves the problem of two way communication
      Service Management
      -> Repair and Resubmit: Solves the problem with the use of ESB Management Portal
    BizTalk Developer Interview Questions and Answers - BizTalk Database:
    1. What effect does creating a new Host have on the Database?
      When the new host is created it results in a new entry in the Host table in the Management database and also a new Host queue in the MessageBox.
    2. The MessageBox database holds all the messages that are processed, what about messaging Objects?
      Messaging objects viz. Receive Ports, Receive Locations, Send ports, etc. are stored in the Management Database.
    3. Is there any change in the database when the filter is added to Send port or when Activate property of Receive shape is set to true?
      Yes. An entry is added in subscription table.
    4. What databases are part of every solution?
      BizTalk Server Management database, MessageBox databases, Tracking database, and SSO database are four database which are used by BizTalk server runtime operations. It is the component that encapsulates and abstracts the database component and is the interface used by BizTalk Server to interact with the MessageBox. The Message Agent is a Component Object Model (COM) component that provides interfaces for publishing messages, subscribing to messages, retrieving messages, and so on. This interface is the only mechanism used by other BizTalk Server components, including the adapter framework and orchestrations, to interact with the MessageBox.
    5. Which service looks after known issues in the database?
      Monitor BizTalk Server, this job scans the BizTalkMgmtDb, BizTalkMsgBoxDb and BizTalkDTADb database for any known issues, including orphaned instances.
    6. How would you define database role in context to BizTalk?
      The database is used to store the data about the Message and other data required for processing it, along with the help of SQL Server Agent Jobs.
    7. Which SQL Agent job runs continuously?
      MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb is the job which runs continuously in spite of scheduled to run once per minute.
    8. Messages without subscribers are removed, how?
      MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb determines when a message is no longer referenced by any subscriber. When no subscriber found it starts MessageBox_Message_Cleanup_BizTalkMsgBoxDb which removes the unused message.
    9. Does implementing BAM require more database?
      Yes. BAM Analysis, BAM Archive, BAMAlertsApplication, BAMAlertsNSMain, BAM Primary Import database and BAM Star Schema can be used to implement BAM solution.
    10. Which database stores the configuration information for receive
    Single Sign-On database (SSODb) securely stores the configuration information for receive locations, other known secret information is stored in the BizTalkMgmtDb.
  • How many databases are used for implementing BRE?
    In addition to the default 4 databases only one database, i.e. Rule Engine Database.
  • What are the options for upgrading BizTalk Server Database?
    There are two ways for upgrading
    1.In Place upgrade
    2.Transfer Upgrade.
  • Popular Posts