BizTalk : Important Points to remember | BizTalk Notes | BizTalk Cheat Sheet

Below are few quick references to the important points in BizTalk


1.BizTalk server is a .Net application built upon a set of SQL Server databases that enable it to be both reliable and scalable.

2.BizTalk is best where distributed systems and high volume systems are involved.

3.Goals of BizTalk Server
  • Increasing Reliability
  • Decoupling Systems
  • Providing Reuse
  • Reducing development time
  • Providing rich information to technical as well as business consumers
  • Improving administration
  • Providing a rich set of security options that can be controlled separately from the functionality of solution
4.A primary goal of publish subscribe is to move away from point to point and synchronous architectures and towards loosely coupled asynchronous interactions. We can make services or endpoints appear to be synchronous, but they are in fact Asynchronous.

5.Xpath is namespace aware, Omitting the namespace will cause xPath to use the default namespace.

6.BizTalk builds XPath statement using Xpath function called local-name , like in pipeline component configuration and property promotions.

7.Any data, regardless of type, is represented as a message within BizTalk.

8.You cannot use the BizTalk Mapper or Rules engine on binary formatted messages.

9.Processing in BizTalk is stream based and it is to avoid having the entire message into memory to prevent out of memory condition.

10.BizTalk processes messages in a forward-only streaming fashion.

11.Pipelines and maps use streaming to handle messages in BizTalk.

12.Hosting is a technique that BizTalk uses to load adapters, pipelines and orchestrations and are merely a definition, whereas host instances are represented as Windows Services on each configured BizTalk server.

13.Each host has following tables

  • Queue
  • Suspended Queue
  • Scheduled Queue
  • Message ref count log
  • Dequeued batched

