(57)【特許請求の範囲】
【請求項１】
ネットワークを介して監視対象となるサーバ上で稼動するプロセスを監視し、前記プロセスに生じた障害を検知するプロセス障害検知部と、
前記プロセス障害検知部によって障害が生じたプロセスが検知された場合に、障害が生じた前記プロセスを再起動した回数が所定の閾値以上であるか否かを判定し、前記プロセスを再起動した回数が所定の閾値以上であると判定した場合、さらに、前記サーバ上で稼動する他のプロセスと障害が生じた前記プロセスとの間での優先順位を判定し、障害が生じた前記プロセスよりも優先順位の高い前記他のプロセスがない場合に、前記サーバを再起動させる障害判定復旧部と、
を備えることを特徴とするプロセス障害判定復旧装置。
【請求項２】
前記サーバは複数台から構成され、前記障害判定復旧部は、障害が生じた前記プロセスよりも優先順位の高い前記他のプロセスがない場合において、さらに、最低限稼動させるべき前記サーバの数を満たしているか否かを判定し、最低限稼動させるべき前記サーバの数を満たしていると判定した場合に、前記サーバを再起動させる、
ことを特徴とする請求項１に記載のプロセス障害判定復旧装置。
【請求項３】
プロセス障害検知部は、複数の前記サーバ上で稼動するプロセスを監視し、
前記障害判定復旧部は、複数の前記サーバのそれぞれについて、稼動するプロセスの優先順位を判定する、
ことを特徴とする請求項２に記載のプロセス障害判定復旧装置。
【請求項４】
ネットワークを介して監視対象となるサーバ上で稼動するプロセスを監視し、前記プロセスに生じた障害を検知するプロセス障害検知ステップと、
前記プロセス障害検知ステップにおいて障害が生じたプロセスが検知された場合に、障害が生じた前記プロセスを再起動した回数が所定の閾値以上であるか否かを判定する第１の判定ステップと、
前記プロセスを再起動した回数が所定の閾値以上であると判定された場合に、前記サーバ上で稼動する他のプロセスと障害が生じた前記プロセスとの間での優先順位を判定する第２の判定ステップと、
障害が生じた前記プロセスよりも優先順位の高い前記他のプロセスがないと判定された場合に、前記サーバを再起動させる障害判定復旧ステップと、
を含むことを特徴とするプロセス障害判定復旧方法。
【請求項５】
ネットワークを介して監視対象となるサーバ上で稼動するプロセスを監視し、前記サーバから送信された前記プロセスの稼動情報を記憶した記憶部を有するコンピュータに、
前記稼動情報に基づいて前記プロセスに生じた障害を検知するプロセス障害検知ステップと、
前記プロセス障害検知ステップにおいて障害が生じたプロセスが検知された場合に、障害が生じた前記プロセスを再起動した回数が所定の閾値以上であるか否かを判定する第１の判定ステップと、
前記プロセスを再起動した回数が所定の閾値以上であると判定された場合に、前記サーバ上で稼動する他のプロセスと障害が生じた前記プロセスとの間での優先順位を判定する第２の判定ステップと、
障害が生じた前記プロセスよりも優先順位の高い前記他のプロセスがないと判定された場合に、前記サーバを再起動させるためのコマンドを前記サーバに送信する障害判定復旧ステップと、
を実行させることを特徴とするプロセス障害判定復旧プログラム。
【請求項６】
請求項５に記載されたプロセス障害判定復旧プログラムを格納したコンピュータの読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＳ（Operating  System）上で稼動するプロセスに異常が発生した場合に、プロセスやＯＳの再起動を行うプロセス障害判定復旧装置、プロセス障害判定復旧方法、プロセス障害判定復旧プログラム、および記録媒体に関するものである。
【背景技術】
【０００２】
従来、ＯＳ上で稼動しているプロセスやそのプロセスの子プロセスを監視することによってアプリケーションの実行を制御するものがある。例えば、複数のアプリケーションが起動中であっても、それらのプロセスの実行を監視することによって、複数のアプリケーションの同時実行によるアプリケーションの破損の危険性を最小限にしている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００３−５０１７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般的に、プロセスの障害が発生した場合、プロセス障害を検知する技術は確立している。検知後の復旧手段としては、人が介在してプロセスを再起動したり、あるいはＯＳを手動で再起動する事が多く、自動で再起動を行う手段が確立されていない状況である。従来の技術では、アプリケーション内で実行される子プロセスの状態を効率的に監視する手段は存在したが、複数アプリケーションで動作するシステムにおいて、各プロセスの優先度を判断し、再起動の実施を人を介在せず自動で行うことは困難であった。
【０００５】
本発明は、上記に鑑みてなされたものであって、システム内で稼動するプロセスの優先度を判断し、プロセス障害復旧の１手段であるプロセスの再起動、プロセスが稼動しているＯＳの再起動を自動的に行うことが可能なプロセス障害判定復旧システム、プロセス障害判定復旧装置、およびプロセス障害判定復旧プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した目的を達成するために、本発明にかかるプロセス障害判定復旧装置は、ネットワークを介して監視対象となるサーバ上で稼動するプロセスを監視し、前記プロセスに生じた障害を検知するプロセス障害検知部と、前記プロセス障害検知部によって障害が生じたプロセスが検知された場合に、障害が生じた前記プロセスを再起動した回数に基づいて、前記プロセスを再起動させるかまたは前記プロセスを稼動している前記サーバを再起動させるかを判定し、判定した結果に従って前記プロセスまたは前記サーバを再起動させ、前記障害を復旧させる障害判定復旧部と、を備えることを特徴とする。
【０００７】
また、本発明は、上記プロセス障害判定復旧装置で行われるプロセス障害判定復旧方法、プロセス障害判定復旧プログラム、またはこれを格納した記録媒体である。
【発明の効果】
【０００８】
本発明によれば、システム内で稼動するプロセスの優先度を判断し、プロセス障害復旧の１手段であるプロセスの再起動、プロセスが稼動しているＯＳの再起動を自動的に行うことが可能なプロセス障害判定復旧装置、プロセス障害判定復旧方法、プロセス障害判定復旧プログラム、および記録媒体を提供できる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態におけるプロセス障害判定復旧システムの構成を示す図である。
【図２】プロセス障害検知ＤＢが記憶するデータの例を示す図である。
【図３】監視対象プロセスＤＢが記憶するデータの例を示す図である。
【図４】冗長サーバＤＢが記憶するデータの例を示す図である。
【図５】プロセス再起動処理部が行うプロセス再起動処理の処理手順を示すフローチャートである。
【図６】サーバ再起動処理部が行うサーバ再起動処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかるプロセス障害判定復旧装置、プロセス障害判定復旧方法、プロセス障害判定復旧プログラム、および記録媒体の実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態におけるプロセス障害判定復旧システム１０００の構成を示す図である。図１に示すように、プロセス障害判定復旧システム１０００は、監視対象となるプロセスが稼動されているプロセス監視対象サーバ１００、プロセス監視対象サーバ１１０、プロセス監視対象サーバ１２０と、プロセス障害判定復旧サーバ２００と、ネットワーク３００とを含んで構成されている。なお、ネットワーク３００は、例えば、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等の一般的な通信回線網である。まず、プロセス監視対象サーバ１００について説明する。
【００１２】
図１に示すように、プロセス監視対象サーバ１００は、ＯＳ（Operating  System）１０１０を有し、そのＯＳ１０１０上で、複数のプロセス１００１〜１００３が稼動している。本実施の形態においては特に説明を行わないが、ＯＳ１０１０は、プロセス監視対象サーバ１００が有する不図示のＲＡＭ（Random  Access  Memory）等のメモリにロードされているものとする。プロセス監視対象サーバ１１０およびプロセス監視対象サーバ１２０は、プロセス監視対象サーバ１００と同様に、複数のプロセス１１０１〜１１０３あるいはプロセス１２０１〜１２０３が稼動した状態となっている。
【００１３】
プロセス障害判定復旧サーバ２００は、ＯＳ２０３を有し、そのＯＳ２０３上で、プロセス障害検知システム２０１とプロセス障害判定復旧システム２０２とが稼動している。ＯＳ２０３は、上述したＯＳ１０１０と同様に、プロセス障害判定復旧サーバ２００が有する不図示のＲＡＭ等のメモリにロードされている。また、プロセス障害判定復旧サーバ２００が有する各システムは、後述するプロセス障害検知部、プロセス再起動処理部、およびサーバ再起動処理部等の各部の機能を実現するためのプログラムにより実行される。
【００１４】
これらのプログラムは、例えば、上述した各部を含むモジュール構成となっており、実際のハードウェアとしては、ＣＰＵ（Central  Processing  Unit）等の制御部がＨＤＤ（Hard  Disk  Drive）等の記録装置からこれらのプログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、プロセス障害検知部、プロセス再起動処理部、およびサーバ再起動処理部等の各部が主記憶装置上に生成されるようになっている。
【００１５】
なお、上述したプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。さらに、これらのプログラムを、ネットワーク経由でダウンロードさせて提供または配布するように構成してもよい。
【００１６】
プロセス障害検知システム２０１は、上述したプロセス監視対象サーバ１００等で稼動するプロセスを監視し、その障害を検知するシステムである。プロセス障害検知システム２０１の具体的な処理については後述するが、プロセス障害検知システム２０１は、プロセス障害判定復旧システム１０００において、プロセス障害検知部として機能する。
【００１７】
また、プロセス障害検知システム２０１は、プロセス監視対象サーバ１００等のそれぞれで稼動しているプロセスの稼働状況を記憶するプロセス障害検知ＤＢ２０１１を有している。プロセス障害検知ＤＢ２０１１は、例えば、ＨＤＤ等の記憶装置に記憶されているものとする。
【００１８】
図２は、プロセス障害検知ＤＢ２０１１が記憶するデータの例を示す図である。図２に示すように、プロセス障害検知ＤＢ２０１１は、プロセス監視対象サーバ１００等を示すサーバ名と、プロセス監視対象サーバ１００等で稼動しているプロセスを示すプロセス名と、そのプロセスの稼働状況を示すプロセス稼働状況とが対応付けて記憶されている。
【００１９】
図２では、例えば、サーバ名「Ｓｅｒｖｅｒ００１」であるプロセス監視対象サーバ１００では、「Ｐｒｏｃｅｓｓ００１」（すなわち、プロセス１００１）と、「Ｐｒｏｃｅｓｓ００２」（すなわち、プロセス１００２）と、「Ｐｒｏｃｅｓｓ００３」（すなわち、プロセス１００３）とが稼働中（プロセス稼働状況「０」）であることを示している。
【００２０】
また、サーバ名「Ｓｅｒｖｅｒ００２」であるプロセス監視対象サーバ１１０では、「Ｐｒｏｃｅｓｓ００２」（すなわち、プロセス１１０２）と、「Ｐｒｏｃｅｓｓ００３」（すなわち、プロセス１１０３）とは稼働中であるが、「Ｐｒｏｃｅｓｓ００１」（すなわち、プロセス１１０１）とは不稼働（プロセス稼働状況「１」）であることを示している。なお、プロセス稼働状況が示す値は、それぞれのプロセス監視対象サーバから送信されるプロセスが稼働中であるか否かを示す稼動情報に従って更新されるものとする。続いて、図１に戻り、プロセス障害判定復旧システム２０２について説明する。
【００２１】
プロセス障害判定復旧システム２０２は、プロセス障害検知システム２０１が、それぞれのプロセス監視対象サーバにおいて稼動しているプロセスの障害を検知した場合に、その障害をプロセスの再起動またはＯＳの再起動により復旧させるか否かを判定し、その判定結果に従ってプロセスの障害を復旧させるシステムである。プロセス障害判定復旧システム２０２の具体的な処理については後述するが、プロセス障害判定復旧システム２０２は、プロセス障害判定復旧システム１０００において、プロセス再起動処理部２０２１およびサーバ再起動処理部２０２２として機能する。
【００２２】
また、プロセス障害判定復旧システム２０２は、プロセス監視対象サーバ１００等のそれぞれで稼動しているプロセスをどのようにして復旧させるかを判断するための基準となる情報を記憶する監視対象プロセスＤＢ２０２３と、プロセスの障害を復旧させるためにプロセス監視対象サーバ１００等を再起動する際に、そのプロセス監視対象サーバが冗長構成を満たしていることを判断するための基準となる情報を記憶する冗長サーバＤＢ２０２４とを有している。これらの各ＤＢは、上述したプロセス障害検知ＤＢ２０１１と同様に、例えば、ＨＤＤ等の記憶装置に記憶されているものとする。
【００２３】
図３は、監視対象プロセスＤＢ２０２３が記憶するデータの例を示す図である。図３に示すように、監視対象プロセスＤＢ２０２３は、プロセス監視対象サーバ１００等を示すサーバ名と、プロセス監視対象サーバ１００等で稼動しているプロセスを示すプロセス名と、そのプロセスを再起動する場合の最大回数を示すプロセス再起動閾値と、そのプロセスの再起動を行った回数を示すプロセス再起動実施回数と、そのプロセス監視対象サーバで稼動しているプロセスの中での優先順位を示すプロセス優先度とが対応付けて記憶されている。
【００２４】
図３では、例えば、サーバ名「Ｓｅｒｖｅｒ００１」であるプロセス監視対象サーバ１００の「Ｐｒｏｃｅｓｓ００１」（すなわち、プロセス１００１）は、再起動する回数の最大値が５回であり（すなわち、５回まではプロセスの再起動をする）、現時点では再起動の回数はゼロ回であることを示している。また、そのプロセス１００１は、優先度が「４０」であり、他のプロセス（プロセス１００２およびプロセス１００３）に比べて優先度が高いことを示している。このように、プロセス優先度は、その数値が小さいほど、そのプロセスを稼動させるための優先度が高いことを示している。なお、後述するように、プロセス再起動実施回数がプロセス再起動閾値を超えている場合には、プロセスの再起動だけでは障害を解消できないと判断し、サーバの再起動を行っている。続いて、冗長サーバＤＢ２０２４について説明する。
【００２５】
図４は、冗長サーバＤＢ２０２４が記憶するデータの例を示す図である。図４に示すように、冗長サーバＤＢ２０２４は、プロセス監視対象サーバ１００等を示すサーバ名と、プロセス監視対象サーバ１００等で稼動しているプロセスを示すプロセス名と、そのプロセスが稼動しているプロセス監視対象サーバの必要な数を示す最低稼働サーバ閾値と、そのプロセスが稼動しているプロセス監視対象サーバの数を示す稼動サーバ数とが対応付けて記憶されている。
【００２６】
図４では、例えば、プロセス名「Ｐｒｏｃｅｓｓ００１」のプロセス（すなわち、プロセス１００１）が稼動しているプロセス監視対象サーバは、少なくとも２台必要であることを示している。図４に示した例では、「Ｐｒｏｃｅｓｓ００１」は、プロセス監視対象サーバ１００およびプロセス監視対象サーバ１１０の２台で稼動しており、その要件を満たしていることを示している。続いて、プロセス障害判定復旧システム１０００で行われる処理について説明する。
【００２７】
図５は、プロセス再起動処理部２０２１が行うプロセス再起動処理の処理手順を示すフローチャートである。
【００２８】
図５に示すように、まず、プロセス再起動処理部２０２１は、プロセス障害検知ＤＢ２０１１にアクセスし、プロセス監視対象サーバ１００等で稼動しているプロセスの稼動状況を判定する（ステップＳ５０１）。具体的には、プロセス再起動処理部２０２１は、プロセス障害検知ＤＢ２０１１のプロセス稼働状況が「１」となっているプロセスがあるか否かを判定する。
【００２９】
そして、プロセス再起動処理部２０２１は、プロセス監視対象サーバ１００等で稼動しているプロセスの稼動状況が「１」となっているプロセスがあると判定した場合（ステップＳ５０１；Ｙｅｓ）、プロセスの稼動状況が「１」となっているプロセスに対応するサーバ名とプロセス名とを取得する（ステップＳ５０２）。一方、プロセス再起動処理部２０２１は、プロセス監視対象サーバ１００等で稼動しているプロセスの稼動状況が「１」となっているプロセスがないと判定した場合（ステップＳ５０１；Ｎｏ）、何も処理をせず、そのまま監視を続ける。
【００３０】
例えば、図２において、サーバ名「Ｓｅｒｖｅｒ００１」およびプロセス名「Ｐｒｏｃｅｓｓ００１」のレコードは、プロセス稼働状況「０」である為、プロセス再起動処理部２０２１は、何も処理を実施しない。一方、サーバ名「Ｓｅｒｖｅｒ００２」およびプロセス名「Ｐｒｏｃｅｓｓ００１」のレコードは、プロセス稼動状態に不稼動を表す「１」が設定されている為、次のステップＳ５０２に進む。
【００３１】
そして、プロセス再起動処理部２０２１は、ステップＳ５０１において取得したサーバ名とプロセス名とをキーとして監視対象プロセスＤＢ２０２３にアクセスし、そのプロセスについて、プロセス再起動実施回数がプロセス再起動閾値を超えているか否かを判定する（ステップＳ５０３）。
【００３２】
プロセス再起動処理部２０２１は、プロセス再起動実施回数がプロセス再起動閾値を超えていないと判定した場合（ステップＳ５０３；Ｙｅｓ）、プロセスを再起動するコマンドをそのプロセスが稼動しているプロセス監視対象サーバに対して発行し（ステップＳ５０４）、監視対象プロセスＤＢ２０２３に記憶されているプロセス再起動実施回数を、そのプロセス再起動実施回数に１を加えた値に更新する（ステップＳ５０５）。
【００３３】
例えば、図３において、サーバ名「Ｓｅｒｖｅｒ００１」およびプロセス名「Ｐｒｏｃｅｓｓ００１」のレコードの場合、プロセス再起動閾値として「５」が設定されているところ、プロセス再起動実施回数は「０」であり、プロセス再起動実施回数がプロセス再起動閾値を超えていない。したがって、プロセス再起動処理部２０２１は、ステップＳ５０４において、プロセス再起動コマンドを監視対象サーバ「Ｓｅｒｖｅｒ００１」に対して発行する処理を実行する。その後、プロセス再起動処理部２０２１は、ステップＳ５０５において、現在のプロセス再起動実施回数「０」に１を加えた数「１」をプロセス再起動実施回数に格納する。そして、このステップＳ５０５の処理が終了すると、ステップＳ５０１に戻り、例えば、プロセス障害判定復旧サーバ２００の電源がＯＦＦ状態となるまで、以降の処理を繰り返す。
【００３４】
ステップＳ５０３において、プロセス再起動処理部２０２１は、プロセス再起動実施回数がプロセス再起動閾値以上であると判定した場合（ステップＳ５０３；Ｎｏ）、そのプロセスの再起動実施回数を「０」に設定する（ステップＳ５０６）。このステップＳ５０６の処理が終了すると、プロセス再起動処理部２０２１は、サーバ再起動処理部２０２２を呼び出し、サーバ再起動処理部２０２２は、サーバ再起動処理（ステップＳ５０７）を行う。
【００３５】
例えば、図３において、サーバ名「Ｓｅｒｖｅｒ００２」およびプロセス名「Ｐｒｏｃｅｓｓ００２」のレコードの場合、プロセス再起動閾値として「５」が設定されているところ、プロセス再起動実施回数は「５」であり、プロセス再起動実施回数がプロセス再起動閾値以上となっている。したがって、プロセス再起動処理部２０２１は、ステップＳ５０６において、そのプロセス再起動実施回数を「０」に更新する処理を実行し、サーバ再起動処理部２０２２を呼び出し、サーバ再起動処理の実行が開始される。
【００３６】
図６は、サーバ再起動処理部２０２２が行うサーバ再起動処理の処理手順を示すフローチャートである。
【００３７】
図６に示すように、まず、サーバ再起動処理部２０２２は、図５に示したプロセス再起動処理において処理対象となっていたプロセス障害となっているサーバ名およびプロセス名を引き継ぎ、これらをキーとして冗長サーバＤＢ２０２４にアクセスし、設定されている稼動サーバ数から１を減じた値を格納する（ステップＳ６０１）。
【００３８】
例えば、図４において、サーバ名「Ｓｅｒｖｅｒ００１」およびプロセス名「Ｐｒｏｃｅｓｓ００１」のレコードの場合、稼動サーバ数に「２」が設定されているところ、サーバ再起動処理部２０２２は、これから１を減じた「１」に更新する処理を実行する。
【００３９】
次に、サーバ再起動処理部２０２２は、サーバ名およびプロセス名をキーとして監視対象プロセスＤＢ２０２３にアクセスし、そのサーバ内で優先順位の高いプロセスがあるか否かを判定し（ステップＳ６０２）、そのサーバ内でそのプロセスのプロセス優先度の値よりも値が小さいプロセスがないと判定した場合（ステップＳ６０２；Ｙｅｓ）、優先順位の高いプロセスが稼動していないものと判断する。一方、サーバ再起動処理部２０２２は、そのサーバ内でそのプロセスのプロセス優先度の値よりも値が小さいプロセスがあったと判定した場合（ステップＳ６０２；Ｎｏ）、何もせずにそのまま処理を終了させる。
【００４０】
例えば、図３において、サーバ名「Ｓｅｒｖｅｒ００１」およびプロセス名「Ｐｒｏｃｅｓｓ００２」のレコードの場合、プロセス優先度に「５０」が設定されているところ、そのサーバ名「Ｓｅｒｖｅｒ００１」と同じサーバでは、プロセス「Ｐｒｏｃｅｓｓ００１」および「Ｐｒｏｃｅｓｓ００３」が稼動している。ここで、これらのプロセス優先度は、それぞれ「４０」および「６０」が設定されており、「Ｐｒｏｃｅｓｓ００１」のプロセス優先度は、「Ｐｒｏｃｅｓｓ００２」のプロセス優先度「５０」よりも小さい値となっている。従って、サーバ再起動処理部２０２２は、優先順位が高いプロセスが稼動しているものと判断し、何もせずに処理を終了させる。
【００４１】
サーバ再起動処理部２０２２は、ステップS６０２において、優先順位の高いプロセスがなかったと判断した場合（ステップS６０２；Ｎｏ）、最低限稼動すべきプロセス監視対象サーバの数を満たしているか否か判定するため、ステップＳ６０３に進む。
【００４２】
例えば、図３において、サーバ名「Ｓｅｒｖｅｒ００２」およびプロセス名「Ｐｒｏｃｅｓｓ００１」のレコードの場合、プロセス優先度に「４０」が設定されているところ、そのサーバ名「Ｓｅｒｖｅｒ００２」と同じサーバでは、プロセス「Ｐｒｏｃｅｓｓ００２」および「Ｐｒｏｃｅｓｓ００３」が稼動している。ここで、これらのプロセス優先度は、それぞれ「５０」および「６０」が設定されており、「Ｐｒｏｃｅｓｓ００１」のプロセス優先度は、「Ｐｒｏｃｅｓｓ００２」のプロセス優先度「５０」および「Ｐｒｏｃｅｓｓ００３」のプロセス優先度「６０」よりも小さい値となっている。従って、サーバ再起動処理部２０２２は、優先順位が高いプロセスは稼動していないものと判断し、ステップＳ６０３に進む。
【００４３】
そして、ステップＳ６０３において、サーバ再起動処理部２０２２は、そのサーバ名およびプロセス名をキーとして冗長サーバＤＢ２０２４にアクセスし、稼動サーバ数が最低稼動サーバ閾値以下であるか否かを判定し（ステップＳ６０３）、稼動サーバ数が最低稼動サーバ閾値以下であると判定した場合（ステップＳ６０３；Ｎｏ）、何もせずに処理を終了させる。
【００４４】
例えば、図４において、サーバ名「Ｓｅｒｖｅｒ００１」およびプロセス名「Ｐｒｏｃｅｓｓ００１」のレコードの場合、稼動サーバ数に「２」が設定され、最低稼動サーバ閾値に「２」が設定されているところ、稼動サーバ数が最低稼動サーバ閾値以下となっているため、サーバ再起動処理部２０２２は、最低限稼動すべきプロセス監視対象サーバの数を満たしていないと判定し、何もせず処理を終了する。
【００４５】
一方、サーバ再起動処理部２０２２は、稼動サーバ数が最低稼動サーバ閾値より大きいと判定した場合（ステップＳ６０３；Ｙｅｓ）、その監視対象サーバに対してＯＳ再起動コマンドを送信し（ステップＳ６０４）、現在設定されている冗長サーバＤＢ２０２４の稼動サーバ数を、その稼動サーバ数に「１」を加えた数に更新し（ステップＳ６０５）、処理を終了させる。
【００４６】
例えば、図４において、サーバ名「Ｓｅｒｖｅｒ００１」およびプロセス名「Ｐｒｏｃｅｓｓ００２」のレコードの場合、稼動サーバ数に「２」が設定され、最低稼動サーバ閾値に「１」が設定されているところ、稼動サーバ数が最低稼動サーバ閾値より大きいため、サーバ再起動処理部２０２２は、監視対象サーバであるＳｅｒｖｅｒ００１」に対して、ＯＳ再起動コマンドを送信する処理を実行し、冗長サーバＤＢ２０２４の稼動サーバ数に、現在の稼動サーバ数「２」に「１」を加えた「３」に更新する処理を実行し、処理を終了させる。
【００４７】
そして、ステップＳ６０５の処理が終了すると、図６に示したサーバ再起動処理の全ての処理が終了し、図５に示したプロセス再起動処理に戻り、プロセス再起動処理では、そのままステップＳ５０１に戻って以降の処理を繰り返すこととなる。
【００４８】
このように、本実施の形態におけるプロセス障害判定復旧システム１０００では、プロセス障害が発生した際、プロセス再起動実施回数を判定し、プロセスの再起動で復旧するかを自動で判定しプロセスの再起動を実施しシステム正常稼動に自動復旧させ、プロセス再起動実施回数が閾値以上の場合には、プロセスの再起動では復旧が不可能と判断し、プロセスが稼動するＯＳを自動再起動を実施すると判断し、ＯＳを再起動させる際には、同一サーバ内でプロセス障害となったプロセスより優先度の高いプロセスが無いか、また障害プロセスと同一プロセスが稼動する別サーバが、システム全体の稼動維持の為に必要稼動サーバ数以下になっていないかを自動で判断した上でＯＳの再起動を行っている。
【００４９】
したがって、プロセス障害時に、人が判断して復旧していた部分（例えば、プロセスの再起動により対応すべきか、ＯＳの再起動により対応すべきか等の判断）を自動的に復旧できる手段を提供することができる。また、手動での作業が無くなる事により人為的ミスの発生を排除でき、その結果として、利用するユーザに対しては、障害時のシステムのダウンタイムの短縮を提供することができる。さらには、システム運用者に対しては、システムの自立運用を提供することができるようになる。
【００５０】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。例えば、プロセス障害検知システム２０１とプロセス障害判定復旧システム２０２とを１つのシステムとして構成する等、実施の形態に示される全構成要素からいくつかの構成要素を変更したり、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【００５１】
１０００  プロセス障害判定復旧システム
１００、１１０、１２０  プロセス監視対象サーバ
１００１〜１００３、１１０１〜１１０３、１２０１〜１２０３  プロセス
１０１０、１１１０、１２１０  ＯＳ（監視対象サーバ）
２００  プロセス障害判定復旧サーバ
２０３  ＯＳ（プロセス障害判定復旧サーバ）
２０１  プロセス障害検知システム
２０１１  プロセス障害検知ＤＢ
２０２  プロセス障害判定復旧システム
２０２１  プロセス再起動処理部
２０２２  サーバ再起動処理部
２０２３  監視対象プロセスＤＢ
２０２４  冗長サーバＤＢ
３００  ネットワーク。
【図１】
0005734107.tif 000002
【図２】
0005734107.tif 000003
【図３】
0005734107.tif 000004
【図４】
0005734107.tif 000005
【図５】
0005734107.tif 000006
【図６】
0005734107.tif 000007