(57)【要約】【課題】アプリケーションの障害発生時に、本番環境に即した環境を再現し、障害再現を自動的に行うことができるアプリケーションサーバを提供する。【解決手段】リクエストに基づいてアプリケーションを実行する実行手段と、アプリケーションの動作状態を取得する取得手段と、前記動作状態がアプリケーションの障害発生状態である場合に、該障害発生時におけるリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行手段を生成する生成手段および前記アプリケーションを複製した障害再現用アプリケーションを実行する障害再現用アプリケーション実行手段を生成する生成手段と、擬似クライアント実行手段に対して障害再現用リクエストを障害再現用アプリケーション実行手段に送信させ、前記障害再現用アプリケーションの実行に伴うログデータを取得する障害再現手段と、を備えるアプリケーションサーバ。【選択図】図１
2011095886.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからアプリケーションのリクエストを受信して、該リクエストに基づいて前記アプリケーションを実行するアプリケーション実行手段と、
前記アプリケーション実行手段において実行される前記アプリケーションの動作状態を取得する取得手段と、
前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、該障害発生時における前記リクエストを取得して、該取得したリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行手段を生成する擬似クライアント生成手段と、
前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、前記アプリケーションを複製した障害再現用アプリケーションを実行する障害再現用アプリケーション実行手段を生成する障害再現用アプリケーション生成手段と、
前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記障害再現用アプリケーションの実行に伴うログデータを取得する障害再現手段と、
を備えるアプリケーションサーバ。
【請求項２】
さらに、ＣＰＵ使用率を取得するＣＰＵ使用率取得手段を備え、
前記障害再現手段は、
前記ＣＰＵ使用率取得手段によって取得されたＣＰＵ使用率が所定の使用率以下である場合に、前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記アプリケーションの実行に伴うログデータを取得する、請求項１に記載のアプリケーションサーバ。
【請求項３】
前記障害再現手段は、
前記アプリケーション実行手段において処理中のリクエストがない場合に、前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記アプリケーションの実行に伴うログデータを取得する、請求項１または請求項２に記載のアプリケーションサーバ。
【請求項４】
さらに、前記クライアントからアプリケーションのリクエストを受信して格納し、該格納したリクエストを順にアプリケーション実行手段に送信するキュー手段を備え、
前記障害再現手段は、
前記キュー手段に前記アプリケーションのリクエストが存在しない場合に、前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記アプリケーションの実行に伴うログデータを取得する、請求項１〜３のいずれか１項に記載のアプリケーションサーバ。
【請求項５】
前記障害再現手段は、前記ログデータを取得した後、前記擬似クライアント実行手段および前記障害再現用アプリケーション実行手段を削除する、請求項１〜４のいずれか１項に記載のアプリケーションサーバ。
【請求項６】
クライアントからアプリケーションのリクエストを受信して、該リクエストに基づいて前記アプリケーションを実行する段階と、
前記実行される前記アプリケーションの動作状態を取得する段階と、
前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、該障害発生時における前記リクエストを取得して、該取得したリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行手段を生成する段階と、
前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、前記アプリケーションを実行する障害再現用アプリケーション実行手段を生成する障害再現用アプリケーション段階と、
前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記障害再現用アプリケーションの実行に伴うログデータを取得する段階と、
を含むアプリケーション障害再現方法。
【請求項７】
請求項７に記載のアプリケーション障害再現方法をコンピュータで実行させるためのアプリケーション障害再現プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションサーバ、アプリケーション障害再現方法、およびアプリケーション障害再現プログラムに関する。
【背景技術】
【０００２】
従来より、アプリケーションで障害が発生した場合、該障害発生時のログを解析することにより、該障害の原因究明や早期復旧を図ることが行われている。
【０００３】
ただし、実際にアプリケーションをユーザに提供しているシステムの本番環境において、障害解析を実施するためにログを採取する設定でシステムを運用することは、アプリケーションサーバにおけるＣＰＵ使用率が増加するなど、システム性能を劣化させてしまう。そのため、本番環境で常にログを採取する設定でアプリケーションを動作させることは難しく、障害発生時にログを採取できない場合も多い。
【０００４】
よって、従来では、障害解析を実施する際は、本番環境に影響を与えることなく障害を再現させる環境を、アプリケーション管理者などが手動で構築し、該構築した環境で障害を再現させてログを採取する方法が用いられていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−７８９３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、この従来の障害再現方法は、障害を再現するためのシステム環境を手動で構築するため、該環境を構築する人員をアサインしなければならず、環境構築に時間がかかり、また、動作中のサーバとは別に環境構築用のリソースを確保しなければならないという問題点があった。
【０００７】
さらに、従来の障害再現方法では、アサインした人員のスキルなどに起因した環境構築の差異などにより、本番環境と差分が生まれ、障害が再現せず、障害発生の原因を解析できないという問題点もあった。
【０００８】
特許文献１の技術などにおいても、シミュレーションモードに手動で切り換え、実際のアプリケーションが実行されるアプリケーションサーバとは異なる保守端末において、擬似的な本番環境を構築して障害を再現させるものであるため、環境構築に時間がかかり、環境構築用のリソースを確保しなければならず、また、構築された環境が本番環境と必ずしも一致しないことにより障害が再現せず、障害発生の原因を解析できないという上記問題点を有している。
【０００９】
したがって、本発明は、上記問題点を解決し、本番環境に与える影響を抑えつつ、アプリケーションの障害発生時に、本番環境に即した環境を再現し、障害再現を自動的に行うことができる新しいアプリケーションサーバ、アプリケーション障害解析方法、およびアプリケーション障害再現プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によるアプリケーションサーバは、クライアントからアプリケーションのリクエストを受信して、該リクエストに基づいて前記アプリケーションを実行するアプリケーション実行手段と、前記アプリケーション実行手段において実行される前記アプリケーションの動作状態を取得する取得手段と、前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、該障害発生時における前記リクエストを取得して、該取得したリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行手段を生成する擬似クライアント生成手段と、前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、前記アプリケーションを複製した障害再現用アプリケーションを実行する障害再現用アプリケーション実行手段を生成する障害再現用アプリケーション生成手段と、前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記アプリケーションの実行に伴うログデータを取得する障害再現手段と、を備える。
【００１１】
本発明によるアプリケーション障害再現方法は、クライアントからアプリケーションのリクエストを受信して、該リクエストに基づいて前記アプリケーションを実行する段階と、前記実行される前記アプリケーションの動作状態を取得する段階と、前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、該障害発生時における前記リクエストを取得して、該取得したリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行手段を生成する段階と、前記取得した前記動作状態が前記アプリケーションの障害発生状態である場合に、前記アプリケーションを複製した障害再現用アプリケーションを実行する障害再現用アプリケーション実行手段を生成する障害再現用アプリケーション段階と、前記擬似クライアント実行手段に対して前記障害再現用リクエストを前記障害再現用アプリケーション実行手段に送信させ、該障害再現用アプリケーション実行手段における前記アプリケーションの実行に伴うログデータを取得する段階と、を含む。
【００１２】
本発明によるアプリケーション障害再現プログラムは、上記アプリケーション障害再現方法をコンピュータで実行させるものである。
【発明の効果】
【００１３】
以上のように構成された本発明によれば、アプリケーションの障害発生時に、障害発生したアプリケーションを複製し、かつ、障害発生時にアプリケーションが受信したリクエストを送信する擬似クライアント実行手段を生成して障害再現を実行するため、環境構築にかかるリソースを最小限に抑えつつ、本番環境に即した環境を再現することができる。また、アプリケーションサーバが自動的に障害を再現することができるので、環境を構築する人員または環境構築にかかる時間を最小限に抑えることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のアプリケーションシステム１の概略構成の一例を示す図である。
【図２】本実施形態にアプリケーションサーバ２０等のハードウェア構成を示す概略図である。
【図３Ａ】本実施形態のアプリケーション障害再現方法の処理内容を示すフローチャートである。
【図３Ｂ】本実施形態のアプリケーション障害再現方法の処理内容を示すフローチャートである。
【図４】本実施形態の障害再現用アプリケーションの生成を説明するための図である。
【図５】本実施形態のアプリケーションサーバ２０において実行される各処理の概念図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための好適な実施形態を、図面を参照しながら説明する。
【００１６】
図１は、本発明の第１実施形態のアプリケーションシステム１の概略構成の一例を示す図である。
【００１７】
アプリケーションシステム１は、図１に示すとおり、クライアント端末１０と、アプリケーションサーバ２０とを含んで構成され、各端末は通信ネットワーク（たとえば、Ｌａｙｅｒ３スイッチおよびＬＡＮケーブルなど）を介して相互に通信可能に接続されている。なお、クライアント端末１０およびアプリケーションサーバ２０は、ハードウェアとして、図２に示すように、たとえば、ＣＰＵ、ＣＰＵにバス結合されたＲＯＭ、ＲＡＭ、記憶部、入力部、表示部、および入出力インタフェースなど、通常のコンピュータ装置と同様のハードウェアを備える。これらクライアント端末１０およびアプリケーションサーバ２０は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。たとえば、一般的な構成の情報処理装置において、本発明のアプリケーション障害再現方法における各処理を規定したソフトウェアを起動することにより、アプリケーションシステム１を実現することもできる。
【００１８】
クライアント端末１０は、アプリケーションサーバ２０で提供されるアプリケーションを利用する端末である。クライアント端末１０は、アプリケーションを利用する際、クライアント端末１０が備えるソフトウェア（クライアント）を用いてアプリケーションサーバ２０に対してリクエストを送信する。なお、クライアント端末１０の構成および機能は、原則として、一般的なアプリケーションを利用するクライアント端末と同様にすることができるので、ここでの詳細な説明は省略する。なお、アプリケーションシステム１におけるクライアント端末１０は、１台に限られず、複数台有していてもよい。
【００１９】
アプリケーションサーバ２０は、クライアント端末１０に対してアプリケーションを提供する装置である。アプリケーションサーバ２０は、図１に示すように、キュー部２１、アプリケーション実行部２２、ＴＰモニタ部２３、ＣＰＵ監視プロセス部２４、擬似クライアント実行部２５、および障害再現用アプリケーション実行部２６を備える。これら各部は、たとえば、主にＣＰＵがＲＯＭやＲＡＭに格納されるプログラムを実行し、各ハードウェアを制御することにより、実現することができる。なお、擬似クライアント実行部２５および障害再現用アプリケーション実行部２６は、後述するように、ＴＰモニタ部２３によって、生成・削除される。
【００２０】
キュー部２１は、クライアントからアプリケーションのリクエストを受信して格納し、該格納したリクエストを順にアプリケーション実行部２２に送信するものであって、キュー手段として機能する。また、キュー部２１は、受信して格納したリクエストの有無の情報をＴＰモニタ部２３に送信する。
【００２１】
アプリケーション実行部２２は、クライアントからキュー部２１を介してアプリケーションのリクエストを受信して、該リクエストに基づいてアプリケーションを実行するものであって、アプリケーション実行手段として機能する。また、アプリケーション実行部２２は、実行するアプリケーションに障害が発生した場合、該障害が発生したことをＴＰモニタ部２３に送信（通知）する。
【００２２】
ＴＰモニタ部２３は、トランザクション単位で各種一連の処理を実行・制御するものであって、アプリケーション動作状態取得手段２３１、ＴＰ擬似クライアント生成手段２３２、障害再現用アプリケーション生成手段２３３、ＣＰＵ使用率取得手段２３４、および障害再現手段２３５として機能する。
【００２３】
ＴＰモニタ部２３は、アプリケーション動作状態取得手段２３１として、アプリケーション実行部２２において実行されるアプリケーションの動作状態を取得する。アプリケーションの動作状態とは、たとえば、アプリケーションが正常に動作している正常状態、アプリケーションにエラーなどの障害が発生した障害発生状態、およびアプリケーションが実行されていない停止状態の各状態を含む。
【００２４】
ＴＰモニタ部２３は、擬似クライアント生成手段２３２として、上記取得したアプリケーションの動作状態がアプリケーションの障害発生状態である場合に、該障害発生時におけるリクエストをアプリケーション実行部２２から取得して、該取得したリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行部２５を生成する。なお、擬似クライアント実行部２５の生成については後述する。
【００２５】
ＴＰモニタ部２３は、障害再現用アプリケーション生成手段２３３として、上記取得したアプリケーションの動作状態がアプリケーションの障害発生状態である場合に、該アプリケーションを複製した障害再現用アプリケーションを実行する障害再現用アプリケーション実行部２６を生成する。なお、障害再現用アプリケーション実行部２６の生成については後述する。
【００２６】
ＴＰモニタ部２３は、ＣＰＵ使用率取得手段２３４として、後述するＣＰＵ監視プロセス部２４からＣＰＵ使用率を取得する。
【００２７】
ＴＰモニタ部２３は、障害再現手段２３５として、所定の条件を満たした場合に、擬似クライアント実行部２５に対して障害再現用リクエストを障害再現用アプリケーション実行部２６に送信させ、該障害再現用アプリケーション実行部２６における障害再現用アプリケーションの実行に伴うログデータを取得する。ここで、所定の条件を満たした場合とは、ＣＰＵ監視プロセス部２４から取得したＣＰＵ使用率が所定の使用率（閾値）以下である場合、アプリケーション実行部２２において処理中のリクエストがない場合、およびキュー部２１にアプリケーションの新規リクエストが存在しない場合である。すなわち、ＴＰモニタ部２３は、ＣＰＵ使用率、新規リクエスト、および障害再現状況に基づいて、擬似クライアント実行部２５へ障害再現（障害再現評価）の開始と停止の制御を行う。この障害再現は、ユーザがアプリケーションサーバにおいて障害再現を実行しないという設定を行うか、または障害再現用アプリケーション実行部２６で障害が再現し、障害再現を実施する必要がなくなるまで継続して行われる。ＴＰモニタ部２３は、ログデータを取得した後、障害再現用アプリケーション実行部２６と擬似クライアント実行部２５を削除する。
【００２８】
ＣＰＵ監視プロセス部２４は、アプリケーションサーバにおけるＣＰＵの使用率を監視する。ＣＰＵ監視プロセス部２４は、監視した結果であるＣＰＵ使用率をＴＰモニタ部２３に提供する。
【００２９】
擬似クライアント実行部２５は、ＴＰモニタ部２３からの障害再現の開始を通知されることで、障害再現用アプリケーション実行部２６に対して障害再現用リクエストを送信するものであって、擬似クライアント実行手段として機能する。また、擬似クライアント実行部２５は、ＴＰモニタ部２３からの障害再現の停止を通知されることで、上記障害再現用リクエストの送信を停止する。
【００３０】
障害再現用アプリケーション実行部２６は、擬似クライアント実行部２５から障害再現用リクエストを受信して、該障害再現用リクエストに基づいて障害再現用アプリケーションを実行するものであって、障害再現用アプリケーション実行手段として機能する。また、障害再現用アプリケーション実行部２６は、障実行する障害再現用アプリケーションに障害が発生した場合、該障害が発生したことをＴＰモニタ部２３に送信（通知）する。さらに、障害再現用アプリケーション実行部２６は、実行した障害再現用アプリケーションのログデータ（ログ）を出力する。なお、障害再現用アプリケーションの生成については後述する。
【００３１】
以下、図３Ａ，図３Ｂに示すフローチャートを参照して、アプリケーションシステム１を用いて実施される本実施形態のアプリケーション障害再現方法を説明する。以下では、アプリケーション実行部２２が、クライアントからキュー部２１を介してアプリケーションのリクエストを受信し、該リクエストに基づいてアプリケーションを実行する場合におけるＴＰモニタ部２３の動作について説明する。なお、各図のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３２】
まず、ＴＰモニタ部２３が、アプリケーション実行部２２において実行されるアプリケーションの動作状態を取得する（ステップＳ１０１）。アプリケーションの動作状態（障害発生状態）の取得は、たとえば、実行するアプリケーションに障害が発生した場合に、アプリケーション実行部２２から該障害が発生した情報が送信されることで、取得することができる。なお、アプリケーションの動作状態の取得は、アプリケーション実行部２２から障害が発生した情報が送信されて取得する場合に限られず、たとえば、アプリケーション実行部２２が定期的にアプリケーション実行部２２の動作状態を問い合わせ、該動作状態を取得するようにしてもよい。
【００３３】
アプリケーションの動作状態が障害発生状態である場合（ステップＳ１０２：Ｙｅｓ）、ＴＰモニタ部２３が、障害発生したアプリケーションを複製した障害再現用アプリケーション実行部２６を生成する（ステップＳ１０３）。一方、アプリケーションの動作状態が障害発生状態でない場合（ステップＳ１０２：Ｎｏ）、アプリケーションの動作状態が障害発生状態となるまで待機する。
【００３４】
ここで、図４を参照して、障害再現用アプリケーションの生成について説明する。障害発生したアプリケーションの設定情報は、たとえば、図４（Ａ）に示すように、ログ採取「無し」、ログファイルサイズ「１ＭＢ」、ログ出力ディレクトリ「ＡＡＡ」などである。一方、アプリケーションの設定情報を複製した障害再現用アプリケーションは、図４（Ｂ）に示すように、ログ採取「有り」、ログファイルサイズ「１ＭＢ」、ログ出力ディレクトリ「ＡＡＡ」などである。すなわち、障害再現用アプリケーションは、複製元のアプリケーションと、そのログ採取の設定を「無し」から「有り」に変え、他の設定を共通としている。
【００３５】
次いで、ＴＰモニタ部２３が、該障害発生時におけるリクエストをアプリケーション実行部２２から取得して、該取得したリクエストに応じた障害再現用リクエストを送信するための擬似クライアント実行部２５を生成する（ステップＳ１０４）。たとえば、図５に示すように、「ＡＡＡＢＢＢＣＣＣＤＤＤ・・・」といった電文で障害が発生した場合、ＴＰモニタ部２３が、該電文を取得し、該電文と同じ電文「ＡＡＡＢＢＢＣＣＣＤＤＤ・・・」を送信する擬似クライアント実行部２５を生成する。擬似クライアント実行部２５を生成する際、ＴＰモニタ部２３は、取得した電文を、たとえば、電文格納テーブルに一時保存する。なお、擬似クライアント実行部２５が送信するリクエストは、アプリケーションにおける障害発生時のリクエストと全く同じ電文を用いる場合に限られず、アプリケーション実行部２２で発生した障害が障害再現用アプリケーション実行部２６において再現できるリクエストであればよく、適宜加工してもよい。
【００３６】
次いで、ＴＰモニタ部２３が、ＣＰＵ監視プロセス部２４からＣＰＵ使用率を取得する（ステップＳ１０５）。
【００３７】
ＣＰＵ監視プロセス部２４から取得したＣＰＵ使用率が所定の使用率（閾値）以下の場合であって（ステップＳ１０６：Ｙｅｓ）、アプリケーション実行部２２において処理中のリクエストがない場合であって（ステップＳ１０７：Ｙｅｓ）、キュー部２１にアプリケーションの新規リクエストが存在しない場合（ステップＳ１０８：Ｙｅｓ）、ＴＰモニタ部２３は、障害再現（障害再現評価）を開始する（ステップＳ１０９）。ＴＰモニタ部２３は、擬似クライアント実行部２５から障害再現用リクエストを障害再現用アプリケーション実行部２６に送信させ、該障害再現用アプリケーション実行部２６における前記アプリケーションの実行に伴うログデータを取得する。すなわち、擬似クライアント実行部２５は、障害再現の通知を受信することで、障害再現用リクエストを障害再現用アプリケーション実行部２６に送信し、障害再現用アプリケーション実行部２６は、障害再現用アプリケーションを実行する。障害再現用アプリケーション実行部２６は、障害再現用アプリケーションでの障害再現時のログデータを出力する。そして、ＴＰモニタ部２３は、このログデータを取得する。アプリケーションの提供者は、たとえば、このログデータに基づき、障害が発生した場合に、その障害を解析することができる。なお、上記閾値は、本番環境に影響を及ぼさない値（たとえば、５％）をユーザによって適宜設定することができる。
【００３８】
一方、ＣＰＵ使用率が所定の使用率以下でない場合（ステップＳ１０６：Ｎｏ）、アプリケーション実行部２２において処理中のリクエストがある場合（ステップＳ１０７：Ｎｏ）、またはキュー部２１にアプリケーションの新規リクエストが存在する場合（ステップＳ１０８：Ｎｏ）、一定時間経過後（一定時間Ｓｌｅｅｐ）、再度、ステップＳ１０６の処理に移る。
【００３９】
次に、障害再現評価を開始した後、障害再現評価を停止する段階について説明する。
【００４０】
ＴＰモニタ部２３は、障害再現評価を開始した後でも、一定時間経過後（一定時間Ｓｌｅｅｐ）、ＣＰＵ使用率を定期的に取得する（ステップＳ１１０）。
【００４１】
ＣＰＵ監視プロセス部２４から取得したＣＰＵ使用率が所定の使用率以下の場合でない場合（ステップＳ１１１：Ｎｏ）、またはキュー部２１にアプリケーションの新規リクエストが存在する場合（ステップＳ１１２：Ｎｏ）、ＴＰモニタ部２３が、障害再現評価を停止する（ステップＳ１１３）。停止後は、一定時間経過後（一定時間Ｓｌｅｅｐ）、再度、ステップＳ１０６の処理に移る。
【００４２】
ＣＰＵ使用率が所定の使用率以下の場合であって（ステップＳ１１１：Ｙｅｓ）、キュー部２１にアプリケーションの新規リクエストが存在しない場合であって（ステップＳ１１２：Ｙｅｓ）、かつ、障害が再現している場合（ステップＳ１１４：Ｎｏ）、ＴＰモニタ部２３は、障害再現評価を停止する（ステップＳ１１５）。具体的には、ＴＰモニタ部２３が、障害再現用アプリケーション実行部２６から障害が発生した旨の通知を受信することで、障害再現評価を停止する通知を擬似クライアント実行部２５に通知する。擬似クライアント実行部２５は、障害再現評価を停止する通知を受信することで、障害再現用アプリケーションに対しての障害再現用リクエストの送信を停止する。
【００４３】
一方、障害が再現していない場合（ステップＳ１１４：Ｙｅｓ）、一定時間経過後（一定時間Ｓｌｅｅｐ）、再度、ステップＳ１１０の処理に移る。
【００４４】
ステップＳ１１５において障害再現評価を停止した後、ＴＰモニタ部２３が、擬似クライアント、障害再現用アプリケーションを削除する（ステップＳ１１６〜Ｓ１１７）。
【００４５】
以上、本実施形態のアプリケーションシステムおよびアプリケーション障害再現方法によれば、アプリケーションの障害発生時に、障害発生したアプリケーションを複製した障害再現用アプリケーションを実行する障害再現用アプリケーション実行手段を生成し、かつ、障害発生時にアプリケーションが受信したリクエストを送信する擬似クライアント実行部を生成して障害再現を実行するため、環境構築にかかるリソースを最小限に抑えつつ、本番環境に即した環境を再現することができる。
【００４６】
また、アプリケーションサーバが自動的に障害を再現し、該障害再現時のログデータを取得することができるので、環境を構築する人員または環境構築にかかる時間を最小限に抑えることができる。
【００４７】
さらに、障害再現（障害解析評価）で本番環境の業務に影響を与えないように、ＣＰＵ使用率が所定の使用率以下である場合、キューにアプリケーションの新規リクエストが存在しない場合、アプリケーション実行部で処理中のリクエストがない場合に、障害を再現するため、本番環境に影響を与えることなく、障害再現用アプリケーション実行部で障害を再現することができる。
【００４８】
さらに、障害再現アプリケーション実行部で障害を再現後、擬似クライアントおよび障害再現用アプリケーションを削除するため、アプリケーションサーバにおいて記憶されるデータ量の増大を防ぐことができる。
＜変形例＞
【００４９】
以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
【００５０】
たとえば、上記本実施形態では、アプリケーションの障害再現が、ＣＰＵ使用率が所定の使用率以下であるか、新規リクエストを受信していないか、処理中のリクエストが無いかという各条件を全て満たす場合に実行される場合を例にとって説明したが、本発明はこれに限られず、たとえば、上記３つの条件のうち少なくとも１つの条件を満たす場合に実行されてもよい。
【００５１】
また、上記本実施形態では、キュー部２１を構成要素として用いる場合を説明したが、本発明はこれに限られず、たとえば、キュー部２１を省略し、クライアント端末からアプリケーション実行部２２に直接リクエストが到達するような構成としてもよい。
【００５２】
さらに、上記本実施形態では、ログデータ出力後、擬似クライアント実行部２５および障害再現用アプリケーション実行部２６を削除しているが、本発明はこれに限られず、たとえば、ログデータとともに、該擬似クライアント実行部２５および障害再現用アプリケーション実行部２６を保存する構成としてもよい。
【００５３】
さらに、上記本実施形態では、擬似クライアント実行部２５に障害再現用リクエストを送信させて、該障害再現用リクエストに基づいて障害再現用アプリケーション実行部２６で障害を再現させているが、本発明はこれに限られず、たとえば、擬似クライアント実行部２５に障害再現用リクエストを障害再現用アプリケーション実行部２６に繰り返し送信させて、障害再現用アプリケーション実行部２６に負荷をかけ、障害を再現させることもできる。
【００５４】
さらに、上記各実施形態では、アプリケーションサーバ２０において、それぞれの処理機能を有する各部が備えられている構成を説明したが、本発明はこれに限られず、各部がアプリケーションサーバ２０と通信可能に接続されたネットワーク上に又は他の装置に備えて構成することもできる。
【００５５】
さらに、アプリケーションサーバ２０には、用途に応じた各部がそれぞれ備えられているが、アプリケーションサーバ２０に備えられている各部は、そのいくつかを一纏めにして構成されていてもよいし、一つの部をさらに複数の部に分割して構成されていてもよい。
【符号の説明】
【００５６】
１  アプリケーションシステム、
１０  クライアント端末、
２０  アプリケーションサーバ、
２１  キュー部、
２２  アプリケーション実行部、
２３  ＴＰモニタ部、
２４  ＣＰＵ監視プロセス部、
２５  擬似クライアント実行部、
２６  障害再現用アプリケーション実行部。
【図１】
2011095886.tif 000003
【図２】
2011095886.tif 000004
【図３Ａ】
2011095886.tif 000005
【図３Ｂ】
2011095886.tif 000006
【図４】
2011095886.tif 000007
【図５】
2011095886.tif 000008