BizTalk Developer Interview Questions and Answers
Category Archives: BizTalk
BizTalk
BizTalk Integration Development Architecture
Editor’s note: The following post was written by Microsoft Integration MVP Leonid Ganeline
BizTalk Random Interview Questions – Part 3
BizTalk Random Interview Questions – Part 3
- Which serializer does the BizTalk use, an XmlSerializer or a DataContractSerializer? What implication has it for the real life scenarios?
- BizTalk use XMLSerializer by default. But working with WCF/WSDL services it probably uses DataContractSerializer.
- https://blogs.msdn.microsoft.com/sonuarora/2007/06/16/contract-generation-from-wsdlxml-schema-datacontractserializer-vs-xmlserializer/
- https://msdn.microsoft.com/en-us/library/ms733112.aspx
- What transform engine is the BizTalk using, an XslTransform or an XslCompiledTransform? What implication has it for the real life scenarios?
- BizTalk Server 2010 and below used the XslTransform class which was based on lower versions on .NET(introduced in .NET 1.1)
- BizTalk Server 2013 uses XSLCompiledTransform class introduce after .NET 2.0.
- There was a excellent blog which showed how to utilize XSLCompiledTransform class for BizTalk Server 2010 or below by paolo.
- https://danrosanova.wordpress.com/2013/10/09/the-biggest-change-in-biztalk-2013-and-how-to-undo-it/
- https://blogs.msdn.microsoft.com/paolos/2010/01/29/how-to-boost-message-transformations-using-the-xslcompiledtransform-class/
- https://blogs.msdn.microsoft.com/skesiraju/2014/07/17/mapxslt-performance-comparison-between-biztalk-server-2013r2-vs-2010/
- http://www.bizbert.com/bizbert/2008/02/07/Understanding+The+BizTalk+Mapper+Part+1+Introduction.aspx
- The BizTalk Business Rule Engine uses a Rete engine. In what scenarios this Rete engine is the more efficient / less efficient?
- https://jglisson73.wordpress.com/2014/02/24/biztalk-rules-engine-rete-algorithm/
- http://social.technet.microsoft.com/wiki/contents/articles/6480.biztalk-server-business-rule-engine-survival-guide.aspx
- http://geekswithblogs.net/cyoung/archive/2007/08/12/114597.aspx
- http://csharpbytes.azurewebsites.net/rules-engines-a-brief-intro/
- Let’s classify the applications as Front-end, Middle-level and Back-end. Where are the best places to use BizTalk? Please, provide scenarios. What are the most important features we have to take in account?
- Middle-Level and Back-end(SQL Server).
- What BizTalk features are the differentiators, when we compare the BizTalk Server with other alternatives? What are those alternatives?
- What is a Heartbeat in the BizTalk? Why is it implemented? Can we change the heartbeat interval?
- Heartbeat will check if the all the host in BizTalk Group is running properly or not. I believe it is implemented internally inside BizTalk Engine using BizTalk MsgBoxDB. I don’t think we can change the HeartBeat Interval.
- Check MsgBoxDb: table – dbo.ProcessHeartbeats and few sp’s associated with it.
- https://msdn.microsoft.com/en-us/library/aa561569(v=bts.20).aspx
- https://blogs.msdn.microsoft.com/asiatech/2009/11/25/how-does-biztalk-detect-if-a-host-instance-is-dead-in-bts2k6-2k6r2-and-2k9/
- How does this interval influence the processes in the MessageBox?
- What is the difference, if any, between the ESB and the Broker conceptions?
- How to set up a custom name for a dynamic send port?
- What kind of the dynamic ports are existed? Are there dynamic send ports? Are there dynamic receive ports? Why is it so?
- Can we use several promoted property schemas to promote properties of one schema?
BizTalk Random Interview Questions – Part 2
BizTalk Random Interview Questions – Part 2
- How do Filters of the Send Ports and Send Port Groups work together? Say, a Send Port belongs to a Send Port Group. If this Send Port and this Send Port Group have the same Filter expression, does it create two subscriptions and, as a result, two messages are sent to the Send Port?
- The group has a subscription and any messages coming to the group will go to the send ports in the group, regardless of their filters. The send ports may get messages directly based on their own filters. It is possible that your send port will get the message twice, once from the group filter and once from its own filter.
- http://mitchvanhelden.blogspot.in/2012/02/biztalk-filters-on-send-ports-and-send.html
- Why do we need a special Property schema for Promoted properties? What is the purpose of this schema? Distinguished properties do not use this kind of schema. Why so?
- To manually promote a property, a property schema must be created with the elements that will hold the promoted property values. To create a property schema, you need to add a new item in your BizTalk solution, and chose Property Schema as the type of file. Once all the elements are created in the property schema, you associate the property schema with the message’s schema.
- https://sandroaspbiztalkblog.wordpress.com/2009/03/28/distinguished-fields-vs-promoted-properties/
- https://blogs.msdn.microsoft.com/scottwoo/2003/11/07/distinguished-vs-promoted-properties/
- Properties of some BizTalk artifacts have a Tracking option. Right-click menu of some BizTalk artifacts has the “Tracking…” command. Why there is such a difference between artifacts? Why Maps do not have any Tracking options? Why Schemas have only Tracking property? Why Send Port Groups do not have any Tracking options? Why Receive Locations do not have any Tracking options? Why BizTalk Applications do not have any Tracking options?
- Maps – No Tracking
- Schemas – Tracking
- Send Port Groups – Tracking
- Receive Locations – No Tracking
- BizTalk Applications – No Tracking
- https://msdn.microsoft.com/en-us/library/jj684554.aspx
- http://social.technet.microsoft.com/wiki/contents/articles/18860.biztalk-server-tracking-dependencies-between-artifacts.aspx
- https://msdn.microsoft.com/en-us/library/aa559964.aspx
- http://social.technet.microsoft.com/wiki/contents/articles/19613.biztalk-server-tracking-data-using-biztalk-admin-console.aspx
- Maps, BizTalk Applications, Receive Locations does not have tracking options, since Schemas are tracked. You can also use tracking in artifacts like Schema, Orchestration, Send port etc.
- When a BizTalk Assembly is deployed, is it stored in the BizTalk database or is just a reference to it stored there?
- A reference for BizTalk Assembly will be stored in BizTalk Database especially ManagementDB.
- Why a BizTalk Assembly must be installed into GAC? Why deploying it to BizTalk database is not enough?
- At runtime, .Net framework will be looking for the BizTalk Assembly in the GAC.
- Can you describe at least three scenarios where smart Orchestration Engine finds the errors in the messages patterns at design time (while build a BizTalk project)?
- A Host has an “Authentication Trusted” option. What does it mean? What implication it has to the message processing? How do we have to use it / don’t use?
- Authentications Trusted allows the Identity of the submitting user to be exposed to downstream processes but it does not work like Impersonation in IIS or anything similar so the actual authentication is not preserved.
- As a message flows from one process to another, it is often necessary to pass the identity of the original sender of the message to downstream processes for authorization, party resolution, and business logic relating to the sender. However, enabling all hosts to flow this information without some type of security or trust mechanism would greatly increase the need to verify that all user objects and code (for example, orchestrations, adapters, pipeline components, functoids) are trustworthy.
- To provide the means to differentiate the level of trust for user objects and code, BizTalk Server provides Authentication Trust as a property of hosts. When the MessageBox database receives a message from a host that has not been set as authentication trusted, the MessageBox database overwrites the PID with the guest ID, and overwrites the SSID with the service account that the host instance is running as. When a host is marked as authentication trusted, BizTalk enables the host to specify any sender SID (SSID) and any party ID (PID) on messages that it queues to the MessageBox database.
- https://social.msdn.microsoft.com/Forums/en-US/b2a72099-000f-4687-8a60-76a357e212dd/authentication-trusted-property-on-biztalkhost-biztalkisolatedhost?forum=biztalkgeneral
- https://msdn.microsoft.com/en-us/library/aa562062.aspx
- Could we create an XLANGMessage in the C#/VB code? Please, provide code.
- We can use an XmlDocument class as a Message type for receiving the untyped Xml messages in Orchestration. What .NET classes do we have to use for receiving the untyped text or binary messages in Orchestration. Why so?
- You can use System.String for untyped text or binary messages in Orchestration. You can have Orchestration variable with other data types, but messages has to related to Schema or else it has to be xml document or System.String
- Is the Publish-Subscribe BizTalk Engine API well defined? Where? If not, why so?
- Does the BizTalk use the strategy “First received, first processed” or “First received, last processed” of “First received, first processed, first sent” of something else? Why so?
Describe scenarios, when this strategy works better, and scenarios, when this strategy works badly.
- Messages are processed in the order they are received. BizTalk Server supports this sequential first-in first-out (FIFO) message processing pattern.
- http://social.technet.microsoft.com/wiki/contents/articles/12887.biztalk-server-end-to-end-ordered-message-processing-options.aspx
- https://seroter.wordpress.com/2007/05/07/testing-ordered-delivery-scenarios-with-biztalk/
- http://geekswithblogs.net/LeonidGaneline/archive/2012/01/11/biztalk-ordered-delivery.aspx
- Are Orchestration Instances processed in order? Why so? Describe scenarios.
- Orchestration Instances process doesn’t follow any order. In order to process in order, then you have to use singleton message pattern using sequential convoy.
- http://aspalliance.com/articleViewer.aspx?aId=1208&pId=-1
- http://www.moustafarefaat.com/MoustafaPWS/singletonorchestrations.aspx
- This can be done by throttling settings in BizTalk Group/Host Instances.
- Orchestration Throttling -> Dehydration Behavior and Time Based Settings.
- https://msdn.microsoft.com/en-us/library/aa995563(BTS.70).aspx
- https://mohammedatef.wordpress.com/2009/06/20/biztalk-2009-orchestration-dehydration-and-persistence-points/
- Is it possible to force the Hydration / Dehydration of the Orchestration instances, Messaging instances? How to do this? Why do this?
- In what scenarios will we use the Compensations in Orchestrations? Why so?
- Compensation is a way to correct or undo logical piece of work that have previously committed. This is normally used for long-running transactions, as there is no other way to roll back things that have happened within the transaction but can also be used for atomic transactions.
- Compensation blocks can be added to any scope shape configured to be either long running or atomic. These compensation blocks will be executed in reverse order, following an exception being thrown within the orchestration. Compensation blocks can contain any combinations of orchestration shapes. To implement the compensation for long-running transaction to reverse the action do the following steps
- Place a Scope shape on to your long running orchestration
- Place the block of orchestration like Send Shape or the block you want to wrap in the scope
- Set it to Long Running from the upper right corner of the scope shape
- Right-click the top portion of the Scope shape and select New Compensation Block
from the context menu
- Place a block to reverse the action inside the compensation block like which defines the actions to reverse the transaction if another transaction fails.
- https://social.msdn.microsoft.com/Forums/en-US/595f75fd-05c4-48dc-a187-374f246e4966/what-is-compensation-in-biztalkhow-to-implement-it?forum=biztalkgeneral
- https://blogs.msdn.microsoft.com/richardbpi/2006/12/06/transactions-and-compensation-using-biztalk-server/
- http://geekswithblogs.net/LeonidGaneline/archive/2010/02/25/biztalk-compensation-model.aspx
- http://geekswithblogs.net/cyoung/archive/2006/12/06/100424.aspx
- The Atomic scopes in Orchestrations have a Retry feature. How does it work? Describe scenarios when it is used.
- Atomic scope retry feature is used in combination with RetryTransactionException.
- http://www.codeproject.com/Articles/32897/HOW-TO-Retry-Atomic-Scopes-using-RetryTransactionE
- http://biztalkerror.blogspot.in/2007/07/why-doesnt-my-atomic-transaction-retry.html
BizTalk Random Interview Questions – Part 1
BizTalk Random Interview Questions – Part 1
I am going to provide few Blog Post about BizTalk Interview Questions and Answers to those Question based on one my fellow blogger post.
- How does the Retry feature of the Send Port work? In what scenarios this feature is helpful, in what scenarios it is dangerous?
- Retry feature of the Send Port enables the BizTalk to resend the message again, if message reception of the receiver is failed at previous attempt.
- This feature enables BizTalk to retry after specified time interval and make sure it made few attempts before giving it up.
- Dangerous – Not able to think of a scenario, were it will be dangerous.
- Send ports have a “Backup Transport” but Receive ports do not have it. Why so?
- Sender of the message/file has more responsibility to communicate the message to the receiving party. Backup Transport enables BizTalk to try sending message to the Receiver incase Primary Transport is failed.
- Receive Port doesn’t have Backup Transport option, if something wrong with receive port, it got disabled. We can monitor our own environment.
- Send ports have a “Filter” but Receive ports do not have it. Why so?
- Send port is one of the subscriber mechanism, Receive Port is the Publisher.
- Send port use filters to check on the context of the message and based on that it will subscribe to appropriate messages.
- Send ports have the “Maps” and “Transport”; Receive ports have “Maps” but “Transport” is associated with Receive Locations. Why so?
- Primary reason for Receive Location is to get input messages using wide range of adapters/protocols.
- Once message are received, it has to transformed into message type understand by the Business Process.
- What is the difference between “Send Port Group – Send Port” relation and “Receive Port – Receive Location” relation?
- Receive Locations have the Schedule parameters for date and time but Send Ports have the Schedule parameters only time. Why so?
- Can we create two Send Ports with the same URL? Can we create two Receive Locations with the same URL? Why so?
- Yes. Send port can share same URL.
- No. Receive Port should be unique.
- Filter expression for the Send Port is defined at run-time, but Filter expression for the Orchestrations is defined only at design-time. Why so?
- Orchestration is to do certain predefined process on the incoming messages, that’s why filters for Orchestration is defined at designtime.
- Sendport does not have to validate the message and it can be simple pass through.
- Based on the message context send port subscribe to the message at runtime.
- We created a custom pipeline component. Do we have to place it into the “<BizTalkFolder>\Pipeline Component” or install it to GAC or both?
- At design time it has to be in “<BizTalkFolder>\Pipeline Component” folder. May be in Development Environment / QA to use it for debugging.
- For production environment it has to be in GAC.
- How does an Orchestration make sure the message was sent successfully by one-way Send port?
- This is done using Delivery Notification Property of the Send Port and subsequently verified in the orchestration after send shape about the BTS.AckReceived.
- http://kentweare.blogspot.in/2007/11/biztalk-delivery-notification.html
- http://geekswithblogs.net/SERivas/archive/2013/11/11/biztalk-routing-failure-on-delivery-notifications.aspx
- How does it changed for a two-way Send port?
- This again verified using the response received from Two-way Send Port.
- What is it the “CodeList Database” property of a Schema? How to use it?
- Use the CodeList Database property to specify the full path of the Microsoft Access database used for code lists. This database allows for easier configuration of enumerations associated with type derivations by restriction, especially when the enumeration choices are in the form of codes that are not particularly intuitive.
- https://msdn.microsoft.com/en-in/library/aa559801.aspx
- http://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalksyn/archive/2008/01/28/using-the-codelist-feature-with-schemas.aspx
- What is the “Property Schema Base” property of the Property schema element? It has the values: MessageDataProperyBase, MessageContextPropertyBase, and PartContextPropertyBase. What is the difference between using MessageDataProperyBase and MessageContextPropertyBase?
- You can use the Property Schema Base property to set whether the Promoted Property refer to the value of the Message Element Data and custom context value set along with the message.
- MessageContextPropertyBase is user defined context property which will be assigned along with the Original message.
- MessageDataPropertyBase is a value that can available in the one of the data element of the message itself.
- We bind an Orchestration with a Send Port. What does it do regarding to the subscription?
- This creates a tightly coupled design patterns, and it kind of override the subscription feature of the Send Port. Filter expression of the send port will be empty in this case.
- We bind an Orchestration with a Receive Port. What does it do regarding to the subscription?
- This creates a tightly coupled design pattern, and it kind of override/force publishers feature of the Receive port and subscriber feature of the Orchestration.
- Filter expression of the Receive Shape will not have any values or conditions.
BizTalk Schema Versioning – Links
http://blogs.msdn.com/b/richardbpi/archive/2006/12/19/versioning-strategy-for-biztalk-assemblies.aspx?Redirected=true
http://masteringbiztalkserver.wordpress.com/2011/03/02/schema-versioning-in-biztalk-server/
http://smashbts.blogspot.in/2011/01/biztalk-versioning-strategy-14.html
http://btsguru.blogspot.in/2011/06/biztalk-schema-versioning.html
BizTalk Schema Inheritance Practices / Examples
http://geekswithblogs.net/LeonidGaneline/archive/2012/12/24/biztalk-internals-schema-uniqueness-rule.aspx
http://blog.sabratech.co.uk/2008/12/what-i-hadnt-appreciated-about-schema.html
http://lwang00.wordpress.com/2007/10/13/biztalk-naming-and-versioning/
http://www.techtalkz.com/microsoft-biztalk-server/162464-schema-versioning-best-practices.html
BizTalk Logging – Links
http://www.biztalkgurus.com/biztalk_server/biztalk_2010/f/37/p/19295/35407.aspx
http://geekswithblogs.net/VishnuTiwariBlog/archive/2011/04/05/displaying-messages-and-its-flow-from-biztalk-message-tracking-databases.aspx
http://thinkintegration.wordpress.com/2012/01/11/choosing-the-logging-framework-for-biztalk-solutions/
http://blogs.msdn.com/b/appfabriccat/archive/2010/05/11/best-practices-for-instrumenting-high-performance-biztalk-solutions.aspx
http://blogs.msdn.com/b/asgisv/archive/2010/05/11/best-practices-for-instrumenting-high-performance-biztalk-solutions.aspx
http://btsloggingeventsinbi.codeplex.com/
http://www.tfabraham.com/BTDFDocs/V5_0/DeploymentFrameworkForBizTalkDocs.html?UsingLog4Net.html
http://shoaibfaruq.wordpress.com/2012/10/16/biztalk-2010-enterprise-library-4-1-logging-to-text-file/
http://vijaymodi.wordpress.com/2008/05/17/biztalk-log-entry-using-microsoft-practice-enterprise-library-in-net-assembly-call-net-assembly-using-biztalk-orchestration-expression-shape/
http://vijaymodi.wordpress.com/about/
BizTalkGrinch Sandbox – Advanced Log strategies (ETW–DBGV – Log4net)
http://biztalkhouse.blogspot.in/2010/11/biztalk-and-logging-with-log4net.html
BizTalk Exception Handling – Links
http://www.codeproject.com/Articles/13576/A-developers-guide-to-handling-exceptions-in-BizTa
http://blogs.msdn.com/b/biztalknotes/archive/2013/02/12/how-to-handle-fault-message-in-biztalk-server.aspx
http://code.msdn.microsoft.com/windowsdesktop/Handling-Exceptions-inside-99159946
http://msdn.microsoft.com/en-us/library/aa578516.aspx
Exception handling in BizTalk orchestrations explained
http://social.msdn.microsoft.com/Forums/en-US/39a0cfa9-29d9-49cf-9aee-ecc65c72ca01/custom-exception-handling-in-biztalk-receive-pipeline?forum=biztalkgeneral
http://sandroaspbiztalkblog.wordpress.com/2009/10/26/biztalk-training-handling-exceptions-inside-orchestration/
http://dave-sampson.blogspot.in/2011/07/biztalk-esb-toolkit-21-exception.html
http://usmanshaheen.wordpress.com/2012/09/17/biztalk-esb-exception-handling-in-orchestration/
http://jhelatissimo.wordpress.com/2012/10/17/exception-handling-on-biztalk-orchestration-published-as-web-service/
BizTalk Persistance Points – Links
http://blogs.msdn.com/b/sanket/archive/2006/11/12/understanding-persistence-points-in-biztalk-orchestration.aspx?Redirected=true
http://msdn.microsoft.com/en-us/library/aa547090.aspx
http://msdn.microsoft.com/en-us/library/aa559440.aspx
http://geekswithblogs.net/HenriKluijtmans/archive/2009/12/18/persistence-points-in-biztalk.aspx
http://sandroaspbiztalkblog.wordpress.com/2009/10/23/biztalk-orchestration-%E2%80%93-understanding-persistence-points/
http://mohammedatef.wordpress.com/2009/06/20/biztalk-2009-orchestration-dehydration-and-persistence-points/
http://www.codeproject.com/Articles/15232/Persistence-Point-in-BizTalk-2004
http://biztalkhotrod.com/CalledOrchPersist.aspx
http://masteringbiztalkserver.wordpress.com/2011/02/23/how-to-find-the-number-of-persistence-points-used-in-the-application/
http://lakshmiworld.blogspot.in/2006/12/identify-persistence-points.html
BizTalk Interview Questions
BizTalk Interview Questions http://geekswithblogs.net/LeonidGaneline/archive/2007/07/03/113663.aspx
http://geekswithblogs.net/LeonidGaneline/archive/2012/01/10/biztalk-advanced-questions.aspx
http://geekswithblogs.net/LeonidGaneline/archive/2006/05/22/79267.aspx
http://geekswithblogs.net/LeonidGaneline/archive/2006/02/07/68558.aspx
http://gecheverry.blogspot.in/2005/12/biztalk-server-interview-answers.html
http://geekswithblogs.net/sthomas/archive/2005/12/29/64404.aspx
http://geekswithblogs.net/sthomas/archive/2005/12/13/63077.aspx
http://gecheverry.blogspot.in/2005/12/biztalk-server-interview-answers.html
http://www.codeproject.com/Articles/13814/BizTalk-2004-2006-Interview-questions-that-every-d
http://biztalkdevloper.wordpress.com/2012/10/12/biztalk-interview-questions/
http://usmanshaheen.wordpress.com/2009/07/19/biztalk-interview-questions/
http://vikashkumarjikefunde.blogspot.in/2010/01/biztalk-interview-questions-compiled.html