Очередь бизнес процессов Docsvision Workflow

Узнать очередь БП запросом SQL

На одном из проектов возникла необходимость отслеживать очередь бизнесов процессов. Из существующих ресурсов, такую информацию можно получить лишь из журнала Docsvision Workflow, однако парсить текстовый журнал, который в процессе работы сервиса еще и записывается идея не лучшая. Принято решение разработать SQL запрос, который бы смог вычислять количество бизнес процессов, готовых к обработке.

SELECT Settings.ServiceID as ServerNode, Count(*) as 'Очередь процессов'
FROM [dvtable_{0EF6BCCA-7A09-4027-A3A2-D2EEECA1BF4D}] ProcInfo WITH(NOLOCK)
    JOIN  [dvtable_{B4A2559B-45FD-4ABA-919F-0F170CCDDB5D}] Settings  WITH(NOLOCK)
        ON Settings.ProcessedLBound <= ProcInfo.DateBeginMsecs AND 
	Settings.ProcessedUBound >= ProcInfo.DateBeginMsecs
    JOIN dvsys_instances tInst  WITH(NOLOCK)
        ON tInst.InstanceID = ProcInfo.InstanceID
WHERE ProcInfo.[ReadyToRun] = 1
        AND ProcInfo.[State] = 1
        AND ISNULL(tInst.[Deleted], 0) = 0
        AND ISNULL(tInst.[Template], 0) = 0
GROUP BY Settings.ServiceID
ORDER BY ServerNode;

Запрос можно оформить в виде джоба и выполнять с заданной периодичностью или вызывать запрос в сервисах мониторинга, а при высоких значениях отправлять уведомление администратору.


Опубликовано

в

от


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *