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 PDFInfo
- 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
Links
Images
Landscapes
- Testing And Monitoring For Control Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
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
[0031]
The
[0032]
The
[0033]
The
[0034]
On the other hand, when configured according to the present invention, the
[0035]
FIG. 2 illustrates an embodiment of a program configuration of the
[0036]
First, a self-diagnosis process executed by the
[0037]
The
[0038]
The program part that performs the processing of
[0039]
When the
[0040]
From now on, when it is detected in
[0041]
Subsequently, in
[0042]
Subsequently, in step 4, a diagnostic program portion (diagnostic sub-thread) that operates on the sub-thread and performs the processes of
[0043]
On the other hand, if it is detected in
[0044]
On the other hand, if it is detected in
[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
[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
[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
[0050]
In this way, the
[0051]
When implementing the present invention, it is necessary to incorporate the logic described above into the
[0052]
From now on, when Windows is used, as shown in FIG. 2, if the diagnostic program part and the processing of
[0053]
Next, a program monitoring process executed by the
[0054]
When the
[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
[0057]
Subsequently, in
[0058]
It is a waste of CPU time to always check whether the
[0059]
From now on, when Windows is used, the
[0060]
Subsequently, in
[0061]
On the other hand, when it is determined in
[0062]
For example, if a certain period of time has elapsed since the previous startup of the abnormally terminated
[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
[0065]
On the other hand, when it is determined that restarting the abnormally terminated
[0066]
Here, depending on the
[0067]
In this way, the
[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
[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
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.
上記判断する手段は、前回の起動から一定時間経過しているのか否かを判断することで、上記異常終了したプログラムの再起動が妥当であるのか否かを判断することを、
特徴とするプログラム監視装置。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.
上記判断する手段は、メモリ容量が規定量残されているのか否かを判断することで、上記異常終了したプログラムの再起動が妥当であるのか否かを判断することを、
特徴とするプログラム監視装置。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.
上記監視対象となるプログラムは、サブスレッド上で動作して、規定時間の間イベントが通知されてこない場合にタイムアウトして、プログラムを自己終了させる処理を行う診断用プログラム部分を生成し、さらに、その診断用プログラム部分の生成に合わせて、メインスレッド上で動作して、規定周期に従ってタイマメッセージを発生する処理を行うタイマを起動し、さらに、メインスレッド上で動作して、そのタイマメッセージの発生時に、その診断用プログラム部分に対してイベントを通知する処理を行うことで自己診断機能を実現することを、
特徴とするプログラム監視装置。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.
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)
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 |
-
2002
- 2002-08-02 JP JP2002225527A patent/JP2004070458A/en active Pending
Cited By (4)
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 |