Nothing Special   »   [go: up one dir, main page]

JP2004070458A - Program with self-diagnostic function, program supervising device and method, and program with program supervising function - Google Patents

Program with self-diagnostic function, program supervising device and method, and program with program supervising function Download PDF

Info

Publication number
JP2004070458A
JP2004070458A JP2002225527A JP2002225527A JP2004070458A JP 2004070458 A JP2004070458 A JP 2004070458A JP 2002225527 A JP2002225527 A JP 2002225527A JP 2002225527 A JP2002225527 A JP 2002225527A JP 2004070458 A JP2004070458 A JP 2004070458A
Authority
JP
Japan
Prior art keywords
program
self
monitoring
abnormally terminated
diagnosis function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002225527A
Other languages
Japanese (ja)
Inventor
Tadashi Masuko
増子 正
Mitsuhiro Nakamura
中村 光浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Azbil Corp
Original Assignee
Azbil Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Azbil Corp filed Critical Azbil Corp
Priority to JP2002225527A priority Critical patent/JP2004070458A/en
Publication of JP2004070458A publication Critical patent/JP2004070458A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To restore a program to its normal state without depending on an operator's control nor having to initialize an entire system. <P>SOLUTION: A self-diagnostic function, comprising a process which waits for periodic event messages from a main thread by operating on a sub-thread different from the main thread on which the original process operates, and another process operating on the main thread to receive periodic timer messages produced by a timer operating on the main thread, to report events periodically to that process, is incorporated into the program to allow the program itself to detect errors and to terminate itself in the event of error. Then it is monitored whether or not the program has terminated because of error, and if it has terminated because of error, then it is determined whether the program terminated can be restarted. Based on the result, the program terminated because of error is restarted. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、自己診断機能を持つプログラムと、そのプログラムを監視対象とするプログラム監視装置及びその方法と、そのプログラム監視方法の実現に用いられるプログラム監視機能を持つプログラムとに関する。
【0002】
【従来の技術】
プラントや建物の設備機器を監視・制御する中央監視装置などのソフトウェアは、バックグランド処理も含めて多数のプログラムで構成されているが、プログラム間で共有メモリアクセスを排他的に行う処理でデッドロックが発生して操作できなくなるなど、希なタイミングで操作できなくなることが発生する。
【0003】
本質的には、そのようなタイミングが発生しないようにする設計が必要であるが、複雑化したソフトウェア環境では、現実には、これを完全に実現することは困難である。
【0004】
一方、デッドロックしているプログラムを強制終了させてから再起動すると、全体の機能が復旧することも多い。
【0005】
そこで、従来技術では、デッドロックして操作できなくなるプログラムが存在すると、ユーザがタスクマネージャに依頼することで、そのプログラムを強制的に終了させるようにしている。
【0006】
【発明が解決しようとする課題】
このように、従来技術では、プラントや建物の設備機器を監視・制御する中央監視装置などで、デッドロックして操作できなくなるプログラムが発生すると、ユーザがタスクマネージャに依頼することで、そのプログラムを強制的に終了させるようにしている。
【0007】
この強制終了の操作は、通常の操作と異なって特殊なキー操作により実現されることになる。
【0008】
しかるに、プラントや建物の設備機器を監視・制御する中央監視装置などを操作するオペレータは、コンピュータに精通していない人も多く、通常の操作であれば特に問題なく操作できるものの、強制終了の操作などのような特別な操作については直ちに操作できない場合が多い。
【0009】
これから、従来技術に従っていると、プラントや建物の設備機器を監視・制御する中央監視装置などで、デッドロックして操作できなくなるプログラムが発生すると、そのプログラムの復旧に手間取ることで、長い時間本来の監視処理などを実行できないという問題が発生する。
【0010】
そうかといって、プラントや建物の設備機器を監視・制御する中央監視装置は24時間365日連続稼働しなければならないことから、デッドロックして操作できなくなるプログラムが発生した場合に、直ちに、システム全体を初期化してしまうというような方法も用いることはできない。
【0011】
本発明はかかる事情に鑑みてなされたものであって、デッドロックなどにより操作できなくなったプログラムを自動的に自己終了させるとともに、その自己終了したプログラムを自動的に再起動することで、オペレータの操作に依らずに、システム全体を初期化することなくプログラムを正常状態へ復旧させることができるようにする新たなプログラム技術の提供を目的とする。
【0012】
【課題を解決するための手段】
この目的を達成するために、本発明は、自己診断機能を持つプログラムを実現することで、デッドロックなどにより操作できなくなったプログラムを自動的に自己終了させることを実現するとともに、そのプログラムを監視対象として、そのプログラムが自己終了した場合に、そのプログラムの再起動を実行するプログラム監視技術を実現することで、デッドロックなどにより自己終了した異常発生のプログラムを自動的に再起動することを実現する。
【0013】
(1)本発明により実現される自己診断機能を持つプログラム
本発明の自己診断機能を持つプログラムは、▲1▼サブスレッド上で動作して、規定時間の間イベントが通知されてこない場合にタイムアウトして、プログラムを自己終了させる処理を行う診断用プログラム部分を生成する処理(例えば、プログラムの起動時に生成する)と、▲2▼その診断用プログラム部分の生成に合わせて、メインスレッド上で動作して、規定周期に従ってタイマメッセージを発生する処理を行うタイマを起動する処理と、▲3▼メインスレッド上で動作して、タイマメッセージの発生時に、診断用プログラム部分に対してイベントを通知する処理とをコンピュータに実行させるように構成する。
【0014】
このように構成される本発明の自己診断機能を持つプログラムでは、WatchDogtimer 相当の自己診断機能を組み込む構成を採っている。
【0015】
この自己診断機能は、本来の処理が動作するメインスレッドとは別のサブスレッド上で動作して、メインスレッドからの定周期イベント通知を待つ処理(診断用プログラム部分により実行される)と、メインスレッド上で動作して、メインスレッド上で動作するタイマが発生する規定周期のタイマメッセージを受けて、診断用プログラム部分に対して定周期でイベントを通知する処理とからなる。
【0016】
Windows(登録商標)上で動作するプログラムは、メッセージによってイベント的に動作するが、メインスレッドが動作不能になると、この構成により規定周期のタイマメッセージを発生することができず、診断用プログラム部分に対してイベントを通知できなくなる。
【0017】
これから、診断用プログラム部分は、一定時間内にイベントの通知が来ない場合には、タイムアウトすることで異常を検出して、サブスレッドの中からプログラムを自己終了させる。
【0018】
ここで、診断用ブロック部分に対してはメインスレッドとは別にCPU時間が割り当てられ、また、診断用ブロック部分はイベント通知を待つだけの単純な構成であることから、診断用ブロック部分が異常になることは無視できると考えてよい。
【0019】
このようにして、本発明により実現される自己診断機能を持つプログラムは、デッドロックなどにより操作できなくなったプログラムを自動的に検出して強制的に自己終了させるように処理するのである。
【0020】
(2)本発明により実現されるプログラム監視装置
本発明のプログラム監視装置は、自己診断機能を有して、その自己診断機能に従って、異常が発生するときに処理を自己終了させるプログラムを監視対象とするものであって、▲1▼監視対象となるプログラムを登録する手段と、▲2▼登録したプログラムの異常終了を監視する手段と、▲3▼その監視により、プログラムの異常終了を検出する場合に、その異常終了したプログラムの再起動が妥当であるのか否かを判断する手段と、▲4▼再起動の妥当性を判断する場合に、異常終了したプログラムを再起動する手段とを備えるように構成する。
【0021】
以上の各処理手段により実現される本発明のプログラム監視方法はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどのような適当な記録媒体に記録して提供することができる。
【0022】
このように構成される本発明のプログラム監視装置では、自己診断機能を有して、その自己診断機能に従って、異常が発生するときに処理を自己終了させるプログラムを監視対象として登録すると、オペレーティングシステムからの通知を監視することで、その登録したプログラムの異常終了を監視する。
【0023】
そして、その監視により、登録したプログラムの異常終了を検出する場合に、その異常終了したプログラムの再起動が妥当であるのか否かを判断する。
【0024】
例えば、前回の起動から一定時間経過しているのか否かを判断することで、異常終了したプログラムの再起動が妥当であるのか否かを判断したり、メモリ容量が規定量残されているのか否かを判断することで、異常終了したプログラムの再起動が妥当であるのか否かを判断する。
【0025】
この判断処理により、再起動の妥当性を判断する場合には、異常終了したプログラムを再起動する。
【0026】
このようして本発明により実現されるプログラム監視装置は、デッドロックなどにより操作できなくなったことで自己終了したプログラムを再起動することが妥当であるのか否かを判断して、再起動することが妥当であることを判断することを条件して、自己終了した異常発生のプログラムを再起動するように処理するのである。
【0027】
以上説明したように、本発明では、プログラム自身が異常を検出して、異常である場合には自分自身で終了し、さらに、その異常終了したプログラムの再起動が可能であるかどうかを判断して、その判断結果に基づいて、異常終了したプログラムを再起動するようにすることから、オペレータの操作に依らずに、システム全体を初期化することなくプログラムを正常状態へ復旧させることができるようになる。
【0028】
そして、異常終了したプログラムの再起動が妥当であるのか否かを判断して、妥当であることを条件にして、異常終了したプログラムを再起動することから、再び異常終了するといった不都合を解消することができるようになることで、システムの信頼性を大きく向上できるようになる。
【0029】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【0030】
図1に、本発明を具備する中央監視装置1の一実施形態例を図示する。
【0031】
この実施形態例に従う本発明を具備する中央監視装置1は、通信ネットワーク3を介して接続される建物の設備機器2を監視・制御する処理を行うものであって、オペレーティングシステム10と、建物の設備機器2の監視・制御処理を実行する複数のアプリケーションプログラム11と、異常終了したアプリケーションプログラム11の再起動処理を実行する監視プログラム12とを備える。
【0032】
アプリケーションプログラム11は、例えば、建物を模擬する画面を表示して、その画面の中から選択される建物位置に設置される設備機器2の状態データを表示するなどの処理を行うものであって、本発明により構成される場合には、自己診断機能を有して、その自己診断機能に従って、異常状態が発生することを検出すると、処理を強制的に自己終了するように処理することになる。
【0033】
このアプリケーションプログラム11は、CPUへの割当単位となるスレッドと呼ばれる処理単位に従って処理を実行する。
【0034】
一方、監視プログラム12は、本発明により構成される場合には、オペレーティングシステム10から通知されるアプリケーションプログラム11の異常終了を監視して、アプリケーションプログラム11の異常終了を検出する場合には、その異常終了したプログラムの再起動が妥当であるのか否かを判断して、再起動が妥当であることを判断する場合には、その異常終了したアプリケーションプログラム11を再起動するように処理することになる。
【0035】
図2に、本発明により構成されるアプリケーションプログラム11のプログラム構成の一実施形態例を図示し、図3に、本発明により構成される監視プログラム12のプログラム構成の一実施形態例を図示する。
【0036】
最初に、図2を使って、本発明により構成されるアプリケーションプログラム11の実行する自己診断処理について詳細に説明する。
【0037】
アプリケーションプログラム11は、メインスレッド上で動作して、アプリケーション本来の処理を行うプログラム部分と、サブスレッド上で動作して、自己診断の処理を行うプログラム部分とで構成される。
【0038】
図2に示すステップ1〜ステップ6の処理を行うプログラム部分が、メインスレッド上で動作するプログラム部分であり、図2に示すステップ10〜ステップ12の処理を行うプログラム部分が、サブスレッド上で動作するプログラム部分である。ここで、図2に示す110は、規定周期に従ってタイマメッセージを発生するタイマである。
【0039】
アプリケーションプログラム11は、起動されると、図2に示すように、先ず最初に、ステップ1で、メッセージが発生したのか否かを判断する。ここで、アプリケーションプログラム11は、起動されると、一番最初に、スタートのメッセージを発生する。
【0040】
これから、ステップ1で、このスタートのメッセージが発生したことを検出すると、ステップ2に進んで、通知用イベントを生成する。すなわち、イベント通知用のパスを生成するのである。
【0041】
続いて、ステップ3で、規定周期に従ってタイマメッセージを発生するタイマ110を起動する。
【0042】
続いて、ステップ4で、サブスレッド上で動作してステップ10〜ステップ12の処理を行う診断用プログラム部分(診断用サブスレッド)を生成してから、ステップ1に戻る。
【0043】
一方、ステップ1で、スタートのメッセージではなくて、アプリケーション本来のイベントが発生したことを検出すると、ステップ5に進んで、その発生したイベントの指示するアプリケーション本来の処理を実行してから、ステップ1に戻る。
【0044】
一方、ステップ1で、アプリケーション本来のイベントではなくて、タイマ110の発生するタイマメッセージのイベントが発生したことを検出すると、ステップ6に進んで、ステップ2で生成したイベント通知用のパスを使って、ステップ4で生成した診断用プログラム部分に対してイベントを通知してから、ステップ1に戻る。
【0045】
次に、診断用プログラム部分の処理について説明する。
【0046】
診断用プログラム部分は、メインスレッド上での処理により生成されると、サブスレッド上で動作して、先ず最初に、ステップ10で、前回のイベント通知から規定時間が経過したのか否かを判断して、規定時間経過していないことを判断するときには、ステップ11に進んで、メインスレッドからイベントが通知されてきたのか否かを判断する。
【0047】
この判断処理により、メインスレッドからイベントが通知されてきたことを判断するときには、ステップ12に進んで、前回のイベント通知からの経過時間をクリアしてからステップ10に戻り、イベントが通知されてこないことを判断するときには、その経過時間をクリアすることなく直ちにステップ10に戻る。
【0048】
そして、ステップ10で、前回のイベント通知から規定時間が経過したことを判断するときには、ステップ13に進んで、メインスレッド上で動作するExitProcess の実行を指示することで、自アプリケーションプログラム11の処理をサブスレッド側から自己終了させて、処理を終了する。
【0049】
すなわち、メインスレッドの動作が止まると、タイマメッセージが発生しないことでイベント通知が行われなくなり、これを受けて、サブスレッド側で、イベント待ちがタイムアウトすることでExitProcess の実行が指示され、これにより、アプリケーションプログラム11は自己終了することになるのである。
【0050】
このようにして、本発明により構成されるアプリケーションプログラム11は、サブスレッド上で動作して規定時間の間イベントが通知されてこない場合にタイムアウトしてプログラムを自己終了させる診断用プログラム部分を自プログラム内に生成し、それを使って自己診断を行って、異常の発生を検出する場合には、その診断用プログラム部分からの指示に従って自己終了するように処理するのである。
【0051】
本発明を実現する場合、以上に説明したロジックをアプリケーションプログラム11に組み込む必要があるが、WindowsにはOCXと呼ばれる組み込み容易なライブラリ機構が用意されている。
【0052】
これから、Windowsを用いる場合には、図2に示すように、診断用プログラム部分とステップ2,3,4,6の処理とをこのOCXに組み込むようにすれば、改造も最小限で済むことになる。
【0053】
次に、図3を使って、本発明により構成される監視プログラム12の実行するプログラム監視処理について詳細に説明する。
【0054】
監視プログラム12は、起動されると、図3に示すように、先ず最初に、ステップ20で、オペレータと対話することで、例えば、異常終了したままの状態にあると都合の悪いアプリケーションプログラム11を登録対象として、ProcessHandle を取得することで、監視するアプリケーションプログラム11を登録する。
【0055】
例えば、アプリケーションプログラムA,B,Cを監視対象とするときには、アプリケーションプログラムA,B,CのProcessHandle を取得することで、アプリケーションプログラムA,B,Cを監視対象として登録するのである。
【0056】
この登録を受けて、オペレーティングシステム10は、ProcessHandle の取得されたアプリケーションプログラムA,B,Cのいずれかが終了(中央監視装置1が連続運転されているので、この終了は、上述した自己診断機能やその他の理由による異常終了を意味する)したときには、監視プログラム12に対して、その旨を通知してくることになる。
【0057】
これから、続いて、ステップ21で、オペレーティングシステム10からの通知を監視することで、登録したアプリケーションプログラム11の異常終了を監視する。
【0058】
監視対象のアプリケーションプログラム11が動作しているのか否かを常時チェックすることはCPU時間を浪費することになる。一方、Windowsの場合には、WaitForMultipleObject() というAPIを用いることで、監視対象のアプリケーションプログラム11をOSカーネルでCPU時間を浪費せずに監視することができる。
【0059】
これから、Windowsを用いる場合には、このWaitForMultipleObject() というAPIを用いて、CPU時間を浪費せずに監視対象のアプリケーションプログラム11を監視することができる。
【0060】
続いて、ステップ22で、ステップ21で実行する監視処理により、登録したアプリケーションプログラム11の異常終了が発生したのか否かを判断して、異常終了が発生していないことを判断するときには、ステップ21に戻って、登録したアプリケーションプログラム11の異常終了の監視を続行する。
【0061】
一方、ステップ22で、登録したアプリケーションプログラム11の異常終了が発生したことを判断するときには、ステップ23に進んで、その異常終了したアプリケーションプログラム11を再起動することが妥当であるのか否かを判断する。
【0062】
例えば、異常終了したアプリケーションプログラム11が前回の起動後から一定時間経過している場合には、再起動することが妥当であると判断し、逆に、一定時間経過していない場合には、再起動しても再び異常終了する可能性が高いことを判断して、再起動することが妥当でないと判断するといったような処理を行う。
【0063】
また、例えば、システムのメモリ使用量がある閾値以下である場合には、メモリ不足とならないので再起動することが妥当であると判断し、逆に、閾値以下でない場合には、メモリ不足によりシステムが不安定な状態にあることで再起動しても再び異常終了する可能性が高いことを判断して、再起動することが妥当でないと判断するといったような処理を行う。
【0064】
このステップ23の判断処理により、異常終了したアプリケーションプログラム11を再起動することが妥当であることを判断するときには、ステップ24に進んで、その異常終了したアプリケーションプログラム11を再起動してから、ステップ21に戻って、登録したアプリケーションプログラム11の異常終了の監視を続行する。
【0065】
一方、このステップ23の判断処理により、異常終了したアプリケーションプログラム11を再起動することが妥当でないことを判断するときには、ステップ25に進んで、オペレーティングシステム10に対して、システムの初期化を依頼して、処理を終了する。
【0066】
ここで、異常終了したアプリケーションプログラム11によっては、システムの初期化を行うのではなくて、何もしないといったような他の方法を行うことも可能である。
【0067】
このようにして、本発明により構成される監視プログラム12は、自己診断機能により自己終了したアプリケーションプログラム11を監視して、そのアプリケーションプログラム11の異常終了を検出する場合には、その異常終了したアプリケーションプログラム11を再起動することが妥当であるのか否かを判断して、再起動することが妥当であることを判断することを条件して、その異常終了したアプリケーションプログラム11を再起動するように処理するのである。
【0068】
図示実施形態例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施形態例では、中央監視装置1への適用を具体例にして本発明を説明したが、本発明は、その適用が中央監視装置1に限られるものではない。
【0069】
【発明の効果】
以上説明したように、本発明では、プログラム自身が異常を検出して、異常である場合には自分自身で終了し、さらに、その異常終了したプログラムの再起動が可能であるかどうかを判断して、その判断結果に基づいて、異常終了したプログラムを再起動するようにすることから、オペレータの操作に依らずに、システム全体を初期化することなくプログラムを正常状態へ復旧させることができるようになる。
【0070】
そして、異常終了したプログラムの再起動が妥当であるのか否かを判断して、妥当であることを条件にして、異常終了したプログラムを再起動することから、再び異常終了するといった不都合を解消することができるようになることで、システムの信頼性を大きく向上できるようになる。
【図面の簡単な説明】
【図1】本発明を具備する中央監視装置の一実施形態例である。
【図2】本発明により構成されるアプリケーションプログラムのプログラム構成の一実施形態例である。
【図3】本発明により構成される監視プログラムのプログラム構成の一実施形態例である。
【符号の説明】
1  中央監視装置
2  設備機器
3  通信ネットワーク
10 オペレーティングシステム
11 アプリケーションプログラム
12 監視プログラム
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a program having a self-diagnosis function, a program monitoring apparatus and method for monitoring the program, and a program having a program monitoring function used to realize the program monitoring method.
[0002]
[Prior art]
Software such as a central monitoring device that monitors and controls plant and building equipment consists of a number of programs, including background processing.However, deadlock is caused by processing that exclusively accesses shared memory between programs. The operation cannot be performed at a rare timing such that the operation cannot be performed due to the occurrence of the error.
[0003]
Essentially, it is necessary to design to avoid such timing, but in a complicated software environment, it is actually difficult to completely realize this.
[0004]
On the other hand, if the deadlocked program is forcibly terminated and then restarted, the entire function is often restored.
[0005]
Therefore, in the related art, if there is a program that cannot be operated due to a deadlock, the user forcibly terminates the program by requesting the task manager.
[0006]
[Problems to be solved by the invention]
As described above, in the related art, when a program that cannot be operated due to deadlock occurs in a central monitoring device that monitors and controls equipment in a plant or a building, the user requests the task manager to execute the program. Forced termination.
[0007]
This forced termination operation is realized by a special key operation different from a normal operation.
[0008]
However, many operators who operate a central monitoring device that monitors and controls equipment in plants and buildings are not very familiar with computers. In many cases, special operations such as the above cannot be performed immediately.
[0009]
From now on, according to the conventional technology, when a program that deadlocks and becomes inoperable occurs in a central monitoring device that monitors and controls the equipment of plants and buildings, it takes time to recover the program, and the original A problem occurs that monitoring processing cannot be performed.
[0010]
On the other hand, the central monitoring device that monitors and controls plant and building equipment must operate continuously 24 hours a day, 365 days a year. A method of initializing the whole cannot be used.
[0011]
The present invention has been made in view of such circumstances, and automatically terminates a program that cannot be operated due to a deadlock or the like, and automatically restarts the self-terminated program, thereby reducing the operator's need. It is an object of the present invention to provide a new program technology capable of restoring a program to a normal state without initializing the entire system irrespective of an operation.
[0012]
[Means for Solving the Problems]
In order to achieve this object, the present invention realizes a program having a self-diagnosis function so that a program that cannot be operated due to deadlock or the like can be automatically terminated by itself, and the program can be monitored. By implementing a program monitoring technology that restarts the program when the program terminates by itself, it is possible to automatically restart a program that has abnormally terminated due to deadlock etc. I do.
[0013]
(1) A program having a self-diagnosis function realized by the present invention The program having a self-diagnosis function of the present invention operates on (1) a sub-thread and times out when an event is not notified for a specified time. Then, a process for generating a diagnostic program portion for performing a process of self-terminating the program (for example, when the program is started) and (2) running on the main thread in accordance with the generation of the diagnostic program portion Then, a process of starting a timer for performing a process of generating a timer message in accordance with a prescribed period, and (3) a process of operating on a main thread and notifying an event to a diagnostic program portion when a timer message occurs. Are executed by a computer.
[0014]
The program having the self-diagnosis function of the present invention configured as described above adopts a configuration in which a self-diagnosis function equivalent to WatchDogtimer is incorporated.
[0015]
This self-diagnosis function operates on a sub-thread different from the main thread on which the original processing operates, and waits for a periodic event notification from the main thread (executed by the diagnostic program part). The process comprises a process of receiving a timer message of a specified period generated by a timer operating on the thread and operating on the main thread, and notifying an event to the diagnostic program portion at a fixed period.
[0016]
A program operating on Windows (registered trademark) operates in an event manner by a message. However, when the main thread becomes inoperable, a timer message having a specified period cannot be generated due to this configuration. Event notifications can no longer be made.
[0017]
From now on, if an event notification is not received within a certain period of time, the diagnostic program part detects an abnormality by timeout and terminates the program from the sub-thread by itself.
[0018]
Here, CPU time is allocated to the diagnostic block part separately from the main thread, and since the diagnostic block part has a simple configuration that only waits for an event notification, the diagnostic block part becomes abnormal. The consequences can be considered negligible.
[0019]
In this way, the program having the self-diagnosis function realized by the present invention automatically detects a program that cannot be operated due to deadlock or the like, and forcibly terminates the program.
[0020]
(2) Program monitoring device realized by the present invention The program monitoring device of the present invention has a self-diagnosis function, and according to the self-diagnosis function, monitors a program that terminates processing when an abnormality occurs. (1) means for registering a program to be monitored, (2) means for monitoring abnormal termination of a registered program, and (3) detection of abnormal termination of a program by the monitoring. Means for determining whether the restart of the abnormally terminated program is appropriate and means for restarting the abnormally terminated program when determining the validity of the restart. To be configured.
[0021]
The program monitoring method of the present invention realized by each of the above processing means can be realized by a computer program, and the computer program can be provided by being recorded on a suitable recording medium such as a semiconductor memory.
[0022]
The thus configured program monitoring device of the present invention has a self-diagnosis function, and according to the self-diagnosis function, registers a program that terminates processing when an abnormality occurs as a monitoring target. Monitor the abnormal termination of the registered program.
[0023]
Then, when the abnormal termination of the registered program is detected by the monitoring, it is determined whether the restart of the abnormally terminated program is appropriate.
[0024]
For example, by determining whether a fixed time has elapsed since the previous startup, it is possible to determine whether the restart of the abnormally terminated program is appropriate, or whether the specified amount of memory capacity remains. By determining whether or not the restart of the abnormally terminated program is appropriate, it is determined.
[0025]
When the validity of the restart is determined by this determination processing, the program that abnormally ends is restarted.
[0026]
In this way, the program monitoring device realized by the present invention determines whether it is appropriate to restart a program that has terminated itself due to inoperability due to deadlock or the like, and restarts it. The processing is performed so that the self-terminated program in which the abnormality has occurred is restarted on condition that it is determined that the program is valid.
[0027]
As described above, according to the present invention, the program itself detects an abnormality, terminates the program if it is abnormal, and determines whether it is possible to restart the abnormally terminated program. Then, based on the result of the determination, the abnormally terminated program is restarted, so that the program can be restored to the normal state without initializing the entire system without depending on the operation of the operator. become.
[0028]
Then, it is determined whether or not restarting of the abnormally terminated program is appropriate, and on the condition that it is appropriate, the abnormally terminated program is restarted. Being able to do so can greatly improve the reliability of the system.
[0029]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present invention will be described in detail according to embodiments.
[0030]
FIG. 1 shows an example of an embodiment of a central monitoring device 1 provided with the present invention.
[0031]
The central monitoring device 1 according to this embodiment, which includes the present invention, performs a process of monitoring and controlling facility equipment 2 connected to a building via a communication network 3, and includes an operating system 10 and a building The system includes a plurality of application programs 11 for executing monitoring / control processing of the equipment 2 and a monitoring program 12 for executing restart processing of the abnormally terminated application program 11.
[0032]
The application program 11 performs, for example, a process of displaying a screen simulating a building and displaying state data of the equipment 2 installed at a building position selected from the screen. In the case of the configuration according to the present invention, a self-diagnosis function is provided, and when the occurrence of an abnormal state is detected according to the self-diagnosis function, the processing is forcibly terminated by itself.
[0033]
The application program 11 executes processing according to a processing unit called a thread, which is a unit of allocation to the CPU.
[0034]
On the other hand, when configured according to the present invention, the monitoring program 12 monitors the abnormal termination of the application program 11 notified from the operating system 10, and detects the abnormal termination of the application program 11 when detecting the abnormal termination. It is determined whether or not the restart of the terminated program is appropriate, and if it is determined that the restart is appropriate, processing is performed to restart the abnormally terminated application program 11. .
[0035]
FIG. 2 illustrates an embodiment of a program configuration of the application program 11 configured according to the present invention, and FIG. 3 illustrates an embodiment of a program configuration of the monitoring program 12 configured according to the present invention.
[0036]
First, a self-diagnosis process executed by the application program 11 configured according to the present invention will be described in detail with reference to FIG.
[0037]
The application program 11 includes a program portion that operates on a main thread and performs a process inherent to the application, and a program portion that operates on a sub thread and performs a self-diagnosis process.
[0038]
The program part that performs the processing of steps 1 to 6 shown in FIG. 2 is a program part that operates on the main thread, and the program part that performs the processing of steps 10 to 12 shown in FIG. This is the part of the program that does. Here, 110 shown in FIG. 2 is a timer that generates a timer message according to a prescribed cycle.
[0039]
When the application program 11 is started, as shown in FIG. 2, first, in step 1, it is determined whether or not a message has occurred. Here, when the application program 11 is started, it generates a start message first.
[0040]
From now on, when it is detected in step 1 that this start message has been generated, the process proceeds to step 2 to generate a notification event. That is, a path for event notification is generated.
[0041]
Subsequently, in step 3, the timer 110 that generates a timer message in accordance with the specified cycle is started.
[0042]
Subsequently, in step 4, a diagnostic program portion (diagnostic sub-thread) that operates on the sub-thread and performs the processes of steps 10 to 12 is generated, and then returns to step 1.
[0043]
On the other hand, if it is detected in step 1 that an event inherent to the application has occurred instead of a start message, the process proceeds to step 5 to execute the original process of the application indicated by the event that occurred, and then to step 1 Return to
[0044]
On the other hand, if it is detected in step 1 that the event of the timer message generated by the timer 110 has occurred instead of the event inherent in the application, the process proceeds to step 6 and the event notification path generated in step 2 is used. After the event is notified to the diagnostic program portion generated in step 4, the process returns to step 1.
[0045]
Next, the processing of the diagnostic program portion will be described.
[0046]
When the diagnostic program part is generated by the processing on the main thread, it operates on the sub thread. First, in step 10, it is determined whether or not a specified time has elapsed since the previous event notification. When it is determined that the specified time has not elapsed, the process proceeds to step 11, where it is determined whether an event has been notified from the main thread.
[0047]
When it is determined that an event has been notified from the main thread by this determination processing, the process proceeds to step 12, where the elapsed time from the previous event notification is cleared, and the process returns to step 10, where the event is not notified. When it is determined that the time has elapsed, the process immediately returns to step 10 without clearing the elapsed time.
[0048]
When it is determined in step 10 that the specified time has elapsed from the previous event notification, the process proceeds to step 13 in which execution of ExitProcess operating on the main thread is instructed to execute the processing of the application program 11 itself. The process is terminated by causing the sub thread to terminate itself.
[0049]
That is, when the operation of the main thread is stopped, the event notification is not performed because the timer message is not generated. In response to this, the sub-thread side is instructed to execute the ExitProcess by timeout of the event waiting, thereby , The application program 11 terminates itself.
[0050]
In this way, the application program 11 configured according to the present invention operates on the sub-thread and, when an event is not notified for a specified time, times out and terminates the program by itself. When an abnormality is detected by performing a self-diagnosis using the generated self-diagnosis, a process is performed so as to terminate the self-operation according to an instruction from the diagnosis program portion.
[0051]
When implementing the present invention, it is necessary to incorporate the logic described above into the application program 11, but Windows provides a library mechanism called OCX which is easily incorporated.
[0052]
From now on, when Windows is used, as shown in FIG. 2, if the diagnostic program part and the processing of steps 2, 3, 4, and 6 are incorporated in this OCX, the modification can be minimized. Become.
[0053]
Next, a program monitoring process executed by the monitoring program 12 according to the present invention will be described in detail with reference to FIG.
[0054]
When the monitoring program 12 is started, as shown in FIG. 3, first, at step 20, the monitoring program 12 interacts with the operator to, for example, execute the application program 11 which is not convenient if it is abnormally terminated. By acquiring the ProcessHandle as a registration target, the application program 11 to be monitored is registered.
[0055]
For example, when the application programs A, B, and C are to be monitored, the application programs A, B, and C are registered as monitoring targets by acquiring the ProcessHandles of the application programs A, B, and C.
[0056]
In response to this registration, the operating system 10 terminates any of the application programs A, B, and C for which the ProcessHandle has been acquired. Or abnormal termination for some other reason), the monitoring program 12 is notified of this.
[0057]
Subsequently, in step 21, by monitoring the notification from the operating system 10, the abnormal termination of the registered application program 11 is monitored.
[0058]
It is a waste of CPU time to always check whether the application program 11 to be monitored is running. On the other hand, in the case of Windows, by using an API called WaitForMultipleObject (), the application program 11 to be monitored can be monitored by the OS kernel without wasting CPU time.
[0059]
From now on, when Windows is used, the application program 11 to be monitored can be monitored without wasting CPU time by using the API of WaitForMultipleObject ().
[0060]
Subsequently, in step 22, it is determined whether the abnormal termination of the registered application program 11 has occurred by the monitoring process executed in step 21, and if it is determined that the abnormal termination has not occurred, the process proceeds to step 21. And the monitoring of the registered application program 11 for abnormal termination is continued.
[0061]
On the other hand, when it is determined in step 22 that the abnormal termination of the registered application program 11 has occurred, the process proceeds to step 23 to determine whether it is appropriate to restart the abnormally terminated application program 11. I do.
[0062]
For example, if a certain period of time has elapsed since the previous startup of the abnormally terminated application program 11, it is determined that it is appropriate to restart the application program. Processing such as judging that the possibility of abnormal termination is high again even if activated is determined, and that restarting is not appropriate is performed.
[0063]
Also, for example, if the memory usage of the system is below a certain threshold, it is judged that it is appropriate to restart because the memory does not run out, and conversely, if it is not below the threshold, the system is running out of memory. Is determined to be highly likely to end abnormally again even if it is restarted due to the unstable state, and processing such as determining that restarting is not appropriate is performed.
[0064]
When it is determined that restarting the abnormally terminated application program 11 is appropriate by the determination processing in step 23, the process proceeds to step 24, where the abnormally ended application program 11 is restarted. Returning to 21, the monitoring of the registered application program 11 for abnormal termination is continued.
[0065]
On the other hand, when it is determined that restarting the abnormally terminated application program 11 by the determination processing in step 23 is not appropriate, the process proceeds to step 25 and requests the operating system 10 to initialize the system. Then, the process ends.
[0066]
Here, depending on the application program 11 that has abnormally terminated, it is possible to perform other methods such as not performing initialization but performing any operation.
[0067]
In this way, the monitoring program 12 configured according to the present invention monitors the application program 11 that has terminated by the self-diagnosis function, and detects an abnormal termination of the application program 11, and detects the abnormal termination of the application program 11. It is determined whether restarting the program 11 is appropriate and restarting the abnormally terminated application program 11 on condition that it is determined that restarting is appropriate. Process it.
[0068]
Although the present invention has been described according to the illustrated embodiment, the present invention is not limited to this. For example, in the embodiment, the present invention has been described by taking the application to the central monitoring device 1 as a specific example, but the present invention is not limited to the application to the central monitoring device 1.
[0069]
【The invention's effect】
As described above, according to the present invention, the program itself detects an abnormality, terminates the program if it is abnormal, and determines whether it is possible to restart the abnormally terminated program. Then, based on the result of the determination, the abnormally terminated program is restarted, so that the program can be restored to the normal state without initializing the entire system without depending on the operation of the operator. become.
[0070]
Then, it is determined whether or not restarting of the abnormally terminated program is appropriate, and on the condition that it is appropriate, the abnormally terminated program is restarted. Being able to do so can greatly improve the reliability of the system.
[Brief description of the drawings]
FIG. 1 is an embodiment of a central monitoring device equipped with the present invention.
FIG. 2 is an example of a program configuration of an application program configured according to the present invention.
FIG. 3 is an embodiment of a program configuration of a monitoring program configured according to the present invention.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Central monitoring apparatus 2 Equipment 3 Communication network 10 Operating system 11 Application program 12 Monitoring program

