Revision #28

You are currently reviewing an older revision of this page.
Go to current version

Introduction

This article intends to cover the answers to orchestration related questions, which a BizTalk developer can face during an interview.

Questions and Answers

  1. How are messages created in an orchestration?
    You construct a message any time that you introduce a message into your orchestration, either by receiving it or by assigning values to a message variable (see MSDN Constructing Messages). There are several ways to create a new instance of a message in an orchestration, see Michael Stephenson blog post Message Construction in an Orchestration.

  2. Where is information about promoted properties stored?
    The information about the promoted properties is extracted and stored in the bts_documentspec table in the Management database.

  3. What is message metadata?
    The message metadata is called Context Properties and on receiving the message , both the adapter and the pipeline will add information to the context.

  4. Can we use message metadata in Orchestration?
    Yes

  5. How does Orchestration subscribes to messages?
    In Orchestration , the first Receive shape is responsible for creating a subscription .Following two properties are involved in it,
    • Message : This tells what message this Orchestration is subscribing to
    • Activate : This tells to consume the message when found in MessageBox

  6. Design patterns in Orchestration?
    One of the best practices when implementing orchestrations is to use orchestration patterns when possible. These patterns are basically design pattern, which is a general reusable solution to a commonly occurring problem within a given context of BizTalk orchestration. This article will provide some useful resource links to aid you in using patterns when implementing an orchestration. See TechNet Wiki articles BizTalk Server 2010: Orchestration Patterns and BizTalk: Enterprise Integration Patterns.

  7. Types of messages?
    Two types of message
    • Typed message : A message created in Orchestration is bound to schema
    • Untyped message : A message is bound to System.Xml.XmlDocument instead of schema.

  8. How to load message in a variable?

  9. Can recursion be achieved in Orchestration?
    No

  10. What is binding?
    The term binding refers to the configuration of orchestration ports in order to control the creation of subscriptions and/or promoted properties. Binding is used to control how messages will be routed to or from orchestration ports by the subscription mechanism.

  11. Is it necessary for all .Net components being called from orchestration to be serializable?

  12. Is it possible : Orchestration A calls another Orchestration B and vice versa?
    No it is not, since it forms cyclic dependency.

  13. What is XLANG and where it is used?
    XLANG/s can be viewed as a messaging language with some of the expression capabilities of C#. However, code is not portable between XLANG/s and C#. The language is used for orchestrations. XLANG/s statements generally fall into one of two categories: simple statements that act on their own, such as receive or send, and complex statements that contain or group either simple statements or other complex statements, such as scope, parallel, and listen. The semantics embodied in XLANG/s are a reflection of those defined in the Business Process Execution Language for Web Services (BPEL4WS) specification published by Microsoft, IBM, and BEA for the definition of business process semantics. See MSDN XLANG/s Language.

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

  15. What is persistence point?
    At various points within an running orchestration the state can persisted. See MSDN Persistence and the Orchestration Engine.

  16. XMLDocument is non-serializable still it's called without atomic scope with no error, why?
    It is the only exception to the requirement of types for variables having to be serializable and treated as special case. See more here

  17. What is 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.


  18. Can an Atomic scope can have exception handler of their own?
    No, it can only have a Compensation Block.

  19. Pro's and Con's of Direct binding?

  20. Can orchestration use components other than listed in Toolbox?

  21. When is convoy used?
    Convoy is used to receive multiple messages in sequence or parallel to achieve a goal/result.


  22. Is it mandatory to have "Receive shape" as the first shape in orchestration?

  23. Is it possible to enforce Orchestration to behave in singleton way?
    Yes it is possible with the help of correlation.


  24. Where is BTS.SPID and BTS.ReceivePortID used?
    It is used in Specify Later port binding option. In this model the orchestration ports are bound to messaging ports using BTS.SPID,BTS.ReceivePortID or other related properties.


  25. When is property "Synchronized=true" used?
    When a variable is shared across the branches of parallel shape .


  26. What is maximum number of branches that can be used in a parallel shape?
    There is no limitations on number of branches which can be used in a parallel shape.


  27. Which language does expression shape support?
    Expression shape allows for writing XLANG/S statements that provide C# -like coding capabilities.


  28. What is relation between Orchestration instance and correlation?
    Correlation is the process of matching an incoming message with the appropriate instance of an Orchestration. 


  29. What are the ways to add properties in context?
    Promoting a node to a property field means to make a node value available in the context of the message.
    Adapters and pipeline components write to the context.

  30. What is 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 into the context.

  31. What is correlation type?
    A correlation type is a list of properties that eventually populates with values for use in routing messages.


  32. What are conditional persistence points?
    The Receive shape, Listen Branch and Delay shape are conditional persistence points.

Author

Maheshkumar S. Tiwari
iVision Software Pvt Ltd
http://tech-findings.blogspot.com/

Contributors

See Also

Revert to this revision