2012-01-26 2 views
4

У меня много служб Windows (написанных на C# 4.0), которые с различными интервалами подключаются к базе данных и выполняют различные сложные задачи. Некоторые из этих задач возникают только каждые X-часовые интервалы в день. Тем не менее, команда поддержки сервера хотела бы знать, действительно ли служба Windows работает, поскольку между задачами может быть большой интервал. Они хотели бы, по сути, сердцебиение для каждой службы Windows. Каждые 5 минут служба Windows будет выполнять что-то, что можно было бы контролировать с помощью диспетчера операций Microsoft System Center (SCOM). Любое решение должно легко отслеживаться SCOM, поскольку команда поддержки сервера полагается на него.Деятельность Heartbeat для службы Windows

Каков наилучший способ достижения такого рода funcationality? Я думал об использовании счетчиков производительности и слушал SCOM для тех, но не уверен, что это лучшее использование счетчиков perf.

UPDATE (Полностью забыл включить): В настоящее время каждая служба записывает в базу данных, но это действие SCOM не очень хорошо мониторинга баз данных записей и дифференцирующий какой сервис делает то, что и т.д.

+0

Operations Manager может [контролировать службы Windows] (http://technet.microsoft.com/en-us/library/bb381240.aspx) как функцию. Вам не нужно ничего вводить в свой код. –

+0

http://stackoverflow.com/questions/295348/how-to-monitor-windows-services см., Если это помогает – Devjosh

+0

@ValAkkapeddi Да, я знаю, что Operations Manager и SCOM могут видеть, работает ли служба, остановлена, приостановлена, но что, если моя служба работает и не выполняет свои задачи по какой-то причине. Я хочу, чтобы SCOM знал, что мои задачи выполняются или нет. –

ответ

0

насчет просто писать к DB или журнал событий?

+0

Извините, просмотрите обновленный вопрос. Это делается с помощью DB сейчас, и это не очень хорошо работает с SCOM. –

+0

Что делать, если у этого db была таблица с двумя столбцами: servicename и heartbeattime? Каждая служба обновляла бы это каждые x минут –

0

Вы можете добавить инструменты SNMP или WMI к вашим услугам - это, кстати, позволит вам поднимать больше, чем просто сообщения от сердечного ритма, например, вы также можете поднимать события, когда вы сталкиваетесь с временными ошибками, требующими повторной операции.

Существует множество библиотек SNMP, а поддержка WMI встроена в .NET framework.

Смежные вопросы