2012-01-26 14 views
4

さまざまな間隔でデータベースに接続し、さまざまな複雑なタスクを実行するWindowsサービス(C#4.0で書かれています)が多数あります。これらのタスクの一部は、1日あたりX時間ごとに発生します。ただし、サーバーサポートチームは、タスク間に大きな間隔が存在する可能性があるため、Windowsサービスが実際に実行されているかどうかを知りたいと考えています。彼らは本質的に各Windowsサービスのハートビートを希望します。 5分ごとに、WindowsサービスはMicrosoft System Center Operation Manager(SCOM)が監視できる何かを実行します。サーバーサポートチームがSCOMに依存しているため、SCOMで簡単にすべてのソリューションを監視する必要があります。Windowsサービスのハートビートアクティビティ

このタイプの機能を実現するには、どのような方法が最適ですか?私はパフォーマンスカウンターを使用することを考え、SCOMがそれを聞いてはいますが、それがパーフォーマンスカウンターの最善の使用であるかどうかはわかりません。

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

このデータベースにservicenameとheartbeatimeの2つの列を持つテーブルがある場合はどうなりますか?各サービスはx分ごとにこれを更新します –

0

サービスにSNMPまたはWMIインスツルメンテーションを追加することができます。これにより、ハートビートメッセージ以外の機能を追加することができます。たとえば、再試行が必要な一時的な障害が発生した場合にイベントを発生させることもできます。

そこには多くのSNMPライブラリがあり、WMIサポートは.NETフレームワークに組み込まれています。

関連する問題