Claims (7)

サブスレッド上で動作して、規定時間の間イベントが通知されてこない場合にタイムアウトして、プログラムを自己終了させる処理を行う診断用プログラム部分を生成する処理と、
上記診断用プログラム部分の生成に合わせて、メインスレッド上で動作して、規定周期に従ってタイマメッセージを発生する処理を行うタイマを起動する処理と、
メインスレッド上で動作して、上記タイマメッセージの発生時に、上記診断用プログラム部分に対してイベントを通知する処理とをコンピュータに実行させるための自己診断機能を持つプログラム。
A process that runs on a sub-thread and generates a diagnostic program portion that performs a process of self-terminating when a time-out occurs when an event is not notified for a specified time;
Processing for starting a timer that operates on the main thread and performs processing for generating a timer message in accordance with a prescribed cycle, in accordance with the generation of the diagnostic program portion;
A program that runs on a main thread and has a self-diagnosis function for causing a computer to execute a process of notifying an event to the diagnostic program portion when the timer message occurs.
自己診断機能を有して、その自己診断機能に従って、異常状態が発生するときに処理を自己終了させるプログラムを監視対象として登録する手段と、
上記登録したプログラムの異常終了を監視する手段と、
上記異常終了を検出する場合に、その異常終了したプログラムの再起動が妥当であるのか否かを判断する手段と、
上記再起動の妥当性を判断する場合に、異常終了したプログラムを再起動する手段とを備えることを、
特徴とするプログラム監視装置。
Means for registering as a monitoring target a program having a self-diagnosis function and, according to the self-diagnosis function, self-terminating processing when an abnormal state occurs;
Means for monitoring abnormal termination of the registered program;
Means for determining whether restarting the abnormally terminated program is appropriate when detecting the abnormal termination,
Means for restarting the abnormally terminated program when determining the validity of the restart,
Characteristic program monitoring device.
請求項2記載のプログラム監視装置において、
上記判断する手段は、前回の起動から一定時間経過しているのか否かを判断することで、上記異常終了したプログラムの再起動が妥当であるのか否かを判断することを、
特徴とするプログラム監視装置。
The program monitoring device according to claim 2,
The determining means determines whether or not the restart of the abnormally terminated program is appropriate by determining whether or not a predetermined time has elapsed since the previous startup.
Characteristic program monitoring device.
請求項2記載のプログラム監視装置において、
上記判断する手段は、メモリ容量が規定量残されているのか否かを判断することで、上記異常終了したプログラムの再起動が妥当であるのか否かを判断することを、
特徴とするプログラム監視装置。
The program monitoring device according to claim 2,
The determining means determines whether or not the restart of the abnormally terminated program is appropriate by determining whether or not the specified amount of memory capacity is left.
Characteristic program monitoring device.
請求項2ないし4のいずれか1項に記載のプログラム監視装置において、
上記監視対象となるプログラムは、サブスレッド上で動作して、規定時間の間イベントが通知されてこない場合にタイムアウトして、プログラムを自己終了させる処理を行う診断用プログラム部分を生成し、さらに、その診断用プログラム部分の生成に合わせて、メインスレッド上で動作して、規定周期に従ってタイマメッセージを発生する処理を行うタイマを起動し、さらに、メインスレッド上で動作して、そのタイマメッセージの発生時に、その診断用プログラム部分に対してイベントを通知する処理を行うことで自己診断機能を実現することを、
特徴とするプログラム監視装置。
The program monitoring device according to any one of claims 2 to 4,
The program to be monitored operates on the sub-thread, generates a diagnostic program portion that performs a process of terminating the program by itself when the event is not notified for a specified time, and furthermore, At the same time as the generation of the diagnostic program portion, a timer that operates on the main thread and performs a process of generating a timer message according to a specified cycle is started, and further operates on the main thread to generate the timer message. Sometimes, the self-diagnosis function is realized by performing a process of notifying an event to the diagnostic program part.
Characteristic program monitoring device.
自己診断機能を有して、その自己診断機能に従って、異常状態が発生するときに処理を自己終了させるプログラムを監視対象として登録する過程と、
上記登録したプログラムの異常終了を監視する過程と、
上記異常終了を検出する場合に、その異常終了したプログラムの再起動が妥当であるのか否かを判断する過程と、
上記再起動の妥当性を判断する場合に、異常終了したプログラムを再起動する過程とを備えることを、
特徴とするプログラム監視方法。
Having a self-diagnosis function, according to the self-diagnosis function, registering a program for self-terminating processing when an abnormal state occurs as a monitoring target;
Monitoring the abnormal termination of the registered program;
When detecting the abnormal termination, determining whether restarting of the abnormally terminated program is appropriate; and
Restarting the abnormally terminated program when judging the validity of the restart,
Characteristic program monitoring method.
自己診断機能を有して、その自己診断機能に従って、異常状態が発生するときに処理を自己終了させるプログラムを監視対象として登録する処理と、
上記登録したプログラムの異常終了を監視する処理と、
上記異常終了を検出する場合に、その異常終了したプログラムの再起動が妥当であるのか否かを判断する処理と、
上記再起動の妥当性を判断する場合に、異常終了したプログラムを再起動する処理とをコンピュータに実行させるためのプログラム監視機能を持つプログラム。
A process of having a self-diagnosis function and registering a program for self-terminating the process when an abnormal condition occurs according to the self-diagnosis function as a monitoring target;
Monitoring the abnormal termination of the registered program;
When detecting the abnormal termination, a process of determining whether restarting the abnormally terminated program is appropriate, and
A program having a program monitoring function for causing a computer to execute a process of restarting an abnormally terminated program when determining the validity of the restart.
JP2002225527A 2002-08-02 2002-08-02 Program with self-diagnostic function, program supervising device and method, and program with program supervising function Pending JP2004070458A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002225527A JP2004070458A (en) 2002-08-02 2002-08-02 Program with self-diagnostic function, program supervising device and method, and program with program supervising function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002225527A JP2004070458A (en) 2002-08-02 2002-08-02 Program with self-diagnostic function, program supervising device and method, and program with program supervising function

