Я пытаюсь выяснить одну проблему, но я изо всех сил пытаюсь найти жизнеспособное решение. Вопрос скорее в теории, чем в реализации. Мне просто нужны другие точки зрения.
Проблема в:
Мы используем серверы приложений Navision (NAS), которые выполняют какую-то бизнес-логику, репликации, обработку XML и прочее через Reports и Codeunits. Иногда некоторые из этих заданий застревают в цикле или в тупике и т. д.
Идеальным решением было бы исправить проблемы в модулях Codeunits и Reports, чтобы они могли решать свои собственные проблемы; Но это не вариант. У меня действительно нет доступа к коду этих заданий.
Я пытаюсь найти способ хотя бы частично автоматизировать обнаружение этих проблем. Единственный способ, который я могу придумать, - это сохранить некоторую статистику потребления ресурсов (ЦП, ЦП SQL и ввод-вывод, возможно, время простоя) для каждого задания и сравнить ее во время следующего запуска. Если будут какие-то серьезные различия, это вызовет тревогу.
Если работа, которая занимает 4 часа, зависает в начале процесса, я хотел бы знать, что в разумные сроки, а не через 6 часов, когда это очевидно.
У меня есть полный доступ к SQL-серверу, NAS-серверу и его процессу. Я использую С# с .NET 4
Спасибо.