14. For BizTalk solution, the loading  applications is always the BizTalk service: `btsntsvc.exe

15.The BizTalk application is a windows service that runs in the background on the server, like other services.

16.A server can have only one host instance for a given host. A host ,can have instances on many servers.

17.The BizTalk Message Agent, runs as part of BizTalk Host instance.
  • bts_insertproperty inserts message properties in MessageProps table
  • bts_findsubscriptions queries subscription and predicate tables
  • bts_insertmessage inserts messages and basic metadata in spool table and also calls int_insertpart which inserts raw body of message in parts table


18.File Adapter monitors a filesystem, after detecting file of interest it places lock on it and maintains the lock until the file has passed through the pipeline and has successfully written to the messagebox  and deletes from Filesystem. It can also be configured to rename the file while processing, on error it reverts.

19.File adapter supports only one way messaging, the soap adapter supports all communication patterns.

20.FTP protocol doesn't have any file locking support.You cannot have a host running the FTP adapter active on more than one BizTalk server.

21.All other adapters can run on the multiple servers to give high availability.

22.SMTP is the send only adapter and POP3 is a receive only adapter.

23.The HTTP specification specifies that as soon as the bits are successfully read by the destination system, an HTTP 200 response code will be returned.

24.Message context is used heavily by adapters and pipeline components to provide data on how the message was processed, transport information and so on.

25.Adapters that supports request-response messaging internally perform the correlation for you.

26.Adapter endpoints must be on a server with BizTalk runtime installed, but the BAM portal only needs the BAM portal components installed and thus can be on non-BizTalk server.

27.Adapters are the components that deal with the transportation of data, they are responsible for moving data from the wire into BizTalk into BizTalk engine whereas Pipelines are components that deal with the processing of the data, nothing to do with the mode of transport.

28.Adapters use SSO to store adapter configuration data and secure information such as usernames and password and other configuration information.

29.Send Adapters always run in-process to the BizTalk server service.

30.BizTalk server stores alll configuration data centrally in the single sign on (SSO) database.

31.SSO data is cached on each server within the SSO service process and thus avoids the penalty of having to lookup configuration data across the network each time it's needed.


32.Correlation type is list of context properties whereas correlation set contains these properties but with values assigned during use.

33.Active correlations are recorded in the convoy set instances table held in the BizTalk Messagebox.


34.Adapters and pipeline components program against the IBaseMessage interface whereas Orchestrations program against the abstract class XLangMessage.

35.IBaseMessage considers any/all data associated with the message as reference to a stream.

36.IProbeMessage interface enables pipeline components to choose whether they want to process message.

37.Messaging engine is processing pipelines on its threadpool.

38.An activating receive shape is the first shape in orchestration except listen and parallel shapes which can appear at the top of an orchestration and can contain two or more activating receive shapes.

39.Orchestrations configured with parameters to enable invocation from another orchestration can be exception to - First active Receive.

40.If the delay period specified on the delay shape is greater than the dehydration thresholds, then it will dehydrate.

41.Distinguished field should exist only once, non- repeating.

42.Property demotion works only for elements and not for attributes.

43.As promoted property and distinguished property play a role in decision making, only elements which do not repeat can be promoted or distinguished.

44.Delivery notification can be considered as adding a virtual Receive shape under your send shape.

45.You must limit or remove any operations that require the entire message to be loaded in memory.

46.CDATA elements cannot be streamed, they must be requested in the their entirely.

47.The number of messages published to the messagebox in a subbatch is determined when their associated data exceeds the large message fragment size.These subbatches are published using DTC transaction.

48.Messages and orchestrations are always processed within the scope of sql transaction, so whenever failure occurs the transaction (orchestration state or messages) would be rolled back to its last good state that was persisted in the BizTalk msgbox.

49.If you have send shape or transactional scope as the last shape in your orchestration, then orchestration engine will batch the persistence points.

50.Each message used within a BizTalk orchestration is represented as the underlying XLangMessageType.

51.XLANG doesn't support arrays, so you cannot leverage an array of BizTalk messages to store each message.

52.The separation enforced by the messagebox allows us to decouple message senders(publishers) from message consumers(Subscribers).

53.XMLDocument loads whole message in memory at once .

54.XMLDocument loads the content into the DOM(Document Object Model) for processing. This also allows modification of the document through its member.

55.BRE is a standard forward-inferencing rules engine that implements the Rete Algorithm.

56.BRE enables decision logic to be separated from process and message flows so that it can be managed and changed independently.


57.Executing rules against a large XML message is something to avoid as XML messages are asserted into the BRE memory using a TypedXmlDocument.

58.BizTalk server maintains a cache of policies in memory to avoid database roundtrips, thus improving performance.

59.Messages are of types
  • Messaging engine : IBaseMessage
  • Orchestration : XLang or XMLDocument

60.BizTalk uses the management database and the GAC to load solutions.

61.Overuse of orchestrations should be avoided because of trips to messagebox(message box hops).

62.Call orchestration works like a method or function call - it is a synchronous direct invocation.

63.Any Orchestration that does not have an activating receive shape as its first shape is considered callable.

64.Start orchestration is actually a specialized direct send.

65.When Orchestrations encounters exception, the original message is suspended.

66.BizTalk server uses an optimized forward only xpath reader to process these xpath expressions, you must ensure that expressions only use forward axes.

67.The document spec name is the mechanism BizTalk uses to identify a schema in the DocumentSpec table of the management database.

68.BizTalk adapter pack can be used from other .net applications.

69.If error occurs in a receive location when trying to pick up messages, the host instance will start to write error/warning entries in eventlog. At some point error threshold might be reached and the receive location will become disabled.

70.BizTalk maps can only take xml as input and also will always output xml.

71.%Sourcefilename% will only work if the original message was received through either a ftp or file adapter.

72.Retry option on port level is implicit way of handling exception in BizTalk

73. Rest exposes resources which represent DATA whereas SOAP exposes operations which represent logic.


If you have some points, feel free to share in comments section.



Learn More about BizTalk








1 Comments

If you have any suggestions or questions or want to share something then please drop a comment

  1. Rich content for any Biztalk developer, thanks for sharing

    ReplyDelete
Previous Post Next Post