1

Resolved

Date filter does not work on called orchestrations

description

Even though the Orchestration Profiler asks the user for the date/time range to load tracking data for, this range is not taken into account for orchestrations invoked via a Call shape. As a result, all events in the Tracking database are loaded. This makes it impossible to profile called orchestrations for a specific performance test run, defeating the usefulness of the tool.
 
The reason for this is erroneous SQL stored in the resources of the Microsoft.Sdc.BizTalkOM assembly. The query that loads called orchestration shapes does not include the date range in the WHERE clause:
 
-- begin quote --
 
SELECT @uidSvcId = uidServiceId FROM dta_Services s
WHERE s.strServiceName = @svcName AND s.strAssemblyName = @svcAsm
 
INSERT INTO @data
SELECT distinct
t.uidServiceInstanceId
,t.vtInstructionId 
,t.dtBeginTimeStamp
,t.dtEndTimeStamp
 
,Duration = 
case 
    when (DATEDIFF(second, t.dtBeginTimeStamp, t.dtEndTimeStamp) > 214748) 
    then 2147483000
        else DATEDIFF(millisecond, t.dtBeginTimeStamp, t.dtEndTimeStamp) 
end
 
FROM
dta_DebugTrace t 
WITH (READPAST)
INNER JOIN dta_CallChain cc ON
cc.uidServiceInstanceId = t.uidServiceInstanceId
WHERE uidCalleesServiceId = @uidSvcId
 
-- end quote --
 
Unfortunately, the source for the BizTalkOM assembly is not included with the Orchestration Profiler, so it is impossible to patch the bug at the client site either.

comments