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.
2. Do you know 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.
3. Tell us what interfaces are used in developing a custom dis-assembler component?
☛ IBaseComponent,
☛ IComponentUI,
☛ IDisassemblerComponent,
☛ IPersistPropertyBag
4. Tell us 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.
5. Tell us 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. Tell us is there any Visual Studio Wizard to create custom pipeline components?
Yes there is. The Pipeline Component Wizard is intended to ease development of pipeline components used within a BizTalk Server environment. Supports both C# and VB.NET.
7. Tell me what are types of pipeline components?
☛ General
☛ Assembling
☛ Disassembling
☛ Probing
8. Please explain 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.
9. Tell us 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.
10. Tell me what is the minimum number of components allowed in pipeline stage?
Minimum is zero components, example PassThru pipeline.
11. Tell me what interfaces are used in developing a general custom pipeline component?
IBaseComponent,IComponentUI,IComponent,IPersistPropertyBag
12. Tell us what is a .btp File?
.btp file is a BizTalk Server pipeline file.
13. Explain me which property is required when using Flat file Disassembler component?
Setting the Document Schema property is required, all other properties are optional.
14. Do you know what interfaces are used in developing a custom Probing component?
IProbeMessage interfaces are used in developing a custom Probing components
15. Tell us 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.
16. As you know custom Component is not visible in Toolbox, even after adding the assembly to GAC?
Just adding assembly is not sufficient, it needs to be added to component dll at location : C:Program FilesMicrosoft BizTalk Server
2010PipelineComponents and then reset the toolbox, it will be visible and ready to use.
17. Explain me which API is used to implement Pipeline?
To implement pipeline we have to use the API in the Microsoft. BizTalk. Component. Interop namespace.
18. Tell us does Flat file assembler pipeline component validates the incoming XML message?
No Flat file assembler pipeline component do not validates the incoming XML message
19. Explain me what is the maximum message size supported by XML send an XML receive pipeline?
This depends on infrastructure specifications (CPU, Memory, Disk) and on specific (possible) bottlenecks in your Microsoft BizTalk Server system. While BizTalk Server imposes no restriction on message size, practical limits and dependencies might require you to minimize the size of your messages because large messages require more processing resources
20. Please explain 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.
21. Explain me what's the difference between Default Pipelines and Custom Pipelines?
When you create a new application, the default pipelines are created and deployed by default and appear in the Microsoft.BizTalk.DefaultPipelines assembly in the References folder for every BizTalk project. The default pipelines cannot be modified in Pipeline Designer. These pipelines can be selected when configuring a send port or receive location in BizTalk Explorer.
Pipelines and pipeline components present out of the box can do most of the tasks for you. But sometime specific message processing or messaging requirements encourage developers to develop custom pipeline components. You can create three types of pipeline components: general, assembling, and disassembling. Each of the three types can additionally implement probing functionality. Each type of pipeline component has an associated interface that must be implemented for the component to be plugged into the BizTalk Messaging Engine; the pipeline interfaces that distinguish the types of components are IComponent, IAssemblerComponent, and IDisassemblerComponent. A custom pipeline component is just a plain .NET class that implements several BizTalk interfaces.
22. Tell me when is filter used to create a subscription?
Filters are used to create subscription when orchestrations are not part of the scenario.
23. Please explain why attributes are added to class while developing a custom component?
To indicate that the component is a custom pipeline component and in which stage it can be used, couple of attributes are added to the class.
[ComponentCategory(CategoryTypes.CATID_PipelineComponent)] -- This attribute tells that the component is cutom pipeline component
[ComponentCategory(CategoryTypes.CATID_Any)] -- This attribute tells that the component can be used at any stage
OR
[ComponentCategory(CategoryTypes.CATID_DisassemblingParser)] -- This attribute tells that the component can be used only on Disassemble stage
24. Tell us 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
25. Please explain 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.
26. Tell us 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.
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.
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
29. Please explain 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.
30. Tell us 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.
31. Explain me 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.
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.
33. Tell us what interfaces are used in developing a custom assembler component?
☛ IBaseComponent,
☛ IComponentUI,
☛ IAssemblerComponent,
☛ IPersistPropertyBag
A runtime schema discovery will be attempted, Biztalk Server attempts to determine the correct flat file schema to assemble the message with, based on the namespace and the root node of the message.
35. Explain me how many states have the Receive Pipelines and the Send Pipelines?
The receive pipeline consists of four stages
Decode Stage: This stage is used for components that decode or decrypt the message.
☛ Disassemble Stage: This stage is used for components that parse or disassemble the message.
☛ Validate Stage: This stage is used for components that validate the message format.
☛ Resolve Party Stage: This stage is a placeholder for the Party Resolution Pipeline Component.
Regarding to the send pipelines, they consist of three stages:
☛ Pre-assemble Stage: This stage is a placeholder for custom components that should perform some action on the message before the message is serialized.
☛ Assemble Stage: Components in this stage are responsible for assembling or serializing the message and converting it to or from XML.
☛ Encode Stage: This stage is used for components that encode or encrypt the message.