BAM – Why are the times for my tracking data in the BAM portal incorrect?

  • Sandro Pereira
  • Aug 18, 2010
  • 2 min read

BAM captures milestones for objects derived from Microsoft.BizTalk.Bam.EventObservation.EventStream in Coordinated Universal Time (UTC) format. When you send dates/times to BAM using the APIs, they are received in the format sent with no conversion to UTC format.

📝 One-Minute Brief

If your BAM Portal shows incorrect timestamps (e.g., being off by several hours), it is likely due to how BizTalk stores data. BizTalk Server stores all tracking information in the BAM databases in Coordinated Universal Time (UTC). While the BAM Portal attempts to convert this to your local browser time, discrepancies often arise due to server-side time zone settings or how the BAM views are defined. The solution involves verifying the time zone of the SQL Server hosting the BAM databases and understanding that the “raw” data will always be in UTC.

One of the most common complaints from business users using the BizTalk BAM Portal is: “The message arrived at 10:00 AM, but the portal says it was 2:00 PM. Why is the time wrong?”

The short answer is: It isn’t wrong; it’s just in UTC.

If you use local time, the times will not be converted to UTC format and will be out of sequence relative to UTC times that are recorded.

To solve this problem, modify your data to make it conform to UTC format.

Cause

BizTalk Server is designed for global enterprises. To ensure that events happening in London, New York, and Tokyo can be sequenced correctly, BizTalk stores all tracking data in the BAM databases using Coordinated Universal Time (UTC).

BAM API Sample

Here is a sample of the BAM API to ensure the timestamp is in UTC.

Global.es.BeginActivity("BAMApiPo",poid.ToString());
 
 Global.es.UpdateActivity("BAMApiPo",poid.ToString(),
    "Received",DateTime.UtcNow,
    "Product",xePO.SelectSingleNode("Product").InnerText,
    "Amount",xePO.SelectSingleNode("Price").InnerText);
 
 Global.es.UpdateActivity("BAMApiPo",poid.ToString(),
    "Packaged",DateTime.UtcNow);
 
 Global.es.EndActivity("BAMApiPo",poid.ToString());
Thanks for Buying me a coffe
Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

Leave a Reply

Your email address will not be published. Required fields are marked *

The Ultimate Cloud
Management Platform for Azure

Supercharge your Azure Cost Saving

Learn More
Turbo360 Widget

Back to Top