(57)【要約】【課題】アプリケーションサーバに障害が発生したときでも監視の継続が可能で、かつ、障害の状況に応じた任意の処理の実行が可能な稼働状況監視システムを提供する。【解決手段】監視装置１０１は、アプリケーションサーバ１０４外で動作している。監視装置１０１は、アプリケーションサーバ１０４上で動作する仮想マシン１０５から複数項目の稼働状況を収集する。監視装置１０１は、収集した稼働状況をしきい値処理して障害状態の有無を判定する。実行装置１０２は、アクション実行手段１０３を有する。アクション実行手段１０３は、障害状態と判定されると、障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行する。【選択図】図１
2010237793.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションサーバ外で動作し、アプリケーションサーバ上で動作する仮想マシンから複数項目の稼働状況を収集し、該収集した稼働状況をしきい値処理して障害状態の有無を判定する監視手段と、
障害状態と判定されると、障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行するアクション実行手段とを備える稼働状況監視システム。
【請求項２】
前記監視手段は、前記収集された稼働状況をしきい値処理して障害状態からの復旧を判定し、前記アクション実行手段は、障害状態からの復旧と判定されると、障害復旧に対して定義された処理を実行する、請求項１に記載の稼働状況監視システム。
【請求項３】
前記監視手段が、資源の稼働状況を収集するリソース監視手段と、性能に関する稼働状況を収集する性能監視手段とを含む、請求項１又は２に記載の稼働状況監視システム。
【請求項４】
前記監視手段が、前記仮想マシンの死活監視を行う死活監視手段を更に含む、請求項３に記載の稼働状況監視システム。
【請求項５】
前記障害状態と判定されると、障害状態の通報を行う通報手段を更に備える、請求項１乃至４の何れか一に記載の稼働状況監視システム。
【請求項６】
前記障害状態と判定されると、前記仮想マシンから、障害情報を収集する障害情報収集手段を更に備える、請求項１乃至５の何れか一に記載の稼働状況監視システム。
【請求項７】
前記障害状態と判定されると、外部機器と連携し、前記異常と判定された仮想マシンに対するリクエストを制御する外部機器制御手段を更に備える、請求項１乃至６の何れか一に記載の稼働状況監視システム。
【請求項８】
前記監視手段は、前記収集した稼働状況を監視情報記録部に記録しており、該監視情報記録部に記録された稼働状況を前記仮想マシンに提供する監視情報提供手段を更に備える、請求項１乃至７の何れか一に記載の稼働状況監視システム。
【請求項９】
アプリケーションサーバ外で動作する監視装置が、アプリケーションサーバ上で動作する仮想マシンから複数項目の稼働状況を収集するステップと、
前記監視装置が、前記収集した稼働状況をしきい値処理して障害状態の有無を判定するステップと、
実行装置が、障害状態と判定されると、障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行するステップとを有する稼働状況監視方法。
【請求項１０】
前記監視装置が、前記収集された稼働状況をしきい値処理して障害状態からの復旧を判定するステップと、
前記実行装置が、障害状態からの復旧と判定されると、障害復旧に対して定義された処理を実行するステップとを更に有する、請求項９に記載の稼働状況監視方法。
【請求項１１】
前記稼働状況を収集するステップでは、前記仮想マシンの資源の稼働状況と、性能に関する稼働状況とを収集する、請求項９又は１０に記載の稼働状況監視方法。
【請求項１２】
前記稼働状況を収集するステップでは、更に、前記仮想マシンの死活状況を収集する、請求項１１に記載の稼働状況監視方法。
【請求項１３】
前記実行装置が、前記障害状態と判定されると、障害状態の通報を行うステップを更に有する、請求項９乃至１２の何れか一に記載の稼働状況監視方法。
【請求項１４】
前記実行装置が、前記障害状態と判定されると、前記仮想マシンから、障害情報を収集するステップを更に有する、請求項９乃至１３の何れか一に記載の稼働状況監視方法。
【請求項１５】
前記実行装置が、前記障害状態と判定されると、外部機器と連携し、前記異常と判定された仮想マシンに対するリクエストを制御するステップを更に有する、請求項９乃至１４の何れか一に記載の稼働状況監視方法。
【請求項１６】
前記監視装置が、前記収集した稼働状況を監視情報記録部に記録するステップと、
提供装置が、前記監視情報記録部に記録された稼働状況を前記仮想マシンに提供するステップを更に有する、請求項９乃至１５の何れか一に記載の稼働状況監視方法。
【請求項１７】
コンピュータに、
アプリケーションサーバ外から、アプリケーションサーバ上で動作する仮想マシンの複数項目の稼働状況を収集する処理と、
前記収集した稼働状況をしきい値処理して障害状態の有無を判定する処理と、
障害状態と判定されると、障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行する処理とを実行させるプログラム。
【請求項１８】
前記コンピュータに、
前記収集された稼働状況をしきい値処理して障害状態からの復旧を判定する処理と、
障害状態からの復旧と判定されると、障害復旧に対して定義された処理を実行する処理とを更に実行させる、請求項１７に記載のプログラム。
【請求項１９】
前記稼働状況を収集する処理では、前記仮想マシンの資源の稼働状況と、性能に関する稼働状況とを収集する、請求項１７又は１８に記載のプログラム。
【請求項２０】
前記稼働状況を収集する処理では、更に、前記仮想マシンの死活状況を収集する、請求項１９に記載のプログラム。
【請求項２１】
前記コンピュータに、前記障害状態と判定されると、障害状態の通報を行う処理を更に実行させる、請求項１７乃至２０の何れか一に記載のプログラム。
【請求項２２】
前記コンピュータに、前記障害状態と判定されると、前記仮想マシンから、障害情報を収集する処理を更に実行させる、請求項１７乃至２１の何れか一に記載のプログラム。
【請求項２３】
前記コンピュータに、前記障害状態と判定されると、外部機器と連携し、前記異常と判定された仮想マシンに対するリクエストを制御する処理を更に実行させる、請求項１７乃至２２の何れか一に記載のプログラム。
【請求項２４】
前記コンピュータに、
前記収集した稼働状況を監視情報記録部に記録する処理と、
前記監視情報記録部に記録された稼働状況を前記仮想マシンに提供する処理とを更に実行させる、請求項１７乃至２３の何れか一に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼働状況監視システム、方法、及び、プログラムに関し、更に詳しくは、アプリケーションサーバ上で動く仮想マシンの稼働状況を監視する稼働状況監視システム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
アプリケーションサーバ上で動く仮想マシンの稼働状況を監視する稼働状況監視システムがある。特許文献１は、Ｊａｖａ（登録商標）アプリケーションの監視システムに関する文献である。特許文献１では、Ｊａｖａ仮想マシン（ＶＭ：Virtual Machine）内に測定分析手段を設ける。測定分析手段は、ガベージコレクションのイベント発生時にデータの測定を行う機能と、定期的にデータの測定を行う機能とを有する。測定分析手段は、測定したデータを分析し、メモリ不足の危険性の予測を行う。測定分析手段は、メモリ不足の危険性があるときは、警告を行う。また、メモリ不足の危険性を回避するために必要なメモリ量を計算し、アプリケーションサーバに通知する。
【０００３】
特許文献２は、サーバ装置を監視するサービス管理システムに関する文献である。特許文献２に記載のサービス管理システムは、サービスを提供する複数のサーバ装置と、サーバ装置を監視するサーバ管理装置とを有する。サーバ管理装置は、サーバ装置の性能を測定し、その測定結果をサーバ装置の識別子と関連付けて記憶する。通信端末は、サーバ管理装置に、サーバ監視要求を送信する。このサーバ監視要求は、監視する性能項目や障害が起きたときのアクションを含む。サーバ管理装置は、サーバ監視要求を受け取ると、該当するサーバ装置の性能情報に基づいて障害発生の有無を判定する。サーバ管理装置は、障害発生と判定すると、サーバ監視要求で指定されたアクションに従って、障害発生を通信端末に送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】再公表特許ＷＯ２００４／９９９８５号公報
【特許文献２】特開２００４−６２４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、アプリケーションサーバ上のＪａｖａ仮想マシンの機能で測定・分析を行っている。つまり、測定・分析のための手段が、Ｊａｖａアプリケーションとして組み込まれている。このため、監視のための手段と、アプリケーションサーバやＪａｖａアプリケーションとが依存関係を有しており、アプリケーションサーバやＪａｖａアプリケーションなどで障害が発生すると、監視の継続ができなくなるという問題がある。
【０００６】
特許文献２では、サーバ監視要求で、監視対象項目と障害発生時のアクションとを指定する必要がある。また、特許文献２におけるアクションは、要求の送信元に通知するという程度の内容であり、業務継続のための処理を自動的に行うというようなものではない。
【０００７】
本発明は、アプリケーションサーバに障害が発生したときでも監視の継続が可能で、かつ、障害の状況に応じた任意の処理の実行が可能な稼働状況監視システム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の稼働状況監視システムは、アプリケーションサーバ外で動作し、アプリケーションサーバ上で動作する仮想マシンから複数項目の稼働状況を収集し、該収集した稼働状況をしきい値処理して障害状態の有無を判定する監視手段と、障害状態と判定されると、前記障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行するアクション実行手段とを備えることを特徴とする。
【０００９】
本発明の稼働状況監視方法は、アプリケーションサーバ外で動作する監視装置が、アプリケーションサーバ上で動作する仮想マシンから複数項目の稼働状況を収集するステップと、前記監視装置が、前記収集した稼働状況をしきい値処理して障害状態の有無を判定するステップと、実行装置が、障害状態と判定されると、前記障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行するステップとを有することを特徴とする。
【００１０】
本発明のプログラムは、コンピュータに、アプリケーションサーバ外から、アプリケーションサーバ上で動作する仮想マシンの複数項目の稼働状況を収集する処理と、前記収集した稼働状況をしきい値処理して障害状態の有無を判定する処理と、障害状態と判定されると、前記障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行する処理とを実行させることを特徴とする。
【発明の効果】
【００１１】
本発明の稼働状況監視システム、方法、及び、プログラムは、アプリケーションサーバに障害が発生したときでも監視の継続が可能であり、また、障害の状況に応じた任意の処理の実行が可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の稼働状況監視システムの概略を示すブロック図。
【図２】本発明の第１実施形態の稼働状況監視システムを示すブロック図。
【図３】監視装置の動作手順を示すフローチャート。
【図４】実行装置の動作手順を示すフローチャート。
【図５】本発明の第２実施形態の稼働状況監視システムを示すブロック図。
【発明を実施するための形態】
【００１３】
実施形態の説明に先立って、本発明の概要について説明する。図１は、本発明の稼働状況監視システムの概略を示している。監視装置１０１は、アプリケーションサーバ１０４外で動作している。監視装置１０１は、アプリケーションサーバ１０４上で動作する仮想マシン１０５から複数項目の稼働状況を収集する。監視装置１０１は、収集した稼働状況をしきい値処理して障害状態の有無を判定する。実行装置１０２は、アクション実行手段１０３を有する。アクション実行手段１０３は、監視装置１０１にて障害状態と判定されると、障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行する。
【００１４】
本発明では、監視装置１０１は、アプリケーションサーバ１０４の外部から、仮想マシン１０５の稼働状況を収集する。監視装置１０１は、アプリケーションサーバ１０４に依存しないので、仮にアプリケーションサーバ１０４に障害が発生したときでも、監視の継続が可能である。また、実行装置１０２には、複数の障害項目に対して、実行すべきアクションが定義されている。アクション実行手段１０３が、障害項目に対して定義された処理を実行することで、障害の状況に応じた任意の処理を実行できる。
【００１５】
ここで、アプリケーションサーバ１０４と監視装置１０１とは、同一マシンでもよい。ただし、その場合でも、監視装置１０１内の各種機能は、アプリケーションサーバ１０４の外部で動作する。例えば、アプリケーションサーバ１０４がビジネスロジックなどを組み込んだミドルウェアとして提供される場合、監視装置１０１内の各種機能は、ミドルウェアとしてのアプリケーションサーバ１０４の外で動作する。また、監視装置１０１と、実行装置１０２とは、同一マシンであってもよい。
【００１６】
以下、図面を参照し、本発明の実施形態を詳細に説明する。図２は、本発明の第１実施形態の稼働状況監視システムを示している。監視システムは、監視装置１０、実行装置２０、記録装置３０、アプリケーションサーバ４０、及び、出力装置５０を有する。監視装置１０及び実行装置２０は、プログラム制御により動作するコンピュータである。記録装置３０は、情報を記録する記憶装置である。出力装置５０は、ディスプレイ等の出力装置である。
【００１７】
アプリケーションサーバ４０は、ビジネスロジックなどを実装したアプリケーションソフトウェアを実行するサーバコンピュータ、又は、そのようなコンピュータ上でアプリケーションの実行を管理・補助するミドルウェアである。アプリケーションサーバ４０上では、仮想マシン（ＪａｖａＶＭ）４１が稼働している。
【００１８】
監視装置１０は、アプリケーションサーバ４０上で動作するＪａｖａＶＭ４１から複数の項目の稼働状況を収集する。より詳細には、監視装置１０は、資源の稼働状況と性能に関する稼働状況とを収集する。監視装置１０は、アプリケーションサーバ４０の外部で動作している。監視装置１０は、収集した稼働状況をしきい値処理し、障害状態の有無を判定する。監視装置１０は、障害状態と判定すると、その旨を実行装置２０に通知する。また、監視装置１０は、収集した稼働状況をしきい値処理して障害状態からの復旧を判定し、障害復旧を実行装置２０に通知する。
【００１９】
実行装置２０は、監視装置１０で障害状態が判定されると、障害項目に対してそれぞれ定義された所定の処理の中から、障害状態と判定された障害項目に該当する処理を実行する。実行装置２０は、監視装置１０で障害復旧が判定されたときは、障害復旧に対して定義された処理を実行する。実行装置２０が行う処理には、通報、所定のアクション、障害情報の収集がある。実行装置２０には、監視装置１０が障害又は障害からの復旧を判定したときに行うべき通報の内容、実行すべきアクション、及び、収集すべき情報を定義した定義情報を持っている。実行装置２０は、定義情報に従って、異常項目又は復旧項目に対応した通報、アクション、及び、情報収集を行う。
【００２０】
監視装置１０は、死活監視手段１１と、リソース監視手段１２と、性能監視手段１３とを有する。死活監視手段１１は、ＪａｖａＶＭ４１の死活監視を行う。死活監視手段１１は、周期的に、ＪａｖａＶＭ４１への接続と、リソースの取得とを試みる。死活監視手段１１は、ＪａｖａＶＭ４１への接続とリソースの取得とに成功すると、ＪａｖａＶＭ４１が「正常（稼働状態）」であると判断する。死活監視手段１１は、ＪａｖａＶＭ４１への接続、又は、リソースの取得に失敗すると、ＪａｖａＶＭ４１が「異常（稼働停止状態）」であると判断する。死活監視手段１１は、監視結果を、記録装置３０の監視情報記録部３１に記録する。
【００２１】
リソース監視手段１２は、ＪａｖａＶＭ４１における資源の稼働状況（リソース値）を収集する。リソースのカテゴリとしては、「メモリ」、「ガベージコレクト状況」、「スレッド」、「ＪａｖａＶＭ動作状況」などがある。「メモリ」のリソース情報として、ＪａｖａＶＭ自体が使用するヒープ領域のリソース情報と、ＪａｖａＶＭ上で実行されるアプリケーションが使用するヒープ領域のリソース情報とがある。「ガベージコレクション」のリソース情報としては、ガベージコレクションが発生する回数の情報と、カベージコレクションにおける所要時間の情報とがある。「スレッド」のリソース情報としては、デッドロックしているスレッドの状態やＣＰＵ（Central Processing Unit）時間などの詳細情報がある。「ＪａｖａＶＭ動作状況」のリソース情報としては、ＪａｖａＶＭの起動時間や稼働時間の情報がある。
【００２２】
リソース監視手段１２は、収集したリソース値をしきい値処理する。リソース監視手段１２は、リソース値が、異常発生を判断するためのしきい値を超えた、又は、下回ったと判断すると、異常が発生したと判定する。また、リソース監視手段１２は、異常発生の判定後、リソース値が、異常からの復旧を判断するためのしきい値以下となった、又は、以上になったと判断すると、異常状態から復旧したと判断する。リソース監視手段１２は、リソース値の異常発生又は復旧を、実行装置２０に通知する。また、リソース監視手段１２は、収集したリソース値を、記憶装置３０の監視情報記録部３１に記録する。
【００２３】
性能監視手段１３は、ＪａｖａＶＭ４１における性能の稼働状況（性能情報）を収集する。性能監視手段１３は、例えばＪａｖａＶＭ４１から、同時接続するユーザ数、レスポンスタイム、スループットなどを収集する。性能監視手段１３は、収集した性能情報をしきい値処理し、ＪａｖａＶＭ４１が異常状態にあるか否かを判定する。性能監視手段１３は、性能情報がしきい値を超えた、又は、下回ったと判断すると、パフォーマンスが低下した（パフォーマンスが異常状態）であると判定する。また、性能監視手段１３は、パフォーマンスが低下した判定した後に、性能情報がしきい値以下になった、又は、以上になったと判断すると、パフォーマンス低下状態から正常状態に復旧したと判定する。性能監視手段１３は、パフォーマンス低下又は復旧を、実行装置２０に通知する。また、性能監視手段１３は、収集した性能情報を、記憶装置３０の監視情報記録部３１に記録する。
【００２４】
実行装置２０は、障害通報手段２１と、アクション実行手段２２と、障害情報収集手段２３とを有する。障害通報手段２１は、障害状態の通報を行う。障害通報手段２１は、監視装置１０から障害発生又は復旧の通知を受けると、出力装置５０に障害発生又は復旧を知らせるメッセージを表示する。また、障害通報手段２１は、通報結果を、記録装置３０の実行情報記録部３２に記録する。
【００２５】
アクション実行手段２２は、障害項目に該当する処理を実行する。アクション実行手段２２は、監視装置１０から障害発生又は復旧の通知を受けると、あらかじめ定義されたアクション（処理）を実行する。アクション実行手段２２が実行するあらかじめ定義された処理とは、アプリケーションサーバ４０上で実行可能なコマンドやシェルスクリプトなどが該当する。アクション実行手段２２は、異常発生時に、コマンドやシェルスクリプトを実行することで、アプリケーションサーバ４０上で、必要な処理を実行する。アクション実行手段２２は、実行結果を、記録装置３０の実行情報記録部３２に記録する。
【００２６】
障害情報収集手段２３は、ＪａｖａＶＭ４１から障害情報を収集する。障害情報収集手段２３は、監視装置１０から障害発生又は復旧の通知を受けると、障害原因追及時に必要な情報を収集する。障害原因追及時に必要な情報の例として、システムトレース、メモリ、インストールされているソフトウェア一覧、ＯＳ（Operating System）ダンプなどがある。障害情報収集手段２３は、実行結果や収集した情報を、記録装置３０の実行情報記録部３２に記録する。
【００２７】
記録装置３０は、監視情報記録部３１と、実行情報記録部３２とを有する。監視情報記録部３１は、監視装置１０が監視した情報を記録する。監視情報記録部３１は、例えば、稼働状況、メモリ、カベージコレクション、スレッドの状況、状態状況などの情報を記憶する。実行情報記録部３２は、障害通報手段２１が行った障害の通報内容やその結果、アクション実行手段２２が実行した処理の実行結果、障害情報収集手段２３が収集した情報を記録する。
【００２８】
図３に、監視装置１０の動作手順を示す。死活監視手段１１は、死活監視を行う（ステップＡ１）。死活監視手段１１は、ＪａｖａＶＭ４１の稼働状態を、監視情報記録部３１に記録する（ステップＡ２）。死活監視手段１１は、ステップＡ１では、ＪａｖａＶＭ４１へ接続し、ＪａｖａＶＭ４１のリソース取得を試みる。死活監視手段１１は、ＪａｖａＶＭ４１への接続とリソース取得とに成功すると、Ｊａｖａ４１が正常に稼働していると判定する。死活監視手段１１は、ＪａｖａＶＭ４１に接続できないとき、又は、接続できてもリソース取得に失敗したときは、ＪａｖａＶＭ４１の稼働状態が異常と判定する。
【００２９】
死活監視手段１１は、ＪａｖａＶＭ４１の稼働状態が異常か否か、又は、異常状態から復旧したか否かを判断する（ステップＡ３）。死活監視手段１１は、稼働状態が異常である又は異常状態から復旧した判定すると、実行装置２０に、その旨を通知する（ステップＡ１０）。その際、死活監視手段１１は、実行装置２０に、稼働状況の異常又は復旧を示す識別子を渡す。
【００３０】
リソース監視手段１２は、ステップＡ３でＪａｖａＶＭ４１の稼働状態が正常であると判断されると、ＪａｖａＶＭ４１から、ＪａｖａＶＭ４１のメモリ、ガベージコレクション、スレッド情報、ＪａｖａＶＭ情報を収集する（ステップＡ４）。リソース監視手段１２は、収集したリソース情報を監視情報記録部３１に記録する（ステップＡ５）。
【００３１】
リソース監視手段１２は、リソース情報をしきい値処理し、リソース情報が正常状態であるか否かを判定する（ステップＡ６）。リソース監視手段１２は、例えば、空きメモリが所定のしきい値よりも以下のとき、異常状態と判定する。また、リソース監視手段１２は、空きメモリがしきい値よりも多いときは、正常状態と判定する。
【００３２】
リソース監視手段１２は、ステップＡ６で、リソース情報が異常状態である又は異常状態から復旧したと判定すると、ＪａｖａＶＭ４１又はＪａｖａアプリケーションが異常又は異常状態から復旧したと判断し、ステップＡ１０に進んで、その旨を実行装置２０に通知する。その際、リソース監視手段１２は、実行装置２０に、リソース情報の異常又は復旧を示す識別子を渡す。
【００３３】
性能監視手段１３は、ステップＡ６でリソース情報が正常であると判断されると、ＪａｖａＶＭ４１から、ＪａｖａＶＭへの接続数、レスポンスタイム、スループットを収集する（ステップＡ７）。性能監視手段１３は、収集した性能情報を監視情報記録部３１に記録する（ステップＡ８）。
【００３４】
性能監視手段１３は、性能情報をしきい値処理し、性能情報が正常状態であるか否かを判定する（ステップＡ９）。性能監視手段１３は、例えば、レスポンスタイムが所定のしきい値以上のとき、異常状態と判定する。また、性能監視手段１３は、レスポンスタイムがしきい値よりも小さいときは、正常状態と判定する。
【００３５】
性能監視手段１３は、ステップＡ９で性能情報が異常状態である又は異常状態から正常状態に復旧したと判定すると、ステップＡ１０に進んで、実行装置２０にその旨を通知する。その際、性能監視手段１３は、実行装置２０に、性能情報の異常又は復旧を示す識別子を渡す。実行装置２０は、所定の監視間隔だけ待機し（ステップＡ１１）、ステップＡ１に戻って死活監視を行う。
【００３６】
図４に、実行装置２０の動作手順を示す。実行装置２０は、監視装置１０から、異常又は復旧の通知を受ける。障害通報手段２１は、出力装置５０にメッセージを出力すると共に、電子メールやシステムログを用いて、異常発生又は異常からの復旧を通報する（ステップＢ１）。障害通報手段２１は、実行結果を実行情報記録部３２に記録する（ステップＢ２）。
【００３７】
アクション実行手段２２は、発生した障害又は障害からの復旧に対応したアクションを実行する（ステップＢ３）。その際、アクション実行手段２２は、監視装置１０から通知を受けた障害の識別子を用いて、死活監視、リソース情報、又は、性能情報の何れで障害発生又は障害からの復旧があったかを判別し、判別結果に応じてアクションを選択する。識別子は、障害等の細目を示す識別子、例えば、リソース情報が異常であるとき、どのリソースが異常であるかを示す識別子を含んでいてもよい。アクション実行手段２２は、実行結果を実行情報記録部３２に記録する（ステップＢ４）。
【００３８】
障害情報収集手段２３は、発生した障害又は障害からの復旧に対応して、障害情報の収集を行う（ステップＢ５）。障害情報収集手段２３は、ステップＢ５では、障害解析の各種ログを、対称アプリケーションサーバ４０から収集する。その際、障害情報収集手段２３は、監視装置１０から通知を受けた障害の識別子を用いて、死活監視、リソース情報、又は、性能情報の何れで障害発生又は障害からの復旧があったかを判別し、判別結果に応じて収集する障害情報を切り換えてもよい。障害情報収集手段２３は、実行結果を実行情報記録部３２に記録する（ステップＢ６）。
【００３９】
本実施形態では、監視装置１０は、アプリケーションサーバ４０とは別個に動作し、ＪａｖａＶＭ４１から稼働状況の収集を行う。本実施形態では、監視装置１０は、アプリケーションサーバ４０やＪａｖａＶＭ４１と依存関係がない。このため、監視装置１０は、アプリケーションサーバ４０や、Ｊａｖａアプリケーションで異常が発生した場合でも、ＪａｖａＶＭ４１の稼働状況を収集することができ、監視を継続することができる。
【００４０】
また、本実施形態では、稼働状況をしきい値処理するので、実際に障害が発生する前の段階で障害状態の検出が可能である。障害状態の検出時には、発生した障害に対応する処理を実行することで、障害状況に応じた処理の実行が可能である。具体的には、メモリの圧迫が大きいときにガベージコレクションを実行したり、スレッドがデッドロックしているときにスレッドの解放を実行したりすることができる。障害状況に応じた処理を行うことで、サービスダウンや、サービスレベルの低下を未然に防止することができる。
【００４１】
本実施形態では、上記したように、実際に障害が発生する前の段階で障害状態の検出が可能である。障害情報収集手段２３は、監視装置１０からの通知を受け、実際に障害が発生する前の段階で障害情報の収集を開始するので、実際の障害発生前後のタイミングでの情報を障害情報として収集できる。従って、本実施形態では、実際に障害が発生した後に障害情報の収集を開始する場合に比して、迅速に障害情報を収集できる。このことから、障害の早期解決が可能になるという効果が期待できる。
【００４２】
図５に、本発明の第２実施形態の稼働状況監視システムを示している。本実施形態の稼働状況監視システムは、図２に示す第１実施形態の稼働状況監視システムに、外部制御手段２４、提供装置６０、及び、ロードバランサ７０が追加された構成である。外部制御手段２４は、実行装置２０内に配置される。外部制御手段２４は、監視装置１０で異常発生や異常からの復旧が判定されると、外部装置であるロードバランサ７０との連携を行い、異常と判定されたＪａｖａＶＭ４１に対するリクエストの制御を行う。
【００４３】
具体的に、実行装置２０に、ＪａｖａＶＭ４１のストールや異常終了、性能などのサービスレベルの低下が監視装置１０から通知されたとする。外部制御手段２４は、監視装置１０からの通知を受けると、ロードバランサ７０と連携して、異常状態のＪａｖａＶＭ４１への接続を遮断する。また、外部制御手段２４は、ロードバランサ７０と連携して、異常状態のＪａｖａＶＭ４１に送信していたリクエストの送信先を、他のアプリケーションサーバ上のＪａｖａＶＭに切り替える。このようにすることで、業務の継続や、サービスレベル低下を防ぐことができるという効果が期待できる。
【００４４】
提供装置６０は、監視情報提供手段６１を有する。監視情報提供手段６１は、監視情報記録部３１に記録された情報を外部に公開するインタフェースを提供する。アプリケーションサーバ４０上のＪａｖａＶＭ４１は、監視情報提供手段６１を介して監視情報記録部３１に記録された情報を参照することができる。
【００４５】
具体的には、次のような利用形態が考えられる。すなわち、ＪａｖａＶＭ４１は、自身では監視していない性能やリソースの情報を、監視情報提供手段６１を介して監視情報記録部３１から取得する。ＪａｖａＶＭ４１は、取得した情報をＪａｖａアプリケーションの動作の制御に用いることができ、取得した情報に応じて、Ｊａｖａアプリケーションの動作を切り替えることができる。
【００４６】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の稼働状況監視システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【符号の説明】
【００４７】
１０：監視装置
１１：死活監視手段
１２：リソース監視手段
１３：性能監視手段
２０：実行装置
２１：障害通報手段
２２：アクション実行手段
２３：障害情報収集手段
２４：外部制御手段
３０：記録装置
３１：監視情報記録部
３２：実行情報記録部
４０：アプリケーションサーバ
４１：ＪａｖａＶＭ
５０：出力装置
６０：提供装置
６１：監視情報提供手段
７０：ロードバランサ
【図１】
2010237793.tif 000003
【図２】
2010237793.tif 000004
【図３】
2010237793.tif 000005
【図４】
2010237793.tif 000006
【図５】
2010237793.tif 000007