Publications (1)

Publication Number Publication Date
JP2004070458A true JP2004070458A (en) 2004-03-04

Family

ID=32013132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002225527A Pending JP2004070458A (en) 2002-08-02 2002-08-02 Program with self-diagnostic function, program supervising device and method, and program with program supervising function

Country Status (1)

Country Link
JP (1) JP2004070458A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168816A (en) * 2011-02-15 2012-09-06 Nec System Technologies Ltd Process restart device, process restart method and process restart program
JP2014013529A (en) * 2012-07-05 2014-01-23 Nec Access Technica Ltd Fault management system, fault management method and fault management program
JP2016206735A (en) * 2015-04-16 2016-12-08 株式会社日立製作所 Control server and fault detection method
CN108228420A (en) * 2017-12-20 2018-06-29 新华三技术有限公司 The method, apparatus of IO monitoring and the realization device of IO monitoring

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168816A (en) * 2011-02-15 2012-09-06 Nec System Technologies Ltd Process restart device, process restart method and process restart program
JP2014013529A (en) * 2012-07-05 2014-01-23 Nec Access Technica Ltd Fault management system, fault management method and fault management program
JP2016206735A (en) * 2015-04-16 2016-12-08 株式会社日立製作所 Control server and fault detection method
CN108228420A (en) * 2017-12-20 2018-06-29 新华三技术有限公司 The method, apparatus of IO monitoring and the realization device of IO monitoring

