BizTalk Server Tip #3: BAM Lightweight Tracking

|  Posted: February 5, 2014  |  Categories: BizTalk Server BizTalk360

biztalk tips

Use BAM as a lightweight tracking mechanism, by disabling default tracking and enabling BAM activities on a message flow you can reduce the performance impact of tracking. BizTalk default tracking takes an all or nothing approach and using BAM you can decide exactly what needs to be tracked.

When BizTalk default tracking is enabled BizTalk is collecting information on a lot of different places. All service instances are being tracked for start and finish, orchestration specifically are being also tracked for message send and receive as well as shape start and end. This amount of tracking is considerable and can be increased by activating message body tracking or promoted properties tracking. And while you have the option to disable this type of tracking you don’t have an easy way to control how extensive its.

Using BAM to do tracking gives you the opportunity to track exactly what you need, you can define your tracking schema (activity) and what you map to be tracked (tracking profile). The BAM Infrastructure also give you the ability to define your purging and partitioning criteria allowing you to control how much data you retain and also OLAP cubes can be created to better analyze the tracking data. Read more on How to replace Tracking with BAM in BizTalk.

biztalk360 latest version

Author: Ricardo Torre

Head of Technical Pre-Sales & Product Strategist at BizTalk360, an enterprise software that acts as an all-in-one solution for better administration, operation, support and monitoring of Microsoft BizTalk Server environments.

  • Mikael Sand

    This is a thing I’ve been thinking about for some time. How can BAM tracking have less impact than the standard DTA tracking? I mean they basically works in the same way and use the same host (if you have a tracking host configured). Not really doubting you but is BAM + turned of standard tracking reallt better and more efficient than simple DTA tracking? Especially if you consider that BAM has to be configured, scheduled. DTA on the other hand is configured out of the box.
    Is it really worth the trouble?

    • Ricardo Torre

      Hi Mikael,

      I have seen that being used a few times to that effect and it can be effective due to a multitude of factors, when you do DTA tracking you have little control on what is being tracked or not. Do you want to know when that particular shape is happening? or what is the value of a particular field in that same shape? With default tracking you will enable shape level tracking for that Orchestration and all shapes within it, and you will probably enable message body tracking to know the content of the message in a particular stage.

      With BAM you can connect to the same built in optimizations but be very specific of what you want to track so that the impact of tracking is much less. If you think about tracking the exact same things with BAM as with DTA tracking then I see no point in using BAM, but if you want to make sure the impact of tracking is minimal you can only achieve it with BAM. I have seen tests showing 30 to 40% improvement after disabling default tracking which is massive while adding very specific BAM tracking (sometimes using the BAM API with direct event stream to the BAMPrimaryImport) can have minimal impact. I have seen cases where the impact was 10% but these are not very scientific tests.

      And regarding the cost, BAM will have development cost while and DTA tracking not, if you are looking for high throughput and low latency it might be worth to invest in optimizing the impact of tracking.

      Let me know your thoughts on this.

      Ricardo Torre

      • Leonid Ganeline

        Hmm…

        You can control the tracking on different artifacts on different level. Tracking is not all or nothing. It is pretty flexible.

        Moreover, tracking is better for developing and debugging, because you don’t have develop additional artifacts and don’t have to add something to the run-time parts. By implementing BAM “tracking” you have to do a lot of additional work in development, deployment, operations. BAM is not flexible it terms, if you want to change tracking profile, you have to remove all previous related BAM data or do some manual data transfer, which is not simple. BAM requires a special development skills and not easy in learning. BAM is implemented as one more user requirement, it can hardly be used as the development instrument.

        I would consider a tracking as the lightweight BAM implementation but not the vice verse.

        Considering the contemporary tools with the same purpose as BizTalk Server BAM, I could say, BizTalk Server BAM has its Const. Its purpose is definitely not for tracking. BizTalk tracking also is not the best in its class, but using the BAM instead of BizTalk tracking is not a good idea in the most cases, IMHO.

  • Guest

    Hi Mikael,

    I have seen that being used a few times to that effect and it can be effective due to a multitude of factors, when you do DTA tracking you have little control on what is being tracked or not. Do you want to know when that particular shape is happening? or what is the value of a particular field in that same shape? With default tracking you will enable shape level tracking for that Orchestration and all shapes within it, and you will probably enable message body tracking to know the content of the message in a particular stage.

    With BAM you can connect to the same built in optimizations but be very specific of what you want to track so that the impact of tracking is much less. If you think about tracking the exact same things with BAM as with DTA tracking then I see no point in using BAM, but if you want to make sure the impact of tracking is minimal you can only achieve it with BAM. I have seen tests showing 30 to 40% improvement after disabling default tracking which is massive while adding very specific BAM tracking (sometimes using the BAM API with direct event stream to the BAMPrimaryImport) can have minimal impact. I have seen cases where the impact was 10% but these are not very scientific tests.

    And regarding the cost, BAM will have development cost while and DTA tracking not, if you are looking for high throughput and low latency it might be worth to invest in optimizing the impact of tracking.

    Let me know your thoughts on this.

    Ricardo

One Platform Operations, Monitoring and Analytics Software
BizTalk360

microsoft biztalk

Learn more

Over 500 customers across 30+ countries depend on BizTalk360

ServiceBus360

Azure service bus

Learn more

Start managing your Azure Service Bus namespaces in minutes

One Platform - Operations, Monitoring and Analytics Software
BizTalk360

microsoft biztalk

Learn more

Over 500 customers across 30+ countries depend on BizTalk360

One Platform - Operations, Monitoring and Analytics Software
ServiceBus360

Azure service bus

Learn more

Start managing your Azure Service Bus namespaces in minutes

Back to Top