Tuesday, June 2, 2020

Frequently Asked BizTalk Interview Questions for Experienced

1. What is the difference between Host and Host Instance.
BizTalk Host is a logical container where you can deploy BizTalk Services such as Orchestration, send and receive port, adapter handlers. BizTalk host instance are the physical container where the services run. 
BizTalk Host is like a class it defines properties which are global to all of its instances, whereas a Host Instance is a running process that actually does things. A host instance is responsible for creating the connection between your BizTalk service and BizTalk database. 
      There are two types of host instances.
  1.       In-Process host instances are Windows services and 
  2.       Isolated host instances are normally IIS application pool processes.
      We can also create our own isolated host instances.·            
      Hosts are also of two types,
  1.       In-Process hosts are used for services running inside the BizTalk, which can be managed using BizTalk admin. 
  2.       Isolated hosts are used for HTTP, asp.net processes which are potentially running outside the BizTalk services. 
      Therefore, first Host needs to be created then Host Instance. Unless the host instance is not created and started we   are not able to start with our BizTalk work.
·     Load balancing can be performed for BizTalk application by creating more no of hosts and also and then setting orchestrations and ports into different hosts.
      If we create more no of hosts then it will slow down system, thus the decision to create more host  should   be based on message traffic and real need of extra hosts. Also you can create only one host instance per host on one server.

2. Differentiate between Distinguished and Promoted Property.

Distinguished Property

Promoted Property

Only accessible within an orchestration. Not available for other BizTalk server artifacts such as receive location, send port, send port groups or other BizTalk utilities.  

These are accessible throughout all the BizTalk message life cycle i.e. inside orchestration, or from custom code, routing, pipelines. 

Do not have size limitation.

Size limitation up to 256 characters length.

Do not required to create property schema.

Property schema required.

Not persisted in the message box data base.

Persisted in the message box data base.

It is used as XPATH expression, which points to the appropriate XML data field in the schema.

It is a system-defined message context property or transport context property, or custom define property by making reference to schema fields from within a property schema. Properties are used in subscriptions and correlations.

Not use for tracking data in the BizTalk database.

Use  of tacking data in the BizTalk database

 It is light weight and cost is less.

It is publish in Message Box context and subscription tables, hence it has additional overhead.    


3. What is Host Throttling?
Sometimes the BizTalk server becomes slow and its performance goes down. Most of times this would be because of Host throttling.
The throttling mechanism moderates the workload of the host instance to ensure that the workload does not exceed the capacity of the host instance or any downstream host instances.
There are lot of scenarios because of which Host throttles. It can be because of Low Process Memory, High DB Size, high thread count etc. 

4. Is it possible to have no receive shape in orchestration?
A Receive shape can be used to start an orchestration. If you set the Activate property to True, the runtime engine will test an incoming message to see whether it is of the right type and, if a filter has been applied, whether the filter expression is satisfied or not. If the criteria for receipt of the message are met, the runtime engine creates and runs a new orchestration instance, and the Receive shape receives the message.
If the Activate property of a Receive shape is set to True, the Receive must be the first action in the orchestration.
If the Activate property is set to False on all Receive shapes, your orchestration must be called by another orchestration in order to run.

5. What is Enlist, Unenlist, Stat, Stop, Enable, Disable states on BizTalk ports and orchestration? 
Subscribers i.e. Send port and orchestration can be started, stopped, Enlisted or Unenlisted, whereas publishers like receive port can be enabled or disabled.
  • When subscriber is started that means it is enlisted also. Messages flows smoothly though Message Box as Message Box creates subscription for particular subscriberWhen subscriber is started we can either stop or unenlist it.
  • When subscriber is stopped that means it is enlisted also. Messages comes in the Message Box for the particular subscriber. But, it won't flow, it will stay inside Message Box with Suspended Resumable state until subscriber is started.  When subscriber is stopped we can either start or unenlist it.
  • Unenlisted state of subscriber means it is stopped also. Subscriber is not available, hence Message Box do not create subscription  for subscriber. It will throw error like "the publised message could not be routed because no subscribers were found".  When subscriber is unenlisted we can either start or enlist it.
Based on above conditions subscribers can be started, stopped and enlisted or unenlisted. 

6. What is Orchestration Dehydration and Rehydration Process? 
Dehydration is the process when the orchestration is been idle for a some time, the orchestration engine will save the state information of the instance and free up memory resources.
Rehydration is when a message is received or else when a timeout has expired, the orchestration engine can be automatically triggered to rehydrate the instance – it is that point that the orchestration engine loads the saved instance of the orchestration into memory, restores the state and runs it’s from the point it left off.

7. Why BizTalk Assemblies are Not Removed from the GAC upon Uninstall?
Assemblies registered to the Global Assembly Cache are considered as shared resources. Therefore, for safety reasons, BizTalk assemblies are not removed from the GAC upon uninstall. Uninstalling this shared BizTalk application would break all other applications that depend on it.
e.g. suppose a BizTalk pipeline is being used by more than one applications. In that case the BizTalk pipeline must be part of a separate BizTalk application. Otherwise, if we uninstall it the other depending applications won't  perform. 

8. What is BAM and whats the benefits of using it?
Business Activity Monitoring (BAM) is a module in BizTalk that captures business data and process milestones and helps in business decision making. BAM is used to monitor business milestones and key metrics in near real-time throughout a process in BizTalk.
By using BI tools to derive up-to-date metrics and key performance indicators from the BAM databases, users can forecast process trends and monitor processes in real-time. BAM also provides a mechanism to alert users to situations that require their intervention to prevent undesirable outcome or to encourage a beneficial result.

9. Differentiate between Atomic and long running transactions in BizTalk.

Atomic Transaction

Long Running Transaction

It takes short time to execute (typically seconds).

It can take more time to execute (might span hours or days).

These transactions satisfy all ACID (Atomic, Consistent, Isolated, and Durable) attributes, and thus need to acquire data locks on resource managers such as SQL Server.

These transactions supports only Consistency and Durability attributes. It must not acquire data locks because of severe performance implications for process completion.

If all operations within a transaction scope succeed, then the transactions is committed automatically, else if any operation fails the entire transaction is rolled back.

Committing or rolling back of transaction must be handled explicitly by developer in the code. Here transaction manager is not present.

It supports calling of Non-Serializable dot net classes.

It does not supports for Non-Serializable dot net classes.

Atomic transaction does not support nesting of transactions.

Long running transaction supports nesting of transactions.

It can contain transaction type – none

It can contain transaction type – long running and atomic.

Synchronized property is always true.

Synchronized property can be true or false.

Operations commit or roll back happens together.

Operations commit or roll back happens independently.

Atomic transaction can only have a compensation block, and a scope configured with the transaction type none can only have an Exception block.

Long running transaction scope can have both Exception block and compensation block.

MSDTC- Microsoft Distributed Transaction Co-ordination is present as transaction manager.

Transaction manager not required.

Acquires data locks on Resource Manager e.g. SQL Server.

Does not acquires any data locks.





No comments: