1. What is BizTalk?
BizTalk is a
middleware that sits in the middle of any two software who wish to communicate
with each other and agree on some specified communication pattern. It uses SQL
Server as back end database.
“Microsoft BizTalk
Server is an Inter-Organizational Middleware System (IOMS) that enables
companies to automate business processes, through the use of adapters which are
tailored to communicate with different software systems used in an enterprise.
Created by Microsoft, it provides enterprise application integration, business
process automation, business-to-business communication, message broker and
business activity monitoring.”
2. What is BizTalk
Server Architecture and Life Cycle of Message?
BizTalk Server
Architecture:
Life Cycle of
Message:
In this simplified view, a message is received through a
receive location defined in a given receive port. This message is processed by
the receive location and then published to the MessageBox database, the main
persistence and routing mechanism for BizTalk Server. The MessageBox evaluates
active subscriptions and routes the message to those orchestrations and send
ports with matching subscriptions. Orchestrations may process the message and
publish messages through the MessageBox to a send port where it is pushed out
to its final destination.
3. What is a
BizTalk Application?
A BizTalk application is a logical grouping of the items,
called "artifacts", used in a BizTalk Server business solution.
Artifacts include the following:
a) Schemas
b) Maps
c) Pipeline
d) Adapters
e) Orchestrations
f) Policies
g) Receive
Locations
h) Send
Ports
i)
Certificate
j)
Com Component and scripting
4. What is Hosts
and Host Instances?
A host is a logical
representation of a Microsoft Windows process that executes BizTalk Server
artifacts such as send ports and orchestrations. A host instance is the physical representation of a host on a specific
server. A host can be either an in-process host, which means it is owned and
managed by BizTalk Server, or an isolated host, which means that the BizTalk
Server code is running in a process that is not controlled by BizTalk Server. A
good example of an isolated host is Internet Information Services (IIS), which
hosts the receive functionality of the HTTP and SOAP adapters. Hosts are
defined for an entire BizTalk Server group; a collection of BizTalk Servers
that share configuration, MessageBoxes, ports, and so on.
5. What is a Message Type (i.e.
BTS.MessageType) and how is it used in BizTalk?
Message Type is a BizTalk System
property that is promoted inside a Pipeline. It is made up of Document Name
Space # Root Node Name.
6. What are different types of BizTalk
Schemas?
1. XML
schema: An XML schema defines the structure of a class of XML instance
messages. Because this type of schema uses XML Schema definition (XSD) language
to define the structure of an XML instance message, and this is the intended
purpose of XSD, such schemas use XSD in a straightforward way.
2. 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.
3. 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
4. Property
schema: A property schema is used with one of the two mechanisms that exist
within BizTalk Server for what is known as property promotion. Property
promotion is the process of copying specific values from deep within an
instance message to the message context. From the message context, these values
are more easily accessed by various BizTalk Server components. These components
use the values to perform actions such as message routing. Promoted property
values can also be copied in the other direction, from the more easily
accessible message context back into the depths of the instance message, just
before the instance message is sent to its destination. A property schema is a
simple version of a BizTalk schema that plays a role in the process of copying
promoted properties back and forth between the instance message and the message
context.
7. 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.
8. 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.
9. Can schema
have two nodes with the same name and different datatypes?
Yes,
as long as they are not in the same scope.
10. 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.
11. 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 Target Namespace or
no namespace.
12.
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.
In order 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.
13. 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 documents would not qualify as
well-formed XML.
14. What is Receive Ports and Receive Locations?
A receive port is
a collection of one or more receive locations that define specific entry points
into BizTalk Server. A receive location is
the configuration of a single endpoint (URL) to receive messages. The location
contains configuration information for both a receive adapter and a receive
pipeline. The adapter is
responsible for the transport and communications part of receiving a message.
Examples include the File adapter and SOAP adapter, each of which receives
messages from different types of sources. The receive pipeline is responsible
for preparing the message for publishing into the MessageBox. A pipeline is
a series of components that are executed in sequence, each providing specific
processing to a message such as decryption/encryption, parsing, or validation.
15. What is Send Ports and Send Port Groups?
A send port is
the combination of a send pipeline and a send adapter. A send port group is a
collection of send ports and works much like an e-mail distribution list. A
message sent to a send port group will be sent to all send ports in that group.
The send pipeline is used to prepare a message coming from BizTalk Server for
transmission to another service. The send adapter is responsible for actually
sending the message using a specific protocol such as SOAP, or FTP.
16. What is Orchestrations?
Orchestrations can subscribe to (receive) and publish
(send) messages through the MessageBox. In addition, orchestrations can
construct new messages. Messages are received using the subscription and
routing mechanism already discussed. When subscriptions are filled for
orchestrations, a new instance is activated and the message is delivered, or in
the case of instance subscriptions, the instance is rehydrated if necessary and
the message is then delivered. When messages are sent from an orchestration,
they are published to the MessageBox in the same manner as a message arriving
at a receive location with the appropriate properties is inserted into the
database for use in routing.
17. What is
BizTalk MessageBox Database?
The heart of the publish/subscribe engine in BizTalk
Server is the MessageBox database. The MessageBox is made up of two components:
one or more Microsoft SQL Server databases and the Message Agent. The SQL
Server database provides the persistence store for many things including
messages, message properties, subscriptions, orchestration states, tracking
data, and host queues for routing.
18. What are Difference
between an Isolated host and an In-Process host?
The difference between an Isolated host and an In-Process
is that an Isolated host must run under another process, in most cases IIS, and
an In-Process host is a complete BizTalk service alone. Additionally, since
In-Process hosts exist outside of the BizTalk environment, the BizTalk
Administration Tools are not able to determine the status of these hosts
(stopped, started or starting).
Security is also fundamentally different in an Isolated
host versus an In-Process host. In-Process hosts must run under an account that
is within the In-Process host’s Windows group, and do not maintain security
context within the Messagebox. Isolated hosts are useful when a service already
exists that will be receiving messages either by some proprietary means or by
some other transport protocol such as HTTP. In this case, the Isolated host
only runs one instance of the End Point Manager, and is responsible for
receiving messages from its transport protocol and sending them to the
Messagebox through the EPM.
19. What is
BizTalk Pipeline?
BizTalk is a message-based system receiving and sending
data inside messages. Sometimes the incoming and outgoing messages must be
processed to fit to external formats. Pipelines, attached to send ports and
receive locations, are the components through which the messages pass; then the
data format is recognized and can be validated or changed if necessary; as well
as the metadata is extracted and added to the message context.
20. What is
Receive Pipeline and their stages?
A receive pipeline operates on a message after it is
received by the receive adapter. The receive pipeline takes the initial
message, performs some transformations, and disassembles the raw data into
zero, one, or multiple messages. These individual messages can then be
processed by BizTalk Server.
Receive pipelines have four stages:
I.
Decode:
It can be used to prepare the message for the Disassemble stage for example
decrypting, uncompressing and decoding a message.
II.
Disassemble:
It can be used to produce multiple messages based on the input message by
de-batching the incoming message into smaller messages. It can also recognize
the format of incoming messages and then process it as well as promoting
properties into the message context. For example, incoming messages formatted
as XML are processed by the XML Disassembler or incoming messages formatted as
CSV flat file will be parsed and prepared as individual XML units.
III.
Validate: It's mainly used to validate the disassembled
messages. For example, verifying the XML Schema of the message to be of a
certain type using the XML Validator component.
IV.
Party
resolution: It's used to determine the party that BizTalk receive the
message from. This can be achieved by mapping the sender's digital certificate
or sender's security identifier.
21. What is Send
Pipeline and their stages?
A send pipeline is
responsible for processing documents before sending them to their final
destinations. The send pipeline takes one message and produces one message to
send.
Send
pipelines have three stages:
1.
Pre-assemble: It prepares the message for the outbound
process.
2.
Assemble: It's responsible for combining multiple
messages into one large message with the format that will be sent over the wire
(Aggregating multiples messages in a batch). In this step, we can change XML
format of a message into a flat file, or possible adding envelopment to the XML
message. In this stage, you can also demote the properties (those properties
promoted in the Disassemble stage of the Receive pipeline and used for the
routing of the message) from the context message.
3.
Encode: It's responsible for writing the outgoing
message in a fashion way in order to be understood by the target system. It
involves encoding, compression, encrypting, and signing the message.
22. What is Custom
Pipeline stages?
IBaseComponent: It Defines properties that provide basic
information about the component.
IPersistPropertyBag: It Works with IPropertyBag and IErrorlog to define an individual property-based
persistence mechanism.
IComponentUI: It Defines methods that enable pipeline
components to be used within the Pipeline Designer environment.
IComponent: It is
responsible for providing any execution functionality.
23.
What are different types of binding modes in BizTalk Server?
BizTalk offers four binding models,
each with different characteristics. Each model is really a set of higher level
abstractions of the basic BizTalk subscription mechanisms. One of these models
is called ‘Direct Binding’. The term ‘direct binding’ is used to suggest that
the techniques involved are all about binding one orchestration port directly
to another. In fact, this is just one possibility when using this model. I find
the term confusing, myself, as other binding models are used to ‘directly’ bind
orchestration ports to messaging Send ports. Binding models are really
differentiated by the following characteristics:
• Support for external binding
configuration
• Use of static and dynamic messaging Send ports. NB., Receive ports do not support a dynamic model.
• Auto-generation of configured messaging ports at deployment time
• Use of static and dynamic messaging Send ports. NB., Receive ports do not support a dynamic model.
• Auto-generation of configured messaging ports at deployment time
Following four type are-
Direct binding:
In this model, orchestration ports do not automatically
use or exploit BTS.SPID, BTS.ReceivePortID or other related properties. BizTalk
therefore does not manage the binding of orchestration ports to messaging
Receive and Send ports. Instead, it is entirely up to developers to control
subscriptions and message context in order to route messages. Developers are
free, if they wish, to route messages to other orchestration ports. External
binding configuration cannot be used with directly bound orchestration ports.
Direct binding is the most flexible model, but at a cost. You cannot configure
your orchestration ports using binding files, and you generally need to do more
programming in order to fully exploit the flexibility on offer.
Specify later
binding:
In this model, orchestration ports are bound to messaging
ports using BTS.SPID, BTS.ReceivePortID or other related properties. Outgoing
messages are always routed through static Send ports. Binding configuration can
be managed in deployed solutions using binding files or by writing
WMI/ExplorerOM code. This is probably the most common model, but is
significantly less flexible than direct binding. You have much less control over
subscription and ‘promoted’ properties, and can only use this approach to bind
orchestration ports to messaging ports.
Specify now
binding:
This model is similar to the ‘Specify later’ model.
However, BizTalk collects transport information at design time, together with
pipeline information, and uses this to auto-generate messaging Receive and
static Send ports at deployment time. Orchestration ports are then bound to
these ports. Binding files can be used, if required, to amend binding
configuration on a live system.
Dynamic binding:
This model has similarities to the ‘Specify now’ model in
that BizTalk collects pipeline information at design time and auto-generates
messaging Send ports. Receive ports are not generated, as there is no concept
of a ‘dynamic’ Receive port. However, transport information is not configured
in the same way. Instead, developers create expressions in orchestrations to
assign transport location URIs using the ‘address’ property of orchestration
ports. The auto-generated messaging Send ports are dynamic, rather than static.
Messages passing from an orchestration through dynamic
Send and Send-Receive ports are routed solely on the basis of the orchestration
port’s address property which is used to create BTS.OutboundTransportType and
BTS.OutboundTransportLocation ‘promoted’ context properties. When a dynamic
messaging Send port is enlisted, it creates a set of subscriptions, with one
subscription for each adapter. Each subscription tests that the
BTS.OutboundTransportLocation property exists, and that the
BTS.OutboundTransportType property contains a value identifying the adapter.
Hence, not only can dynamic binding route messages to any location based on the
address, but also via any registered adapter.
24. What is the
difference between static, dynamic and direct binding?
Static binding specifies particular port address,
Dynamic gives address of the port at runtime,
Direct binding sends messages to messagebox.
Dynamic gives address of the port at runtime,
Direct binding sends messages to messagebox.
25. What are
different Transaction types in BizTalk Server?
The classical definition of a transaction is – an atomic
unit of work which results in moving the system from one consistent state to a
new consistent and durable state. A transaction can either be “committed” or
“rolled back” depending on various conditions. Note that a transaction which
cannot be rolled back needs to be “compensated”. This means that if an
operation ‘f(x)’ has been performed on some data, in order to revert it back we
need to perform an operation ‘f(y)’, which essentially performs an undo operation,
this is known as “compensation” in simple terms.
A non-transactional orchestration cannot have ‘scope’
shapes set to either “Atomic” or “Long Running”.
If an orchestration’s transaction type is set to
“Atomic”, then the orchestration cannot have any other transactions within its
‘scope’ shapes.
Atomic transactions cannot contain nested transactions or
catch exception blocks. However, they can have compensation blocks.
Long running transactions cannot be isolated from other
transactions. However they can contain other atomic transactions and can have
catch exception and compensation blocks.
Batch: A
boolean value that determines if this transaction can be batched with other
transactions across multiple instances of the orchestration. The default value is
“true”. It may
improve performance with the possibility of losing isolation data.
improve performance with the possibility of losing isolation data.
Isolation level:
This property defines the degree of isolation between the state changes
performed by different atomic transactions. This is not applicable for
Long-Running transactions. BizTalk supports three isolation levels. These are
‘Read Committed’, ‘Repeatable Read’ and ‘Serializable’. The last one being the
default value.
Retry: A
boolean value which specifies that the atomic transaction can be retried in the
event of a failure. Perform the following for Retry-”throw an instance of
Microsoft.XLANGs.BaseTypes.RetryTransactionException” within the transaction
boundary.
26. 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.
27. 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.
28 .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.
29. 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.
30. 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.
31. 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 it’s
from the point it left off.
32. 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.
33. What are Advantages
of BizTalk Server?
A. It
is basically an Integration server. It helps in Integrating Enterprise
Applications at one common point.
B. Solutions
can be developed really fast with BizTalk Server. Effort spent will be less.
C. Updates
can be handled in an easy way and maintenance will be easy. BizTalk Server
supports Versioning of Artifacts.
D. Negative
scenarios can be handled easily with BizTalk Server- e.g. If some Service is
down, we can set Retry Mechanism,
E. Alternate
Transport Mechanism. It even supports service windows. We can take advantage of
enlist and stop features and prevent losing even a single Message.
F. BizTalk
is designed to operate in Multi Server Environment. We can run the application
on various servers to manage load and Availability.
G. MessageBox
DB designed for optimum performance.
H. Advantage
for customers on cost saving in terms of development time.
I.
BizTalk has a number of Tools like BRE, BAM, SSO
which be effectively used.
J.
It can be used to communicate with wide range of
Legacy Applications. There is always a scope to develop custom Components.
34.
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.
35. 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.
36.
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.
• 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.
37. What are
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.
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.
38. What is
<Any> element in schema?
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.
39.
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.
40. 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 its own project
• Or Schemas and Maps together in its own project
• Orchestrations in its own project
• Pipelines in its own project
41. 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:
• It is good enough to know various shape and actions cause persistence. More specifically, it occurs:
i.
After the execution of a Send Port
ii.
After the execution of a Start Orchestration
shape
iii.
After the successful execution (commit) of a
transactional scope
iv.
When the Orchestration instance is suspended
v.
When the Orchestration instance is completed
vi.
When the Orchestration engine shuts down
gracefully
vii.
When a debugging breakpoint is hit
viii.
When dehydration is determined appropriate by
the engine
42. 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: http://mynamespace.com#MyRootNode). In other words, BizTalk uses this
combination to identify and resolve schemas references.
43. Is it possible
to promote XML record of ComplexContent?
No. To promote XML record its ContentType property should
be set SimpleContent.
44. Can we have
schema without a target namespace? What will be its MessageType?
Yes, we can have a schema without target namespace and its
message type will be the Root node.
45. Can an
Envelope schema consist of more than one schema type?
Yes. Technically it is possible.
46. In which
scenarios would use a “promoted property” vs “distinguished fields”?
The rule here is, if you don’t want the schema element to
appear in send port filters/debugging information then make it a distinguished
field.
47. 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.
48. Are there
different editions of BizTalk Server?
BizTalk Server 2002, 2004 2006 R2, 2009, 2010, 2013,
2013R2 and 2016.
49. Why do we need
convoy?
When a group of correlated messages could potentially be
received at the same time, a race condition could occur in which a correlation
set in a particular orchestration instance must be initialized by one of the
messages before the other messages can be correlated to that orchestration
instance. To ensure that all of the correlated messages will be received by the
same orchestration instance, BizTalk detects the potential for such a race
condition and treats these messages as a convoy.
Convoy is a term which we use to describe a class of
application protocols, specifically it is a set of application protocols which
have a race condition as described above. Let’s take an example. Say you are a
hospital and want to have a service which handles all information about each
patient. For a given patient you have three types of messages, an admittance
message, status messages, and a discharge message.
If you look at your protocol, you will have built a
service which just receives. Now let’s think about what could happen. Let’s say
you send the patient admittance message and it goes through the system using
maybe a synchronous protocol like HTTP. That means when you get the 202 back,
you know the message has been delivered. But what if the BizTalkServer host
which is actually supposed to process the message hasn’t started yet (i.e. the NT
service is stopped). Maybe you had a power outage, maybe some intern decided to
“hit this button”, who knows.
So the orchestration instance which is supposed to handle
all messages for patient X has not physically started. The message is in the
database (MessageBox) and if you look in HAT you will see the orchestration is
marked as ready to run, but it can’t start cause there is nowhere for it to
start.
50.
How does one enable subscriptions in BizTalk?
A filter on the
Send Port is the first step to enable subscriptions in BizTalk.
51. What is the difference between a delay shape vs a listen shape?
51. What is the difference between a delay shape vs a listen shape?
A ‘Delay’ is
very much similar to a sleep on the current thread. A ‘Listen’ shape is used to
wait for an incoming resource, with a timeout period.
52. When you
use Call Orchestration shape vs Start Orchestration shape?
A Call
Orchestration returns the control back to the caller. A Start Orchestration
shape starts the orchestration in a non-deterministic way.
53. What is the difference between a “Message Assignment” shape and an “Expression” shape?
53. 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.
54. Does
BizTalk Orchestrations support recursion?
An Orchestration
does NOT support recursion.
55. What is
the purpose of the property “Activate” in a Receive shape?
It is used to
invoke a new instance of an Orchestration.
56. Can an
orchestration Start without an Activate receive?
A Nested
Orchestration can be started without an Activatable receive
57. 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.
58. 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.
59. How does
one enable Correlations in BizTalk?
First create a
Correlation type and then create an instance of it.
60. 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.
61. List out
the three important things to consider while designing a BizTalk orchestration!
The Incoming
data format, The Business process and The Outgoing data format.
62. What is
Message routing and Content routing?
When a message
is passed through BizTalk without being processed then it is called Message
Routing. When a message is passed based on certain field value of schema, it is
called content routing.
63. Does Flat file
assembler pipeline component validates the incoming XML message?
No
64. What is
a .btp File?
.btp file is a BizTalk Server pipeline file.
65. 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.
66. Does BizTalk
automatically compensate an unsuccessful transaction?
Ø A
Compensation section is generally written, in order to UNDO the effect of a
transaction.
Ø The
Compensation section for a scope gets activated only when the scope terminates
normally or the scope completes its execution.
Ø Unlike
exceptions, a compensation section can be written for a “Atomic” as well
as a “L-R”
Ø A
Compensation section needs to be explicitly invoked, using the Compensation
Shape in order for it to execute.
Ø A
Compensation section for a scope does NOT automatically undo the effect of
a transaction. The compensation section must have the undo logic in place in
order to have such an effect.
Ø A
Compensation shape can be used to invoke/execute a compensation section. The
control returns to the next operation after compensation shape, once the
execution of the compensation section is complete.
Ø Is
it possible to share variables across two branches in a Parallel shape
yes it is possible you just need to set the “Synchronized” property to true.
yes it is possible you just need to set the “Synchronized” property to true.
Transaction types
The classical definition of a transaction is – an atomic
unit of work which results in moving the system from one consistent state to a
new consistent and durable state.
A transaction can either be “committed” or “rolled back”
depending on various conditions. Note that a transaction which cannot be rolled
back needs to be “compensated”.
This means that if an operation ‘f(x)’ has been performed
on some data, in order to revert it back we need to perform an operation
‘f(y)’, which essentially performs an undo operation, this is known as
“compensation” in simple terms.
A non-transactional orchestration cannot have ‘scope’
shapes set to either “Atomic” or “Long Running”.
If an orchestration’s transaction type is set to
“Atomic”, then the orchestration cannot have any other transactions within its
‘scope’ shapes.
Atomic transactions cannot contain nested transactions or
catch exception blocks. However, they can have compensation blocks.
Long running transactions cannot be isolated from other
transactions. However they can contain other atomic transactions and can have
catch exception and compensation blocks.
Batch: A
boolean value that determines if this transaction can be batched with other
transactions across multiple instances of the orchestration. The default value
is “true”. It may improve performance with the possibility of losing isolation
data.
Isolation level:
This property defines the degree of isolation between the state changes
performed by different atomic transactions. This is not applicable for
Long-Running transactions. BizTalk supports three isolation levels. These are
‘Read Committed’, ‘Repeatable Read’ and ‘Serializable’. The last one being the
default value.
Retry: A
boolean value which specifies that the atomic transaction can be retried in the
event of a failure. Perform the following for Retry-”throw an instance of
Microsoft.XLANGs.BaseTypes.RetryTransactionException” within the transaction
boundary.
Transaction type:
Can be either “Atomic” or “Long Running” or “None”.
67. What is the
difference between an Exception block and a Compensation block? Is it the
equivalent of try-catch-finally?
Exception block can be termed as a catch block. But compensation is different. It’s like reversal of a committed transaction. When do we need set the property “Synchronized” = true for a scope
In case we want to share a variable between parallel scopes.
68. What is Single
Sign-On (SSO)?
Enterprise Single Sign-On (SSO) provides services to store and transmit encrypted user credentials across local and network boundaries, including domain boundaries. SSO stores the credentials in the SSO database. Because SSO provides a generic single sign-on solution, middleware applications and custom adapters can leverage SSO to securely store and transmit user credentials across the environment. End users do not have to remember different credentials for different applications.
69. How to version
your schema?
Ø
Side by
side versioning in BizTalk 2004 Configure any pipeline components to use a
specific version of the schema. If the schema is redeployed under a different
version and this is not done it will fail because it looks up by target name
space / root element not by assembly. Deploy the new version. Bind the
orchestrations. The Manual steps are below. Disable the receive location
Ø
Unenlist
the old version using the Explorer (do not stop it), this will prevent new
instances from starting while allowing old ones to finish
Ø
Enlist
the new version and start it, all new instances will be created using this one.
Ø
Enable
the receive location
70. How to
transfer files without using Orchestration?
Content Based Routing.
71. Where and
how did you use Web Services in Orchestration?
We can use web
services where we need to get data from multiple sources in one go. For e.g.
getting price quote from 10 different vendors. You make one orchestration and
use WS inside it.
72. What is binding files?
Binding files in BizTalk is an XML file that contains information of receive send ports there locations. It is usually used when you make a deployment. We make MSI separately without bindings.
73. In a
BizTalk project how to consume an external web service?
a.
About Consuming Web Services
b.
Adding Web References
c.
Constructing Web Messages
d.
Creating Web Ports
e.
Considerations When Consuming Web Services
Solution1
§
You can
consume (call) a Web service from your orchestration by using Web ports. To
consume a Web service from an orchestration, you create a Web port and
construct Web messages.
§
You can
use SOAP headers with the consumed Web service, change the URI of a consumed
Web service, and dynamically set the URI for a consumed Web service.
§
Important an
orchestration is required to consume a Web service. You cannot use the SOAP
send port in scenarios that only use messaging. SOAP send ports must be used
with an orchestration.
Solution2
§
Add
configuration port and on port type select web service port type it will
automatic create appropriate request and response port.
§
Here
you need to assign input message value to Web service request message
74. What are
adapters? What do we need it?
Adapters can simply be termed as medium with which BizTalk communicates with other software, processes, and information together.
75. In the
Orchestration what is the difference between Exception and Compensation? Give
an example of its usage scenario.
Exception is simple the try catch block in .net. Let’s
say you have an expression a = b/c where c=0 it will raise an exception and
will be caught in catch block.
Compensation is like you made a transaction where u
debited customers account. Now you will do exact opposite meaning crediting
with the same amount and the same account.
76. What is BizTalk
Pub-Sub architecture?
Fundamental to BizTalk is the Publish / Subscribe
Architecture. This architecture basically comprises of 2 main components. First
of all, a publisher, who would be responsible to publish the message in the
message store. And secondly, a subscriber, who will subscribe to messages
of a particular format so that he gets them whenever they are published.
Publishing refers to the process of inserting the
messages in the message box database. Normally, a receive port, an
orchestration or solicit send port would be involved in publishing any message
to the message box. A receive port would receive the message from the pipeline
and publish it to the message box for an orchestration or a send port to pick
up.
An orchestration would publish the message usually while
sending it using the send shape. A solicit response port would actually publish
the message when it receives a response from the end system.
The subscribers would indicate the message they would
like to receive by a set of criteria or filters.
Thereby, whenever a message is posted or published to the
message box database, a subscriber will be able to get the message based on the
filters or criteria mentioned while subscribing. The filters can be specified
only on the promoted fields on the message.
77. What is
debatching in BizTalk?
Recently I end up in a scenario where I need to debatch a
message inside the orchestration to produce multiple messages based on XPATH
78. What are the
communication patterns available in BizTalk?
Each port type has a communication pattern. The communication pattern determines whether one-way or two-way (request-response) transmissions can take place on ports of the given type.
79. What is the
tool used to manage and configure the BizTalk Server and to deploy, manage,
monitor, and troubleshoot Applications?
BizTalk Administration Console
80. What is the
architecture of BizTalk?
Pub-Sub Architecture
81. What is BAM?
Business Activity Monitoring (BAM) is a collection of
tools that allow you to manage aggregations, alerts, and profiles to monitor
relevant business metrics (called Key Performance Indicators, or KPIs). It
gives you end-to-end visibility into your business processes, providing accurate
information about the status and results of various operations, processes, and
transactions so you can address problem areas and resolve issues within your
business.
The BAM Framework provides an easy, real-time,
transaction-consistent way to monitor heterogeneous business applications, and
to present data for SQL queries and aggregated reports (OLAP). Through queries
and aggregations, you can include not only the data that is present during the
running business process, but also the state and the dynamics of the running
business process, independent of how the business is automated.
82. What is the
BAM portal?
The BAM portal in BizTalk Server provides real-time, end-to-end visibility into a business process. It is a Web-based feature that consists of a collection of pages. You can customize BAM to enhance the performance and experience for your users.
83. 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.
84. What is
BizTalk Business Rule Engine?
The Business Rules Framework is a Microsoft .NET-compliant
class library. It provides an efficient inference engine that can link highly
readable, declarative, semantically rich rules to any business objects (.NET
components), XML documents, or database tables.
Application developers can build business rules by
constructing rules from small building blocks of business logic (small rule
sets) that operate on information (facts) contained in .NET objects, database
tables, and XML documents. This design pattern promotes code reuse, design
simplicity, and modularity of business logic.
85. What are Fact
Explorer of Rule composer contains?
A. Vocabularies
B. Schemas
C. Databases
D. .Net
Assemblies
86. What are BRE Importance Note?
·
BRE is available only in licence BizTalk Server
·
Document Type of schema should be same as fully
qualified schema name
·
We can set priority for rules execution if more
than one rule
·
Higher number mean higher priority
·
There is only if then and no else condition
·
When a new version of the policy is deployed,
you should wait approximately 60 seconds before testing. The rule engine update
service polls the rule engine database on a periodic basis (every 60 seconds by
default) to look for newly deployed policies.
·
A policy or vocabulary cannot be modified after
it is published
87. Can we edit
vocabulary and policy after deployed?
We can edit both vocabulary and policy after deployed by
using update nStatus value from BizTalkRuleEngineDb of following Tables-
For Vocabulary -
re_vocabulary
For Policy-
re_ruleset
88. What is zombie
message in BizTalk?
A zombie message is a message that was routed to a
running orchestration from the messagebox and was "in flight" when
the orchestration ended. An "in flight" message is a message that has
been routed to a service instance and so is in a messagebox queue destined for
the service instance. Since the message can no longer be consumed by the
subscribing orchestration instance, the message is suspended and marked with a
ServiceInstance/State value of "Suspended (Non-resumable)".
A zombie service instance is an instance of an
orchestration which has completed while a message that was routed to the
orchestration instance from the messagebox was still "in flight".
Since the orchestration instance has ended, it cannot consume the "in
flight" messages and so is suspended and marked with a
ServiceInstance/State value of "Suspended (Non-resumable)".
89. When a zombie
service instance is suspended, which error message is generated?
0xC0C01B4C The instance completed without consuming all
of its messages. The instance and its unconsumed messages have been
suspended.
90. When zombie
message error occurs?
Terminate control
messages – The orchestration engine allows the use of control messages
to cancel all currently running work in a specific orchestration instance.
Since the control message immediately halts the running orchestration, zombie
instances are not unexpected. A number of Human Workflow related designs tend
to use this mechanism as well as some other designs.
Parallel listen
receives – In this scenario the service instance waits for 1 of n
messages and when it receives certain messages it does some work and
terminates. If messages are received on a parallel branch just as the service
instance is terminating, zombies are created.
Sequential convoys
with non-deterministic endpoints – In this scenario, a master
orchestration schedule is designed to handle all messages of a certain type in
order to meet some type of system design requirement. These design requirements
may include ordered delivery, resource dispenser, and batching. For this
scenario, the tendency is to define a while loop surrounding a listen with one
branch having a receive and the other having a delay shape followed by some
construct which sets some variable to indicate that the while loop should stop.
This is non-deterministic since the delay could be triggered, but a message
could still be delivered. Non-deterministic endpoints like this are prone to
generating zombies.
91. Tell me how to
transfer files without using Orchestration?
1) By using content based routing, files can be
transferred.
2) By creating receive port and send port. If send port
is configuring, provide the condition as BTS.
3) Receiveportname= <receive_portname created>
92. What is
BizTalk business process configuration?
Information worker can set parameters for an
orchestration that implements a business process, which a business analyst may
not be able to create. Developer creating an orchestration can define
parameters for an orchestration to enable information workers configure it. An
information worker sets those parameters using the TPM service by specifying
their values in the partner’s agreement.
93. Explain the
difference between BizTalk Server and Web Services?
BizTalk is a product while Web Services are a standard.
BizTalk Server is a Microsoft product whereas Web
Services have been developed by many organizations including Microsoft, IBM,
etc. BizTalk Server application has been built to enable the internal business
processes of organizations, operate with ease. Web Services are small
applications published using UDDI to enable all the people find them. Web
services are that they are platform neutral. BizTalk can leverage Web services.
94. What is the
default mapping for Auto Mapping?
The default mapping for Auto Mapping is mapping by
structure. This can be changed to by node name in the map properties.
95. 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.
96. Where does
XSLT come into the picture in BizTalk?
When a developer faces a complex mapping (problem) and to
solve it requires a substantial amount of logic he/she can use custom XSLT.
97. 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.
98. Can we
have a map without any links on it?
Yes. But to do so custom XSLT is to be provided to the map.
99. 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"
100. Is it possible to have a global variable in a map?
Yes. The 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.
101. What are the
places map can be used?
Receive Port, Orchestration, Send Port
102. 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.
103. What is
limit of maps on ports?
There is no limit.
104. 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.
105. Is it
possible to use the untyped message in the map?
No.
106. Is it
possible to create a map for a schema with unknown
structure?
Yes, it’s possible. It can be done by including the <Any> element in the map.
107. 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.
108. 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.
109. Is
there a limit on a number of pages on Map grid?
There is no limit, it depends on the requirement and complexity of the map.
110. 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.
111. 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.
112. 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 another source schema and mapping can be done. The variable also can be passed inside the Assign shop in an expression.
113. Is it
possible to have a map with n incoming messages to n outgoing messages?
Yes, but you need to create these kind of maps inside Orchestrations only! 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. Once created you can use this map on ports as well.
114. 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.
115. Is it
possible to have a 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.
116. Can the
graphic map representation and external XSLT be used in a single map?
No. As everything which we see in Map grid (links, functoids) are overwritten when external XSLT is used.
117. Can we
debug Map just like .Net code?
Yes. Right click the map to debug and select "Debug Map".
118. What is
a .btm File?
.btm is a BizTalk Server map file.
119. 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.
120. 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.
121. 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.
122. 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.
123. How are
messages created in an orchestration?
You construct a message any time that you introduce a message into your orchestration, either by receiving it or by assigning values to a message variable. There are several ways to create a new instance of a message in an orchestration.
124. 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.
125. 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.
126. Can we
use message metadata in Orchestration?
Yes.
127. How Orchestration
does subscribes to messages?
In Orchestration, the first Receive shape is responsible for creating a subscription. Following two properties are involved in it.
Message: This tells what message this
Orchestration is subscribing to
Activate: This tells to consume the message
when found in a MessageBox
128. 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.
129. How to load
message in a variable?
It can be done using the LoadXml method. Say xmlDoc is a variable then following is done to load employee message.
xmlDoc.LoadXml("<Employee><first_name>Joe</first_name><last_name>Smith</last_name></Employee>");
130. Can recursion
be achieved in Orchestration?
No.
131. 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.
132. 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.
133. 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.
134. 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.
135. 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.
136. 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.
137. Can an
Atomic scope can have an exception handler of their own?
No, it can only have a Compensation Block.
138. Pro's
and Con's of Direct binding?
Pro's:
Loose coupling
Not bounded to any physical port (explicitly)
Con's:
Can lead to subscribing to messages published by another
publisher
139. Can
orchestration use components other than listed in Toolbox?
Yes. It is possible to use components like pipeline, business rule policy, .net component etc.
140. When is
convoy used?
The convoy is used to receive multiple messages in sequence or parallel to achieve a goal/result.
141. Is it
possible to enforce Orchestration to behave in singleton way?
Yes it is possible with the help of correlation.
142. 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.
143. When is
property "Synchronized=true" used?
When a variable is shared across the branches of parallel shape.
144. 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.
145. Which
language does expression shape support?
Expression shape allows for writing XLANG/S statements that provide C# -like coding capabilities.
146. What is relation between Orchestration instance and
correlation?
Correlation is the process of matching an incoming message with the appropriate instance of an Orchestration.
147. 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.
148. 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.
149. What is
correlation type?
A correlation type is a list of properties that eventually populates with values for use in routing messages.
150. What are
conditional persistence points?
The Receive shape, Listen Branch and Delay shape are conditional persistence points.
151. What are Scopes used for?
Scopes are used for following reasons:
A.
To configure transaction (long
running and atomic)
B.
To handle exceptions
C.
To trigger compensating logic
152. 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.
153. 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.
154. 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.
155. 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.
156. 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.
157. Is it possible to use IF Then Else logic inside the
Message Assignment?
No, it is not possible to use the If Then Else Logic inside the message Assignment. It has to be used in the expression shape.
158. How to Promote Property inside an Orchestration?
The Orchestration cannot promote the properties to message context by default like pipelines can do by using the msg.Context.Promote() method. Inside Orchestration one has to create a correlation set and initialize that correlation set while publishing the message. Then the BizTalk Engine will promote the property to the message context.
159. What is
MessageBox?
MessageBox is
a SQL server database along with messaging agent.
160. What is the purpose of MessageBox?
Ø Store
all messages and context received.
Ø Stores
all subscriptions.
Ø Stores
all Host Queues.
161. 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.
162. How
MessageBox does treats messages without subscriber?
The message is suspended when there are no subscribers
found for it.
163. How
many receive locations can a single receive port have?
Receive port can have any number of receive location.
164. 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.
Instance subscriptions are removed from the message box while Activation subscriptions remain active as long as the orchestration or send port is enlisted.
165. 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.
166. 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.
167. 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.
168. 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.
169. Can a
send group be a part of multiple send group?
No only static send ports can be part of send group.
170. 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.
171. Ordered
delivery does not have an effect even after it is set, when this might happen?
When back up transport is also applied.
172. 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.
173. 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.
174. In how
many ways can we do the BizTalk Application deployment?
BizTalk Application deployment can be done using the
following:
a) Deploying
from Visual Studio
b) Building
a Microsoft Installer (MSI) package that can be exported or imported between
environments.
c) Using
command line-based tools such as MSBuild and BtsTask.
d) Using
community frameworks, such as BizTalk Deployment Framework and NANT.
175. 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.
176. 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.
177. 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.
178. 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.
179. Which
is the first step to enable Subscription?
A filter on the send port is the first step to enable
subscriptions in BizTalk.
180. Can Application be in start state when host is Offline?
Yes. But this application will not function properly.
181. When don't filters on send port apply?
If a send port is directly bound to an orchestration port, then filters do not apply.
182. How to
apply maps on send port group?
Maps can't be applied to Send Port Group.
183. Is it
possible to integrate BAM installed on server1 and BizTalk installed on
server2?
Yes it’s possible with a condition that BAM server has to be part of the BizTalk group.
184. What is
the difference between TrackingProfile DB and DTADB?
Both are same and terminology is used interchangeably.
185. 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.
186. 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.
187. 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.
188. 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.
·
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.
·
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.
189. 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 ActivityIDsin memory in order to call AddRelatedActivity. This API creates the link between the corresponding activity records.
190. 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.
191. Can we
have multiple views created on single Activity?
Yes it’s possible to have multiple views on single Activity.
192. Where
BAM collects raw tracking data?
BAM collects raw tracking data from the BAMPrimaryImport (BAM Primary Import) Database.
193. 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.
194. How
many database are used by BAM?
BAMPrimaryImport, BAMStarSchema, BAMAnalysis, BAMArchive, BAMAlertsApplication and BAMAlertsNSMain.
195. 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:
·
Consume BAM definition and BAM configuration XML
as input.
·
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.
196. Where
the data came from, what the BAM Data Sources?
The most commonly data sources used with BAM are:
BizTalk Application
BAM API
WCF Services (WCF Interceptor)
WF Workflows (WF Interceptor)
197. 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.
198. 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.
199. 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
200. What
are various event streams used in BAM API?
Orchestration Event Stream (OES)
Asynchronous, participates in BizTalk orchestration
transactions.
Buffered
Event Stream (BES)
Asynchronous, high throughput, some latency.
Direct
Event Stream (DES)
Synchronous, no latency and directly written to the
BamPrimaryImportDb.
Messaging Event Stream (MES)
Asynchronous, participates in BizTalk Server pipeline transactions.
201. 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.
202. What is
the dfference between Real Time Aggregation and Scheduled Aggregations used in
BAM?
The storage of RTA is a SQL table and the aggregation is updated and maintained by SQL trigger. The event importing and aggregation update are completed in the same transaction, therefore its data latency is negligible and almost real-time. The scheduled aggregation is saved in Olap cubes which need to be processed periodically by the cubing DTS package
203. What is the minimum number
of components allowed in pipeline stage?
Minimum is zero components, example PassThru pipeline.
204. 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.
205. Does Flat file assembler
pipeline component validates the incoming XML message?
No.
206. What are types of
pipeline components?
v General
v Assembling
v Disassembling
v Probing
207. 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.
208 .What is
a Business Rule Language?
It is a rule markup language in XML format for declarative rule definitions.
209. How can
I execute a Business Rule in my orchestration?
Using the Call Rules Shape.
210. What is
used to create new vocabulary definition?
The Vocabulary Definition Wizard is used to create vocabulary definitions.
211. 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.
212. 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.
213. 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.
214. 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.
215. 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.
216. 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.
217. 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.
218. What is
purpose of BizTalkRuleEngineDb?
This database is a repository for:
i.
Policies, which are sets of related rules
ii.
Vocabularies, which are collections of
user-friendly, domain-specific names for data references in rules.
219. Is
there limit for versions of policies?
No.
220. 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.
221. 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.
222. How to
test specific rules (not all) defined under one policy?
To be answered
223. 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).
224. 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 fulfil certain functionality. This can be done by using the Microsoft Windows Communication Foundation Line of Business Adapter SDK.
225. 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.
226. 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.
227. 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.
228. 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.
229. What
happens to file when message is suspended in a MessageBox?
The file adapter deletes the file from disk.
230. 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.
231. 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.
232. 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.
233. 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.
234. 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.
235.
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.
236. 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.
237. 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.
238. 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.
239. 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.
240. 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.”
241. 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.
242. 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.
243. 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.
244.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 the 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.
245. 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.
246. What
is Microsoft.BizTalk.BaseFunctoids.dll?
This DLL implements all the base classes which are needed to create a functoid.
247. 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):
o Directly
by using inline code
o Indirectly
by reference to a method in a class library deployed into the global assembly
cache.
248. What
can be done using Scripting Functoid?
Custom code or custom scripts can be added.
249. How
many categories are functoids divided in Tool Box?
There are 9 categories available in Toolbox viz-
a. Advanced
b. Conversion
c. Cumulative
d. Database
e. Date
and Time
f.
Logical
g. Mathematical
h. Scientific
i.
String
250. Can we
concatenate 200 input parameters using String Concatenate functoid?
No. As the minimum input parameter accepted is 1 and the maximum is 100.
251. 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.
252. Is it possible to know the index of the current record in looping structure?
252. 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.
253. 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.
254. 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.
255. 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.
256. What
databases are part of every solution?
BizTalk Server Management database, MessageBox databases, tracking database, and SSO database are four databases 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.
257. 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.
258. 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.
259. 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.
260. 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.
261. 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.
262. Which
database stores the configuration information for receive locations?
Single Sign-On database (SSODb) securely stores the configuration information for receive locations, other known secret information is stored in the BizTalkMgmtDb.
263. How
many databases are used for implementing BRE?
In addition to the default 4 databases only one database, i.e. Rule Engine Database.
264. What
are the options for upgrading BizTalk Server Database?
There are two ways for upgrading
1.In Place upgrade
2.Transfer Upgrade.
265. 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").
266. What is
the ESB Toolkit version shipped with BizTalk Server 2013 R2 and 2016?
2.3 & 2.4
267. 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.
268. 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
269. Does
ESB Toolkit improves BizTalk performance?
ESB Toolkit doesn't address to improve run-time performance.
270. 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.
271. What
are the ESB toolkit Core components?
> Itinerary Services
> Resolver, Adapter Provider Frameworks
> Exception Management Framework
272. 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.
273. 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 a certificate before exporting them.
274. What is
resolver, and can you list out the ESB toolkit provides?
A component which feeds runtime 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.
Example: STATIC, UDDI, XPATH, BRE, BRI, ITINERARY, ITINERARY-STATIC, LDAP
275. 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)
276. 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.
277. 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. A business rule can be used to select an Itinerary for a message dynamically.
278. Can we
develop a custom itinerary resolver?
Yes, by implementing IResolverProvider interface.
279. 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.
280. I can
see my Itinerary in the EsbItineraryDb database and set the correct resolver
connection string in the pipeline but I still see the error "The
itineraryESBTransformServiceItinerary 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 ItineraryStatus column in Visual Studio by selecting Model Exporter as Database. You won't be able to call the itinerary in Published status.
281. Why
there is no Itinerary status option when choosing XML Itinerary
Exporter?
Because you have chosen to export your Itinerary in XML for moving it to a different environment. Once you are importing it to the targeted environment, you have an option for "Publish" / "Deploy".
282. How to
move itineraries from one environment to another (e.g. QA to Production)?
An EsbImportUtil.exe utility tool is a good option used to publish or deploy the itinerary XML into the ESBItineraryDB database.
283. What is
ESB Dispatcher?
It sets endpoint location properties for the outbound message using ESB resolution guidance.
284. 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).
285. Can we
On-Ramp / Off-Ramp message with message box?
Yes (with some trick), a message created within BizTalk Orchestration can promote properties with ESB context and published to MessageBox.
286. Can we
perform multiple transformations in sequence inside Itineraries?
Yes, you need to add multiple Itinerary Services in sequence to achieve this.
287. How can
you call an Orchestration inside the Itinerary?
Using Orchestration Service Extender.
288. What are
the three commonly used promoted properties to subscribe correct message of an
itinerary service?
ServiceName, ServiceState, ServiceType
289. 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 (static / 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
290. Is it
possible to implement service chaining in itineraries (i.e. Sending a message
to a service and feeding the response received from that service as input to
the next service and so on...)?
Yes. It is possible in itineraries.
291. 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.
292. 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.
293. How strong
name key is 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.
294. Difference
between Build and Rebuild?
Build 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.
295. What
are the actions in order to deploy from Visual Studio?
Sign the project with strong name key
Give the name to
the Application
296. 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.
297. What is
a .btproj File?
.btproj is a Visual Studio BizTalk project file.
298. 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.
299. 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).
300. 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
301. 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.
302. 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.
303. 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.
304. Where can the helper class be used?
.NET (helper) classes can be used inside an orchestration.
305. A helper class which is not marked
serializable, can it be used in Orchestration?
Yes, it can used in orchestration but in an atomic scope only.
306. 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.
307. 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.
308. 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.
309. 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.
310. 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 $
(TargetName)
311. Is helper class deployed like BizTalk
application?
No, it is added to GAC on the machine where it is used.
312. 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.
313. How helper class or .net assembly is
added to GAC?
With the use of gacutil.exe and following command:
gacutil
/
i
assemblypath
/f
314. 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?
Following 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
315. Cannot open BizTalk
MMC?
> Go to C:\Users\username\AppData\Roaming\Microsoft\MMC
> Rename BTSmmc as BTSmmc_Old
> Now lounch biztalk administration console and now it
working fine
316. How kill
running host instance by command prompt?
taskkill /f /pid PIDnumber
E.g. taskkill /f /pid 12345
317. What is send
port priority in BizTalk?
The priority given to the Send Port subscription (1 being
the highest and 10 the lowest), the higher the priority, the faster the Send
Port will get messages it has subscribed for.
You can also promote a schema element and assign its value in a variable and pass it as address information so that the file location can be selected at run time depending on the values in the element.
1) Direct Binding: In this case message from Orchestration is directly bound to message box and context property is written over the message for any SPID (send port subscribed to message).
2) Dynamic Binding: In this case message from Orchestration is directly bound to message box and context property is written over which can include Transport type property, Transport location property along with CLSID defining the runtime subscription.
318. How to put
data using SQL Adapter?
We can use stored procedure or updategram to put data in
SQL Adapter.
319. Is there
possible to make atomic transaction as two way
communication?
communication?
No, because atomic doesn't have property to maintain
persistent points.
320. When we are
promote the fields as quick promote then they are stored in property schema,
when we promote as distinguished fields then where the fields stored?
Distinguished Fields are written in the message context
by the pipeline when a message is received on a port. Distinguished fields are
written into the context using the Write() method on the IBaseMessageContext
object.
321. In which case
you have to use updategram and stored procedure?
If your case is the simple Add/Update-ing several rows,
the Updategram give you more simple way. You completely were out of the SQL
code.
SP give you more control under your data inside SQL. If you also have SPs or part of your business logic is/will be inside SQL you need use SPs. Usually we have to use SP with OPENXML.
SP give you more control under your data inside SQL. If you also have SPs or part of your business logic is/will be inside SQL you need use SPs. Usually we have to use SP with OPENXML.
322. How many ways
to restart the host instance in BizTalk?
These are following ways to restart host instance:
1)VS 2008-->Select BizTalk project-->properties-->in deployment pane-->select host restart it true
2)go to run cmd-->type services-->select our host instance's SSO and click on restart
3)go to BizTalk admin console and select host instance and right click -->restart
4)Go to cmd prompt and type the command for host instance restart
1)VS 2008-->Select BizTalk project-->properties-->in deployment pane-->select host restart it true
2)go to run cmd-->type services-->select our host instance's SSO and click on restart
3)go to BizTalk admin console and select host instance and right click -->restart
4)Go to cmd prompt and type the command for host instance restart
323. If we are
using single send port in two different host instances then either two copies
of message will send or single copy will send to subscribers?
Only single copy will send because host instance is for
load balancing purpose so that will send only to send location which is belongs
to that host instance.
324. How to
transfer files without using Orchestration?
Yes, go to BizTalk administration console and create the
receive port and create the send port.
in the send port configuration wizard, in the left pane, there
is tab called filters which is used to provide subscription information to BizTalk
msgbox, that tells the msgbox,"if any information comes on a particular
port, please send that information to me there is a filter property is there
bts.receiveportname="ReceivePortName"
So whenever the msg is dropped to receive location configured
with receive port, it comes to BizTalk msgbox db, msgbox db sends the message
to send port based on subscription information.
325. How orchestration
gets the message from message box?
By using publish and subscribe method
326. How to create
dynamic ports?
The dynamic port property is available only while
creating a send port. The simplest way to create a dynamic send port by is by
selecting the "New configured port" option in the orchestration
designer port window.
Select the send port binding property as "Dynamic in the configuration wizard. You can also specify the pipeline to be used in the port. The Dynamic send port will be created as well as a physical port will be automatically created once you deploy the application. Bind the orchestration logical port and physical send port.
Create an expression shape or message assignment and set the address where the files are to be submitted example:
Microsoft.XLANGs.BaseTypes.Address="FILE://F:\\OUTPUT\abc.txt";
Select the send port binding property as "Dynamic in the configuration wizard. You can also specify the pipeline to be used in the port. The Dynamic send port will be created as well as a physical port will be automatically created once you deploy the application. Bind the orchestration logical port and physical send port.
Create an expression shape or message assignment and set the address where the files are to be submitted example:
Microsoft.XLANGs.BaseTypes.Address="FILE://F:\\OUTPUT\abc.txt";
You can also promote a schema element and assign its value in a variable and pass it as address information so that the file location can be selected at run time depending on the values in the element.
327. How and why
you have to use Active Directory in BizTalk development?
it’s all depends on sort of deployment, in case of single
box hosting sql and BizTalk services then absolutely no need of active
directory which is mostly happens in development environments, but AD
importance coming in to the picture in enterprise deployments where you have BizTalk
group, sql on separate boxes, more important when you want to have cluster for
high availability and
performance scalability. Because the service user accounts and service group credentials are used across the network and group of computers and which is maintained in common repository called AD on windows platform.
performance scalability. Because the service user accounts and service group credentials are used across the network and group of computers and which is maintained in common repository called AD on windows platform.
328. In BizTalk
development where and how you have to use custom developed .NET components?
Can have custom functoids, custom pipelines, custom adapters,
custom way of calling BRE, calling external .NET assemblies.
329. In How many
ways Orchestrations provide Subscription information to Message Box?
There are two ways to provide subscription to message box
from Orchestration:
1) Direct Binding: In this case message from Orchestration is directly bound to message box and context property is written over the message for any SPID (send port subscribed to message).
2) Dynamic Binding: In this case message from Orchestration is directly bound to message box and context property is written over which can include Transport type property, Transport location property along with CLSID defining the runtime subscription.
330. You have two
schemas that need to be represented with the same root node and same namespace
or different namespace, is it possible?
It’s possible both schemas with same MessageType but we
have set respective subscription then it will identify the correct message to
respective application (With help of property of pipeline i.e. DocumentSpecNames).
331. Why messages
are immutable inside BizTalk?
If your case is the simple Add/Update several rows, the
Updategram give you more simple way. You completely were out of the SQL code.
SP give you more control under your data inside SQL. If you also have SPs or part of your business logic is/will be inside SQL you need use SPs. Usually we have to use SP with OPENXML.
SP give you more control under your data inside SQL. If you also have SPs or part of your business logic is/will be inside SQL you need use SPs. Usually we have to use SP with OPENXML.
!! Keep visiting BizTalkLive !!
In such cases where the video is not loading on Facebook, the user should first of all check the internet connection also the Adobe flash player should be checked it should be updated if needed also the privacy settings of the Adobe player should be checked and changed if needed. Aldo, the add ons and plugins should be checked, if nothing helps then the user should use the Facebook video downloader the experts are available at +44-800-368-9064.
ReplyDeleteFacebook Help Number UK
biztalk training for beginers
ReplyDeleteNice blog thanks for sharing
ReplyDeletebiztalk training
biztalk course
Nice answer
DeleteExcellent data with lots of information. I have bookmarked this page for my future reference. Do share more updates.
ReplyDeleteCCNA Course In Chennai
CCNA Course Online
CCNA Course In Coimbatore
Great Post with valuable information. I am glad that I have visited this site. Share more updates.
ReplyDeleteSpoken English Classes in Chennai Anna Nagar
Spoken English Classes in Adyar
Spoken English Class In T Nagar
Spoken English Classes in Velachery
Spoken English Classes In Chennai
Thank you for sharing .. Useful information..
ReplyDeleteA Web application (Web app) is a software that is stored on a distant server and distributed through the Internet using a browser interface. Web services are, by definition, Web application development services, and many, but not all, websites feature Web apps. according to the web
ReplyDeleteThis data is excellent, packed with valuable information. I've bookmarked this page for future reference. Please continue to provide more updates.
ReplyDeleteccna training in chennai