Similar Documents

Publication Publication Date Title
US6505298B1 (en) System using an OS inaccessible interrupt handler to reset the OS when a device driver failed to set a register bit indicating OS hang condition
JP6556110B2 (en) Resume process
US7000100B2 (en) Application-level software watchdog timer
US6425093B1 (en) Methods and apparatuses for controlling the execution of software on a digital processing system
JP4440990B2 (en) Network extension BIOS that allows remote management of computers without a functioning operating system
US6665758B1 (en) Software sanity monitor
EP1351145A1 (en) Computer failure recovery and notification system
JP2006107430A (en) Method, system and device for identification of no response section of computer program
TWI261748B (en) Policy-based response to system errors occurring during OS runtime
JP2007534049A (en) Watchdog system and method for monitoring processor functionality
US7200772B2 (en) Methods and apparatus to reinitiate failed processors in multiple-processor systems
CN111796954A (en) Watchdog control method, device, equipment and storage medium based on JVM
JP2002251300A (en) Fault monitoring method and device
JP3991590B2 (en) Computer system and fault processing method in computer system
US20050033952A1 (en) Dynamic scheduling of diagnostic tests to be performed during a system boot process
US7340594B2 (en) Bios-level incident response system and method
CN107133130B (en) Computer operation monitoring method and device
JP2004070458A (en) Program with self-diagnostic function, program supervising device and method, and program with program supervising function
US8099637B2 (en) Software fault detection using progress tracker
JPH07113898B2 (en) Failure detection method
JPH1153225A (en) Fault processor
JP2001331330A (en) Process abnormality detection and restoration system
JP2002149437A (en) Method for restarting software
KR101300806B1 (en) Apparatus and method for handling abnormal processing in multi process system
TW201324115A (en) Computer system and boot managing method of computer system