【问题标题】:What is the SQL query equivalent to the BizTalk Admin Console "Completed Instances"?什么是等效于 BizTalk 管理控制台“已完成实例”的 SQL 查询?
【发布时间】:2026-02-14 19:00:01
【问题描述】:

什么是等效于 BizTalk 管理控制台“已完成实例”的 SQL 查询?

我想获取已完成实例的各种摘要,例如按服务名称分组,但“已完成实例”选项卡没有“分组依据”选项

我可以直接查询SQL表吗?

如果是这样,我应该查看哪些表格?

【问题讨论】:

    标签: sql sql-server biztalk biztalk-2010


    【解决方案1】:

    是的,你可以。所需的 BizTalk DDBB 是 [BizTalkDTADb],包含所有执行的表是 [dta_ServiceInstances]。要获取服务的名称并生成有用的报告,还需要表 [dta_Services]。我使用此查询的目的与您询问的目的相同,但同时获得了所有正确和错误的实例:

    SELECT [nServiceId] OrchID, [strServiceName] OrchName, 
      CASE WHEN HRESULT = 0 THEN 'OK' ELSE 'ERROR' END AS [Status], 
      COUNT([nServiceInstanceId]) NumberOfInstances
    FROM [BizTalkDTADb].[dbo].[dta_ServiceInstances] SI WITH (NOLOCK)
    INNER JOIN [BizTalkDTADb].[dbo].[dta_Services] S
      ON SI.[uidServiceId] = S.[uidServiceId]
    WHERE S.[strServiceType] = 'Orchestration' AND SI.[dtStartTime] > '20161101'
    GROUP BY [strServiceName],[nServiceId],
      CASE WHEN HRESULT = 0 THEN 'OK' ELSE 'ERROR' END 
    ORDER BY 2, 3 DESC
    

    如果你只想要成功的,你应该在'where'子句中添加“HRESULT = 0”并删除'select'和'group by'中的CASE语句。而且我在where子句中也有日期,通常我只需要看到最后几天。

    编辑:查询在 BizTalk 2013 中工作,我现在没有安装 2010,但我想它是一样的。

    【讨论】: