Introduction

The purpose of this article is to cover possible Interview questions that a BizTalk Developer can face during an interview. In additional, this can help to brush-up some theoretical answers to the topic which is being used in day to day work.

Questions and Answers

  1. What is ESB Toolkit and why do we need it?
    BizTalk ESB Toolkit provides a set of services on top of the existing BizTalk Server 2010 architecture to enable service consumers and service providers to be part of a loosely-coupled but mediated environment. Using ESB toolkit, it helps to enable Dynamic Routing, Transformation and Exceptions handling and considered to be a platform to realize a service-oriented architecture and by solving the problems of point-to-point service connectivity with the help of a common mediation layer (the "bus"). 

  2. What is the ESB Toolkit version shipped with BizTalk Server 2013 R2 ?
    2.3

  3. Can there be any drawbacks which you need to take care before deciding to implement ESB Toolkit ?
    It is a security issue that can happen while doing ESB Toolkit setup in a multi-server configuration. This happens when ESB Portal web application refused to forward the impersonated credentials to the SQL Server since it is on another server. An identity delegation rights should be given to the application pool. Refer this to know more details.  

  4. Can you highlight the features of ESB Toolkit?
    Below are are some underline features of ESB toolkit:
    > Location & Version Transparency
    > Transport Protocol Conversion
    > Dynamic Data / Format Transformation
    > Lightweight Service Composition
    > Error Handling & Repair
    > Service Interactions Support

  5. Does ESB Toolkit improves BizTalk performance?
    ESB Toolkit doesn't address to improve run-time performance.

  6. How you can use ESB Toolkit and BRE for BizTalk application development ?
    We can have BRE resolver to achieve more dynamic routing approach. Rules can be configured not only for transport or transformation but also for itinerary itself.

  7. What are the ESB toolkit Core components?
    > Itinerary Services
    > Resolver, Adapter Provider Frameworks
    > Exception Management Framework

  8. What is an Itinerary?
    Itinerary (also described as "Routing slip") is a mediation Policy which can be attached to a message which comes to the ESB dynamically. Itinerary provides pictorial view of message flow with On/Off Ramp 

  9. Can we encrypt Itinerary?
    Yes, in fact, visual studio default option is to enforce encryption. Since Itineraries may potentially contain sensitive configuration information, “Itinerary Encryption”was introduced to encrypt your itineraries with a certificate before exporting them.

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

  11. What are On/Off Ramps?
    > On-Ramp is receive location which provides esb context (Corresponds to Receive port)
    > Off-Ramp (typically dynamic) is send port with respect to esb context (Corresponds to the send port) 
    Refer MSDN Article for details  
     
  12. What is ESB Management Portal?
    The ESB Management Portal provides views of fault information that make it easy to monitor, manage, and debug ESB applications. It also provides features that you can use to manage alerts, publish UDDI information, and administer the portal. To open the portal, navigate to http://localhost/ESB.Portal/. Refer MSDNfor details.

  13. What is Routing Slip pattern? How ESB toolkit supports it?
    Routing Slip pattern is widely used message routing pattern and used when a message is routed through a series of components in a pre-defined order (may be unknown during design time). ESB provides this pattern via Itinerary-based processing. A business rule can be used to select an Itinerary for a message dynamically. See How to in msdn

  14. Can we develop a custom itinerary resolver?
    Yes, by implementing IResolverProvider interface. Refer Creating a custom resolver.

  15. What is the use of Export Mode property in?
    Export Mode property can be used to define where the service will execute. 
    Strict: ensures that the itinerary service executes in its prescribed container; itinerary has a stage property that specifies the pipeline in which the service executes. 
    Default: the itinerary service executes in the order prescribed, but not necessarily in the pipeline stage desired.

  16. I can see my Itinerary in the EsbItineraryDb database and set the correct resolver connection string in 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.

  17. 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".

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

  19. What is ESB Dispatcher?
    It sets endpoint location properties for the outbound message using ESB resolution guidance.

  20. Can you summarize a typical Message Life Cycle in ESB Toolkit?
    On-Ramp -> ESB Pipeline (ESB Context promotion) -> Itinerary -> MessageBox -> Queue message for subscriber -> Subscriber (Orchestration / Off-Ramp). Referthis MSDN Article for details

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

  22. Can we perform multiple transformations in sequence inside Itineraries?
    Yes, you need to add multiple Itinerary Services in sequence to achieve this.

  23. How can you call an Orchestration inside the Itinerary ?
    Using Orchestration Service Extender.

  24. What are the three commonly used promoted properties to subscribe correct message of an itinerary service?
    ServiceName, ServiceState, ServiceType

  25. What are the common patterns implemented in Itineraries?
    Message Routing 
    -> Message Router : determines the recipient of the message based on a set of conditions
    -> Content-Based Router : determines the recipient of a message based on message content
    -> Routing-Slip : a message must be routed through a series of components in a pre-defined order, which may not be known at the design time. 
    -> Recipient List: a message is routed to one or more recipients (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
    Service Management
    -> Repair and Resubmit: Solves the problem with the use of ESB Management Portal
  26. 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.

Another important place to find a huge amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.

Another important place to find a huge amount of TechNet Wiki related articles is Wiki: List of Articles for TechNet Wiki
 

  1. 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)