监视 biztalk 服务器(biztalkmgmtdb)SQL 服务器代理作业在第 2 步失败 - 第 2 部分

Monitor biztalk server(biztalkmgmtdb) SQL Server Agent job failed on step 2 - Part2

请通过:Monitor biztalk server(biztalkmgmtdb) sql agent job failed on step 2 - Part1 详细了解这个问题是如何产生的。

我们如何防止引用计数小于 0、没有来自 BizTalkMsgBoxDb 的引用计数和来自 BizTalkDTADb 的孤立 DTA 服务实例的消息?

通常我需要在我的环境中经常 运行 BHM 来清理不一致,所以当 SQL 服务器代理作业失败时,是否有定期执行的好习惯。

首先,我从不运行监控BizTalk Server。更喜欢定期 运行 BHM。

如果您遇到孤立消息的堆积,那么这些工作不是您应该查看的。这是一个允许这种情况发生的应用程序。

您可以在 SQL 中使用查询来查找 BizTalk 中是否有任何孤立的消息。 这些查询之一是这个:

select count(*) from [BizTalkDTAdb].[dbo].[dta_ServiceInstances] 
where dtEndTime is NULL and [uidServiceInstanceId] NOT IN 
  (SELECT [uidInstanceID] FROM [BizTalkMsgBoxDb].[dbo].[Instances] WITH (NOLOCK)
    UNION
    SELECT [StreamID]
    FROM [BizTalkMsgBoxDb].[dbo].[TrackingData] with (NOLOCK))

仅供参考:我在这里找到了这个查询:https://www.biztalkadmin.com/orphaned-messages-in-the-tracking-database/

它将列出孤立服务实例的数量。从 SELECT 语句中删除 COUNT 子句以获取列表。这可能会让您了解它们的来源以及如何更改您的实现以限制发生。

请注意,一些孤立的实例对您的 BizTalk 环境来说不是什么大问题。任何低于 2000 的都可以或多或少地被忽略。

重要提示:不要在不停止 BizTalk 主机实例的情况下运行任何清理查询,否则可能会违反您的支持协议。