TPE case files

Note: This information applies to Tracking Profile Editor in BizTalk Server 2006

There are situations where TPE doesn't behave as expected. The product documentation provides all factual details but does little justice to resolving common issues. This post is directed at resolving common BAM cases that center around TPE.The cases listed are the ones that customers run into most often. If there is one that you are battling with and would like see the same appear here, let me know.

The case of multiple rows in the activity table with holes/null for values when a single message is processed by BTS solution.

Presence of multiple rows in the activity table when you expect a single row containing all the BAM data suggests that you have mapped the business data of interest correctly, however, your continuations are setup incorrectly. If you track BAM data from multiple BizTalk schedules, e.g., ports and orchestrations, then you would need to setup continuations between these schedules. See product documentation on how to do this. See my blog post on TPE and multiple continuations.

The case of orphaned Tracking profiles

Tracking profiles are associated with an activity. If an activity is undeployed, the associated tracking profiles can become orphaned, which means they are no longer associated with an activity. In such a situation, if you pump a message through your solution, you will notice an error in the event log saying that TDDS ran into some problem (or something to that effect). So, the tracking profile exists but there is no associated activity definition deployed. There is no way to persist the BAM data. This is a well documented scenario. See product documentation on how to remedy this common ill.

The error message are

<Event log entry>

Event Type: Error
Event Source: BAM EventBus Service
Event Category: None
Event ID: 6
Date:  **/**/****
Time:  *:**:** **
User:  N/A
Computer: **********
Description:
Execute event error. Error(s) occurred while executing events, see TDDS_FailedTrackingData table for more details.  SQLServer: **********, Database: BAMPrimaryImport.

For more information, see Help and Support Center at https://go.microsoft.com/fwlink/events.asp.

</Event log entry>

<TDDS_FailedTrackingData table entries>

Could not find stored procedure 'dbo.bam_********_PrimaryImport'.
TDDS failed to execute event. Could not find stored procedure 'dbo.bam_********_AddRelationship'.
TDDS failed to execute event. Could not find stored procedure 'dbo.bam_********_EnableContinuation'.
TDDS failed to execute event. Could not find stored procedure 'dbo.bam_********_PrimaryImport'.
TDDS failed to execute event. Parameter is not valid.

</TDDS_FailedTrackingData table entries>

The case of dangling records and uncompleted activity when interchangeID is used for continuations

InterchangeID is available from two sources. One is the message context property bag and other is the system context property bag. You work with the first one through "select event source"->"select messaging property" menu and the other via "select event source"->"select context property" menu->BTS.InterchangeID. Although the values that you will get from either source is the same, the way they are extracted are different.

Regardless of which one you use, you must be consistent in your usage. Stick to one source only.