I guess I was sleeping and forgot to post the answers to the BizTalk Interview Questions from a few posts ago. No worries though, Gustavo Echeverry went thought and answered them complete with reference!  Great work!


In any case, here are my answers.  Of course, in some cases it may be possible to have more then one right answer.


Development Focused Questions


What is BizTalk?


·         Biztalk is a messaging based integration tool.


·         Bonus: It consists of several different pieces including Business Processes (Orchestrations), BAM, Rules Engines, and HAT.


In BizTalk 2002, schemas were DTD based and allowed Xml Elements to be in any order inside a record using the <Any> keyword.  How is this different in BizTalk 2004?


·         BizTalk 2004 is XSD based.


·         BizTalk 2004 Elements default to <Sequence> and <Any> is no longer available.


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.


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.


What if the class is Serializable?


·         No transactional Orchestration or Atomic scope is needed.


What does the Value Mapping Functoid do?


·         Returns the second parameter if the first parameter is true


How do you use Auto Mapping in the BizTalk 2004 mapper?


·         Select a top level node, hold down the Shift key, drag the top level node over to the other top level node.


What is the default mapping for Auto Mapping?


·         The default is by structure.  This can be change to by node name on the map properties. (This default in the auto map messes me up every time.)


Step-by-step, how do you set up a basic, pure messaging solution taking in a flat file and send an Xml File out to 5 different places?


·         Create a Flat File schema


·         Create a Custom Pipeline using the Flat File Disassembler


·         Create a Receive Port


·         Create 5 Send Ports


·         Create a Send Port Group


·         Add each Send Port to the Send Port Group


·         Create a Filer on the Send Port Group using Bts.ReceivePortName (or something close to this)


·         Additional: no map is required but it is ok to mention it


Design (Architecture) Focused Questions


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.


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.


At high level, what do Receive Ports and Orchestration Send Port really do in terms of messaging?  What about Send Ports and Orchestration Receive Ports?


·         Receive Ports and Orchestration Send Port are both publishers.


·         Ports and Orchestration Receive Ports are both subscribers.


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 it own project


What is direct binding?


·         Direct binding has three types: direct to message box, self correlating, and partner ports.


·         Used to route message between the message box and Orchestrations without using bindings or from one Orchestration to another Orchestration.


What is BAM used for?


·         BAM is used to monitor business milestones and key metrics in near real-time throughout a process in BizTalk.


What is the Rules Engine?


·         Rules are used to provide highly efficient, easily changeable business rules evaluation to Business Processes.  This allows rules to be changed without rebuilding and redeploying .net assemblies.  The Business Rules Engine (BRE) can also be called from any .net component through the API’s.


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: end of a transactional scope, at a send shape, at a start Orchestration shape, during dehydration, if the system shuts down expectedly or unexpectedly, or the business process suspends or ends.


What group does a user need to belong to in order to submit messages to the message box? 


·         The user needs to be a member of the hot group or isolated host group (assuming a default installation).


What user rights to you need to perform most actions in HAT?


·         BizTalk Server Administrator


When installing Biztalk in a multi-server configuration with a remote SQL and Analysis Services, what SQL components do you need on the Biztalk Server?


·         SQL Analysis Services Client Tools


When installing Biztalk and SQL on a Windows XP SP2 Desktop, what pre-requests are required?


·         Correct answer: A Lot.  The best answer something like I have a custom written installation document I use or I always referrer to the most current updated installation guide from Microsoft.