(57)【要約】  検出部（１１０）は、計算機（１０）のプログラムの停止を検出する。取得部（１２０）は、検出部（１１０）によってプログラムの停止が検出されたときの計算機（１０）のシステムログ（１２１）およびダンプ情報（１２２）を取得する。抽出部（１３０）は、システムログ（１２１）およびダンプ情報（１２２）からエラーメッセージ（１３１）および特定のダンプ情報（１３２）を抽出する。データベース部（１４０）には、複数のパッチＡ，Ｂ，Ｃ，…と、パッチＡ，Ｂ，Ｃ，…のそれぞれの選択条件が記憶されたデータベースが格納されている。特定部（１５０）は、データベース部（１４０）に格納されたデータベースに基づいて、エラーメッセージ（１３１）および特定のダンプ情報（１３２）が選択条件を満たすパッチをパッチＡ，Ｂ，Ｃ，…の中から特定する。出力部（１６０）は、特定部（１５０）によって特定されたパッチＢを適用パッチ候補として出力する。
2009104268.tif 000002
【特許請求の範囲】
【請求項１】
計算機の障害を検出する検出手段と、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段と、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段と、
前記特定手段によって特定された特定結果を出力する出力手段と、
を備えることを特徴とするパッチ候補選択装置。
【請求項２】
前記取得手段は、
前記記録情報として前記計算機のシステムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、
前記特定手段は、
前記データベースに基づいて、前記抽出手段によって抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項３】
前記取得手段は、
前記記録情報として前記計算機のプログラムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたプログラムログから、前記障害を特定する情報を抽出することを特徴とする請求項１または２に記載のパッチ候補選択装置。
【請求項４】
前記取得手段は、
前記記録情報として前記計算機のダンプ情報を取得し、
前記抽出手段は、
前記記録情報として前記取得手段によって取得されたダンプ情報から前記障害を特定する情報を抽出することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項５】
前記特定手段は、
さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項６】
前記計算機のシステム情報を取得するシステム情報取得手段を備え、
前記特定手段は、
さらに、前記システム情報取得手段によって取得されたシステム情報が前記選択条件と一致するパッチを特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項７】
前記特定手段は、
さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出手段によって検出された障害の発生日時と適用日時が一致するパッチを特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項８】
コンピュータを、
計算機の障害を検出する検出手段、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段、
前記特定手段によって特定された特定結果を出力する出力手段、
として機能させることを特徴とするパッチ候補選択プログラム。
【請求項９】
計算機の障害を検出する検出工程と、
前記検出工程によって検出された障害が発生したときの前記計算機の記録情報を取得する取得工程と、
前記取得工程によって取得された記録情報から前記障害を特定する情報を抽出する抽出工程と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出工程によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定工程と、
前記特定工程によって特定された特定結果を出力する出力工程と、
を含んだことを特徴とするパッチ候補選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計算機に適用するパッチの候補を選択するパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法に関する。
【背景技術】
【０００２】
従来、計算機に発生した障害を解消し、または計算機に障害が発生することを未然に防ぐために、計算機にインストールされた各プログラムの差分であるパッチの提供がおこなわれている。パッチの提供は、計算機にインストールされた各プログラムのメーカーが管理するサーバなどによって提供される。クライアント側の計算機は、パッチを提供するサーバからインターネットなどを介してパッチをダウンロードして、自装置に適用する。【０００３】
パッチは、障害の大小を問わず膨大な数が提供されるため、個別の計算機に必要なパッチを選択することは困難である。このため、従来、サーバが提供可能なすべてのパッチをダウンロードして計算機に適用したり、計算機の障害発生時の各種情報から適当なパッチを探す作業を専門家に依頼したりしている。また、公開障害情報に基づいてパッチを特定する技術が開示されている（たとえば、下記特許文献１参照。）。【０００４】
【特許文献１】特開２００３−２３３５１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、すべてのパッチをダウンロードして計算機に適用する場合は、ダウンロードおよび適用処理に時間がかかり、計算機の運用を長時間停止しなければならないという問題がある。また、必要以上のパッチを適用することで、レベルダウン（適用済みパッチによる２次障害）の可能性が高まるという問題がある。また、すべてのパッチを適用している場合は、レベルダウンが発生した際に、膨大な数のパッチの中からレベルダウンを引き起こしたパッチを特定することは困難であるという問題がある。【０００６】
また、計算機の障害発生時の各種情報から適当なパッチを探す作業を専門家に依頼する場合は、作業者のスキルによってはパッチの選択の精度が悪かったり、複数のパッチを組み合わせる必要がある場合などはスキルの高い作業者であってもパッチの選択が困難であったりするという問題がある。また、上記特許文献１には、具体的にどのような公開障害情報を用いてどのような処理によってパッチを特定するのかについて開示されていない。【０００７】
この発明は、上述した従来技術による問題点を解消するため、必要最小限のパッチの候補を自動的に選択することができるパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、計算機の障害を検出し、検出された障害が発生したときの前記計算機の記録情報を取得し、取得された記録情報から前記障害を特定する情報を抽出し、パッチとその選択条件が記憶されたデータベースに基づいて、抽出された障害を特定する情報が前記選択条件を満たすパッチを特定し、特定された特定結果を出力することを要件とする。【０００９】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機の記録情報から抽出した障害を特定する情報によって検索することで、計算機において発生した障害に応じたパッチの候補を自動的に選択することができる。【００１０】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のシステムログを取得し、取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、前記データベースに基づいて、抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを要件とする。【００１１】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのシステムログから抽出したエラーメッセージを抽出することで、障害に応じたパッチを精度よく選択することができる。【００１２】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のプログラムログを取得し、取得されたプログラムログから、前記障害を特定する情報を抽出することを要件とする。【００１３】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのプログラムログから抽出した障害を特定する情報を抽出することで、障害に応じたパッチを精度よく選択することができる。【００１４】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のダンプ情報を取得し、前記記録情報として取得されたダンプ情報から前記障害を特定する情報を抽出することを要件とする。【００１５】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのダンプ情報から抽出した障害を特定する情報を抽出することで、障害に応じたパッチを精度よく選択することができる。【００１６】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを要件とする。【００１７】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、計算機に適用済みのパッチは選択対象から除外することで、障害に応じたパッチを効率よく選択することができる。【００１８】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記計算機のシステム情報を取得し、取得されたシステム情報が前記選択条件と一致するパッチを特定することを要件とする。【００１９】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機の記録情報から抽出した障害を特定する情報および計算機のシステム情報の両方によって検索することで、計算機において発生した障害に応じたパッチの候補を精度よく選択することができる。【００２０】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することを要件とする。【００２１】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、計算機に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することで、レベルダウンの可能性があるパッチを自動的に選択することができる。
【発明の効果】
【００２２】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、必要最小限のパッチの候補を自動的に選択することができるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】図１は、実施の形態にかかるパッチ候補選択装置の概要図である。
【図２】図２は、実施の形態にかかるパッチ候補選択装置のハードウエア構成を示す説明図である。
【図３】図３は、実施の形態にかかるパッチ候補選択装置の機能的構成を示すブロック図である。
【図４】図４は、計算機のハードウエア構成の一例を示すブロック図である。
【図５】図５は、計算機のシステム情報の一例を示す説明図である。
【図６】図６は、公開パッチ情報の具体例１を示す説明図である。
【図７】図７は、公開障害情報の具体例１を示す説明図である。
【図８】図８は、パッチデータの具体例１を示す説明図である。
【図９】図９は、公開パッチ情報の具体例２を示す説明図である。
【図１０】図１０は、公開障害情報の具体例２を示す説明図である。
【図１１】図１１は、パッチデータの具体例２を示す説明図である。
【図１２】図１２は、公開パッチ情報の具体例３を示す説明図である。
【図１３】図１３は、公開障害情報の具体例３を示す説明図である。
【図１４】図１４は、パッチデータの具体例３を示す説明図である。
【図１５】図１５は、パッチ適用情報の具体例を示す説明図である。
【図１６】図１６は、パッチ候補選択装置の動作の一例を示すフローチャートである。
【図１７】図１７は、図１６に示したシステムログ解析の具体例を示すフローチャートである。
【図１８】図１８は、図１６に示したプログラムログ解析の具体例を示すフローチャートである。
【図１９】図１９は、プログラムログの一例を示す説明図である。
【図２０】図２０は、図１６に示したダンプ情報解析の具体例を示すフローチャートである。
【図２１】図２１は、ダンプ情報の一例を示す説明図である。
【図２２】図２２は、図１６に示したレベルダウン解析の具体例を示すフローチャートである。
【符号の説明】
【００２４】
１０  計算機
４１  ＳＣＳＩカード
４２  ＲＡＩＤ
１２１  システムログ
１３１  エラーメッセージ
１２２，２１００  ダンプ情報
５００  システム情報
６００，９００，１２００  公開パッチ情報
７００，１０００，１３００  公開障害情報
８００，１１００，１４００  パッチデータ
１５００  パッチ適用情報
１９００  プログラムログ
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法の好適な実施の形態を詳細に説明する。【００２６】
まず、この発明の実施の形態にかかるパッチ候補選択装置の概要について説明する。図１は、実施の形態にかかるパッチ候補選択装置の概要図である。図１に示すように、実施の形態にかかるパッチ候補選択装置１００は、検出部１１０と、取得部１２０と、抽出部１３０と、データベース部１４０と、特定部１５０と、出力部１６０と、を備えている。【００２７】
パッチ候補選択装置１００は、たとえば、サーバからパッチの提供を受けるクライアント側の計算機１０に適用される。検出部１１０は、計算機１０で実行したプログラム停止などの、計算機１０において発生した障害を検出する。取得部１２０は、検出部１１０によってプログラムの停止が検出されたときの計算機１０の記録情報を取得する。【００２８】
ここでは、取得部１２０は、プログラムの停止が検出されたときの計算機１０の記録情報として、プログラムの停止の際に出力されたシステムログ１２１「…Ｅｒｒｏｒ：ｘｂ…」と、プログラムの停止が検出されたときの計算機１０のメモリのダンプ情報１２２「…ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ…」を取得する。【００２９】
抽出部１３０は、取得部１２０によって取得されたシステムログ１２１およびダンプ情報１２２から障害を特定する情報を抽出する。ここでは、抽出部１３０は、取得部１２０によって取得されたメッセージからエラーメッセージ１３１「Ｅｒｒｏｒ：ｘｂ」を抽出する。また、抽出部１３０は、取得部１２０によって取得されたダンプ情報１２２から特定のダンプ情報１３２「ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ」を抽出する。【００３０】
データベース部１４０には、複数のパッチＡ，Ｂ，Ｃ，…と、パッチＡ，Ｂ，Ｃ，…のそれぞれの選択条件が記憶されたデータベースが格納されている。パッチの選択条件とは、パッチＡ，Ｂ，Ｃ，…の中から、計算機１０の障害に応じたパッチを選択するための条件である。ここでは、各パッチの選択条件として、エラーメッセージおよび特定のダンプ情報が記憶されている。【００３１】
データベース部１４０には、たとえば、パッチＡの選択条件として、エラーメッセージ「Ｅｒｒｏｒ：ｘａ」および特定のダンプ情報「ｃｏｄｅ：ｙａ，ａｄｄｒｅｓｓ：ｚａ」が記憶されている。また、データベース部１４０には、パッチＢの選択条件として、エラーメッセージ「Ｅｒｒｏｒ：ｘｂ」および特定のダンプ情報「ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ」が記憶されている。また、データベース部１４０には、パッチＣの選択条件として、エラーメッセージ「Ｅｒｒｏｒ：ｘｂ」（パッチＢと同じ）および特定のダンプ情報「ｃｏｄｅ：ｙｃ，ａｄｄｒｅｓｓ：ｚｃ」が記憶されている。【００３２】
特定部１５０は、データベース部１４０に格納されたデータベースに基づいて、抽出部１３０によって抽出されたエラーメッセージ１３１および特定のダンプ情報１３２が選択条件を満たすパッチをパッチＡ，Ｂ，Ｃ，…の中から特定する。ここでは、特定部１５０は、抽出部１３０によって抽出されたエラーメッセージ１３１「Ｅｒｒｏｒ：ｘｂ」および特定のダンプ情報１３２「ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ」の両方が選択情報を満たすパッチＢを特定する。【００３３】
また、特定部１５０は、パッチＡ，Ｂ，Ｃ，…のうちの計算機１０に適用済みのパッチを除いた残余のパッチの中からパッチを特定してもよい。この場合は、データベース部１４０に、各パッチの選択条件として、そのパッチが計算機１０に適用されているか否かの情報を記憶させておく。【００３４】
また、特定部１５０は、計算機１０のシステム情報が選択条件と一致するパッチを特定してもよい。計算機１０のシステム情報とは、計算機１０が備えるハードウエア構成およびソフトウエア構成などに関する情報である。この場合は、データベース部１４０に、各パッチの選択条件としてシステム情報に関する選択条件を記憶させておく。【００３５】
また、特定部１５０は、選択条件を満たすパッチを特定できなかった場合は、計算機１０に適用済みのパッチのうちの、検出部１１０によって検出された障害の発生日時と適用日時が一致するパッチを特定してもよい。この場合は、データベース部１４０に、各パッチの選択条件としてそのパッチが計算機１０に適用されているか否かの情報や、そのパッチが計算機１０に適用されている場合はそのパッチの適用日時の情報を記憶させておく。【００３６】
出力部１６０は、特定部１５０によって特定されたパッチＢを適用パッチ候補として出力する。ここでは、符号１６１に示すように、計算機１０の表示画面上にパッチＢを適用パッチ候補として表示して、パッチＢを適用するか否かの入力（Ｙ／Ｎ）をユーザから受け付ける。パッチＢを適用する旨の入力（Ｙ）をユーザから受け付けると、計算機１０は、パッチを提供するサーバからパッチＢをダウンロードして自装置に適用する。【００３７】
また、出力部１６０は、特定部１５０が、計算機１０に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定した場合は、特定部１５０によって特定されたパッチをレベルダウンパッチ候補として出力する。たとえば、計算機１０の表示画面上に、レベルダウンパッチ候補を表示して、そのパッチの適用を解除するか否かの入力（Ｙ／Ｎ）をユーザから受け付ける。パッチの適用を解除する旨の入力（Ｙ）をユーザから受け付けると、計算機１０は、自装置に適用されたそのパッチを解除する。【００３８】
（パッチ候補選択装置のハードウエア構成）
つぎに、本実施の形態にかかるパッチ候補選択装置のハードウエア構成について説明する。図２は、実施の形態にかかるパッチ候補選択装置のハードウエア構成を示す説明図である。図２において、パッチ候補選択装置１００は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク２４０に接続し、ネットワーク２４０を介してパッチの提供サーバへ接続可能である。【００３９】
コンピュータ本体２１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、パッチ候補選択装置１００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク２１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。【００４０】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリはコンピュータ本体２１０に対し着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、ネットワーク２４０に対する送受信の制御をおこなう。【００４１】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。【００４２】
また、出力装置２３０としては、ディスプレイ２３１、スピーカ２３２、プリンタ２３３などがある。ディスプレイ２３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。スピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。【００４３】
（パッチ候補選択装置の機能的構成）
つぎに、パッチ候補選択装置の機能的構成について説明する。図３は、実施の形態にかかるパッチ候補選択装置の機能的構成を示すブロック図である。図３において、パッチ候補選択装置１００は、公開パッチ情報取得部３１０と、障害情報取得部３２０と、パッチＤＢプラグイン３３０と、監視プログラム３４０と、システムログ取得部３５１と、プログラムログ取得部３５２と、ダンプ情報取得部３５３と、システムログ解析プラグイン３６１と、プログラムログ解析プラグイン３６２と、ダンプ情報解析プラグイン３６３と、パッチ適用情報取得部３７０と、システム情報取得部３８０と、を備えている。【００４４】
これら各機能３１０〜３８０は、パッチ候補選択装置１００の記憶部に記憶された当該機能３１０〜３８０に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。【００４５】
また、各機能３１０〜３８０からの出力データは上記記憶部に保持される。また、図３中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをＣＰＵに実行させるものとする。【００４６】
まず、公開パッチ情報取得部３１０は、パッチを提供するサーバなどから公開パッチ情報を取得する。公開パッチ情報は、サーバが提供可能な各パッチと、パッチごとの説明の情報である。公開パッチ情報取得部３１０は、取得した公開パッチ情報をパッチＤＢプラグイン３３０へ出力する。【００４７】
公開パッチ情報は、たとえば、パッチを識別するパッチ番号、パッチによるプログラムの修正内容の概要、パッチの適用が必要な現象の要約、パッチの適用条件などの情報からなる。パッチの適用条件は、たとえば、ＯＳの種別および版数、プログラム名および版数、関連パッチ番号、その他の付帯条件からなる。障害検出情報は、通常暗号化されているが、公開パッチ情報取得部３１０は、このような障害検出情報を復号化して取得する。【００４８】
障害情報取得部３２０は、公開障害情報管理ＤＢおよびパッチ情報ＤＢを取得する。公開障害情報管理ＤＢおよびパッチ情報ＤＢは、計算機１０が備えるハードウエアやソフトウエアに関するトラブルやパッチの情報のデータベースである。障害情報取得部３２０は、公開障害情報管理ＤＢおよびパッチ情報ＤＢを、計算機１０が備えるハードウエアやソフトウエアのメーカーが管理するサーバなどから取得する。【００４９】
障害情報取得部３２０は、取得したデータベースをパッチＤＢプラグイン３３０へ出力する。公開障害情報管理ＤＢは、障害を識別するトラブル管理番号、トラブルの現象の要約または詳細、トラブルの現象の発生条件、トラブルへの対応方法、トラブルの回避策、トラブルを検索するためのキーワード、トラブルに対応するパッチを示すパッチ番号、障害検出情報などを含んでいる。【００５０】
パッチ情報ＤＢは、パッチを識別するパッチ番号、パッチによるプログラムの修正内容の概要または詳細、パッチの適用が必要な現象の要約または詳細、パッチに対応した現象の発生条件、パッチに対応したトラブルへの対応方法、パッチに対応したトラブルの回避策、パッチを検索するためのキーワード、パッチに対応したトラブルの障害検出情報などを含んでいる。公開障害情報管理ＤＢおよびパッチ情報ＤＢの障害検出情報は、通常暗号化されているが、障害情報取得部３２０は、このような障害検出情報を復号化して取得する。【００５１】
パッチＤＢプラグイン３３０は、公開パッチ情報取得部３１０から出力された公開パッチ情報と、障害情報取得部３２０から出力された公開障害情報管理ＤＢおよびパッチ情報ＤＢに基づいてデータベース３３１を作成する。データベース３３１は、図１のデータベース部１４０に相当する。データベース３３１には、それぞれ異なるパッチに対応したパッチデータが記憶されている。パッチデータには、対応するパッチに関する情報と、対応するパッチを選択するための選択条件とが含まれている。【００５２】
また、パッチＤＢプラグイン３３０は、パッチ適用情報取得部３７０から出力されたパッチ適用情報に基づいて、データベース３３１の各パッチデータに対して、計算機１０への適用に関する情報を追加してもよい。計算機１０への適用に関する情報とは、そのパッチが計算機１０に適用済みか否かの情報や、適用済みである場合の適用日時や、適用プログラムなどの情報である。【００５３】
監視プログラム３４０は、図１に示した検出部１１０および特定部１５０の機能に相当する。監視プログラム３４０は、計算機１０の障害を検出する。計算機１０の障害とは、たとえば計算機１０のシステムエラーや、計算機１０にインストールされたプログラムの停止などである。監視プログラム３４０は、たとえばシステムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３から出力される公開障害情報に基づいて障害を検出する。【００５４】
監視プログラム３４０は、計算機１０の障害を検出すると、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３からそれぞれ出力された障害を特定する情報を取得して、取得した情報がデータベース３３１において選択条件を満たすパッチを特定する。これにより、計算機１０において発生した障害に応じたパッチをデータベース３３１から自動的に選択することができる。【００５５】
また、監視プログラム３４０は、障害を特定する情報がデータベース３３１において選択条件を満たすパッチを特定できない場合に、計算機１０に適用済みのパッチの中で、計算機１０への適用日時が、障害の発生日時と一致するパッチをレベルダウンの可能性のあるパッチとして特定してもよい。これにより、計算機１０に適用済みのパッチの中から、レベルダウンの可能性があるパッチを自動的に選択することができる。【００５６】
計算機１０に適用済みのパッチおよびその適用日時の情報は、データベース３３１やパッチ適用情報取得部３７０から出力されたパッチ適用情報から取得することができる。監視プログラム３４０は、特定した適用パッチ候補またはレベルダウンの可能性のあるパッチの情報を出力部３９０へ出力する。【００５７】
システムログ取得部３５１、プログラムログ取得部３５２およびダンプ情報取得部３５３は、図１に示した取得部１２０の機能に相当する。システムログ取得部３５１は、計算機１０のシステムログを取得する。システムログとは、計算機１０のシステムメッセージのログである。システムログ取得部３５１は、取得したシステムログをシステムログ解析プラグイン３６１へ出力する。【００５８】
プログラムログ取得部３５２は、計算機１０にインストールされた各プログラムのプログラムログを取得する。プログラムログとは、プログラムの動作のログである。プログラムログ取得部３５２は、計算機１０上で動作するプログラムごとにプログラムログを取得する。システムログ取得部３５１は、取得したプログラムログをプログラムログ解析プラグイン３６２へ出力する。【００５９】
ダンプ情報取得部３５３は、計算機１０が備えるメモリのダンプ情報を蓄積する。ここでいうメモリとは、計算機１０が備えるＲＡＭなどの、プログラムを実行するためのワークエリアとして用いられるメモリである。計算機１０がこのようなメモリを複数備える場合は、ダンプ情報取得部３５３は、メモリごとにダンプ情報を蓄積する。ダンプ情報取得部３５３は、取得したダンプ情報をダンプ情報解析プラグイン３６３へ出力する。【００６０】
システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３は、それぞれシステムログ取得部３５１、プログラムログ取得部３５２およびダンプ情報取得部３５３から出力された各情報に基づいて公開障害情報を監視プログラム３４０へ出力する。また、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３は、図１に示した抽出部１３０の機能に相当する。【００６１】
システムログ解析プラグイン３６１は、システムログ取得部３５１から出力されたシステムログのうちの、監視プログラム３４０が計算機１０の障害を検出したときのシステムログからエラーメッセージを抽出する。システムログ解析プラグイン３６１は、抽出したエラーメッセージを監視プログラム３４０へ出力する。【００６２】
プログラムログ解析プラグイン３６２は、プログラムログ取得部３５２から出力されたシステムログのうちの、監視プログラム３４０が計算機１０の障害を検出したときのプログラムログから障害検出情報を抽出する。プログラムログ解析プラグイン３６２は、抽出したプログラムログの障害検出情報を監視プログラム３４０へ出力する。【００６３】
ダンプ情報解析プラグイン３６３は、ダンプ情報取得部３５３から出力されたダンプ情報のうちの、監視プログラム３４０が計算機１０の障害を検出したときのダンプ情報から障害検出情報を抽出する。ダンプ情報解析プラグイン３６３は、抽出したダンプ情報の障害検出情報を監視プログラム３４０へ出力する。【００６４】
パッチ適用情報取得部３７０は、計算機１０のパッチ適用情報を取得する。パッチ適用情報とは、計算機１０に適用済みのパッチに関する情報である。パッチ適用情報には、計算機１０に適用済みのパッチを識別するパッチ番号や、そのパッチの適用日時や、そのパッチの適用プログラムなどの情報が含まれている。パッチ適用情報取得部３７０は、計算機１０にパッチが適用されるごとにパッチ適用情報を更新して、更新したパッチ適用情報をパッチＤＢプラグイン３３０へ出力する。【００６５】
システム情報取得部３８０は、計算機１０のシステム情報を取得する。システム情報とは、計算機１０が備えるハードウエアに関する情報や、計算機１０にインストールされたソフトウエアに関する情報である。システム情報取得部３８０は、取得したシステム情報を監視プログラム３４０へ出力する。【００６６】
出力部３９０は、図１に示した出力部１６０の機能に相当する。出力部３９０は、監視プログラム３４０によって特定された適用パッチ候補を、たとえば図２に示したディスプレイ２３１に表示（図１符号１６１参照）する。また、出力部３９０は、監視プログラム３４０によって特定されたレベルダウンパッチ候補をディスプレイ２３１に表示する。出力部３９０が表示する適用パッチ候補またはレベルダウンパッチ候補は複数でもよい。【００６７】
出力部３９０によって適用パッチ候補が表示されると、ユーザは、たとえば図２に示したキーボード２２１やマウス２２２などによって、表示された適用パッチ候補を計算機１０に適用するか否かの指示を入力する。適用パッチ候補を適用する旨の入力をユーザから受け付けると、計算機１０は、パッチを提供するサーバから、適用する旨の入力を受け付けた適用パッチ候補をダウンロードして自装置に適用する。【００６８】
出力部３９０によってレベルダウンパッチ候補が表示されると、ユーザは、たとえば図２に示したキーボード２２１やマウス２２２などによって、表示されたレベルダウンパッチ候補の適用を解除するか否かの指示を入力する。レベルダウンパッチ候補の適用を解除する旨の入力をユーザから受け付けると、計算機１０は、適用する旨の入力を受け付けたレベルダウンパッチ候補を自装置から解除する。【００６９】
出力部３９０によって適用パッチ候補が複数表示されている場合は、ユーザは、複数の適用パッチ候補の中から選択的に、適用パッチ候補を適用する旨の入力をおこなうことができる。また、出力部３９０によってレベルダウンパッチ候補が複数表示されている場合は、ユーザは、複数のレベルダウンパッチ候補の中から選択的に、レベルダウンパッチ候補の適用を解除する旨の入力をおこなうことができる。【００７０】
また、出力部３９０は、適用パッチ候補またはレベルダウンパッチ候補をユーザに対して表示するのではなく、適用パッチ候補を適用すべき旨の指示またはレベルダウンパッチ候補を解除すべき旨の指示を計算機１０へ出力してもよい。計算機１０は、出力部３９０から適用パッチ候補を適用すべき旨の指示が出力されると、パッチを提供するサーバから適用パッチ候補をダウンロードして自装置に適用する。【００７１】
また、計算機１０は、出力部３９０からレベルダウンパッチ候補を解除すべき旨の指示が出力されると、レベルダウンパッチ候補を自装置から解除する。この場合は、ユーザによる判断によらず、監視プログラム３４０によって特定された適用パッチ候補の適用、またはレベルダウンパッチ候補の解除を自動的におこなうことができる。【００７２】
図４は、計算機のハードウエア構成の一例を示すブロック図である。図４に示すように、計算機１０は、ＳＣＳＩカード４１（識別名：「ＳＣＳＩＡ００１」）およびＲＡＩＤ４２（識別名：「ＲＡＩＤＡ００１」）を備えている。ＲＡＩＤ４２は、計算機１０の本体の外部に設けられている。ＲＡＩＤ４２は、計算機１０の本体に設けられたＳＣＳＩカード４１を介して接続されている。以下の説明では、計算機１０がＳＣＳＩカード４１およびＲＡＩＤ４２を備えているものとする。【００７３】
図５は、計算機のシステム情報の一例を示す説明図である。システム情報取得部３８０は、図５の符号５００に示すようなシステム情報を取得する。システム情報５００には、システム情報５００の更新日時、計算機１０のハードウエアおよびソフトウエアに関する情報などが含まれている。ここでは、システム情報５００には、計算機１０のＯＳ種別「Ｓｏｌａｒｉｓ」およびその版数「Ｖ１０」が含まれている。【００７４】
また、システム情報５００には、計算機１０のハードウエアに関する情報として、図４に示したＳＣＳＩカード４１の識別名「ＳＣＳＩＡ００１」およびＲＡＩＤ４２の識別名「ＲＡＩＤＡ００１」の情報が含まれている。また、システム情報５００には、計算機１０のソフトウエアに関する情報として、ＳＣＳＩカード４１のドライバのプログラム名「ＳＣＳＩドライバ」およびその版数「Ｖ１．０Ｌ００」が含まれている。【００７５】
図６は、公開パッチ情報の具体例１を示す説明図である。図６の公開パッチ情報６００は、公開パッチ情報取得部３１０が取得する公開パッチ情報の具体例１を示している。公開パッチ情報６００には、パッチ番号としての「２００７００１」、障害番号としての「Ｎ２００７−０１−０００１」の他に、パッチによるプログラムの修正内容の概要、パッチの適用が必要な現象の要約、パッチの適用条件などの情報などが含まれている。【００７６】
図７は、公開障害情報の具体例１を示す説明図である。図７の公開障害情報７００は、障害情報取得部３２０が取得する公開障害情報の具体例１を示している。公開障害情報７００には、トラブル管理番号としての「Ｎ２００７−０１−０００１」の他に、トラブルの現象の要約または詳細、トラブルの現象の発生条件、現象の詳細、トラブルへの対応方法、トラブルの回避策、トラブルを検索するためのキーワード、トラブルに対応するパッチを示すパッチ番号、障害検出情報などが含まれている。【００７７】
図８は、パッチデータの具体例１を示す説明図である。図８のパッチデータ８００は、データベース３３１に記憶されたパッチデータの具体例１を示している。図６に示した公開パッチ情報６００に含まれる障害番号としての「Ｎ２００７−０１−０００１」と、図７に示した公開障害情報７００に含まれるトラブル管理番号としての「Ｎ２００７−０１−０００１」とが一致しているため、パッチＤＢプラグイン３３０は、公開パッチ情報６００および公開障害情報７００を対応付けてパッチデータ８００を作成する。【００７８】
ここでは、障害番号とトラブル管理番号とに基づいて公開パッチ情報６００および公開障害情報７００を対応付ける場合について説明したが、障害番号とトラブル管理番号に限らず、公開障害情報７００に含まれる対応方法としての「２００７００１を適用する」と、公開パッチ情報６００に含まれるパッチ番号としての「２００７００１」とに基づいて公開パッチ情報６００および公開障害情報７００を対応付けてもよい。【００７９】
図９は、公開パッチ情報の具体例２を示す説明図である。図９の公開パッチ情報９００は、公開パッチ情報取得部３１０が取得する公開パッチ情報の具体例２を示している。公開パッチ情報９００には公開パッチ情報６００と同様の情報が含まれている。公開パッチ情報９００のパッチ番号は「２００７００２」であり、障害番号は「Ｎ２００７−０１−０００２」となっている。【００８０】
図１０は、公開障害情報の具体例２を示す説明図である。図１０の公開障害情報１０００は、障害情報取得部３２０が取得する公開障害情報の具体例２を示している。公開障害情報１０００には公開障害情報７００と同様の情報が含まれている。公開障害情報１０００のトラブル管理番号は「Ｎ２００７−０１−０００２」である。また、公開障害情報１０００には、プログラムログの障害検出情報としての「ＳＣＳＩドライバＶ１．０Ｌ００」などが含まれている。【００８１】
図１１は、パッチデータの具体例２を示す説明図である。図１１のパッチデータ１１００は、データベース３３１に記憶されたパッチデータの具体例２を示している。図９に示した公開パッチ情報９００に含まれる障害番号としての「Ｎ２００７−０１−０００２」と、図１０に示した公開障害情報１０００に含まれるトラブル管理番号としての「Ｎ２００７−０１−０００２」とが一致しているため、パッチＤＢプラグイン３３０は、公開パッチ情報９００および公開障害情報１０００を対応付けてパッチデータ１１００を作成する。【００８２】
図１２は、公開パッチ情報の具体例３を示す説明図である。図１２の公開パッチ情報１２００は、公開パッチ情報取得部３１０が取得する公開パッチ情報の具体例３を示している。公開パッチ情報１２００には公開パッチ情報６００と同様の情報が含まれている。公開パッチ情報１２００のパッチ番号は「２００７００３」であり、障害番号は「Ｎ２００７−０１−０００３」となっている。【００８３】
図１３は、公開障害情報の具体例３を示す説明図である。図１３の公開障害情報１３００は、障害情報取得部３２０が取得する公開障害情報の具体例３を示している。公開障害情報１３００には公開障害情報７００と同様の情報が含まれている。公開障害情報１３００のトラブル管理番号は「Ｎ２００７−０１−０００３」である。また、公開障害情報１３００には、ダンプ情報の障害検出情報としての「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４」および「ｄｏｗｎ  ｃｏｄｅ  １００」などが含まれている。【００８４】
図１４は、パッチデータの具体例３を示す説明図である。図１４のパッチデータ１４００は、データベース３３１に記憶されたパッチデータの具体例３を示している。図１２に示した公開パッチ情報１２００に含まれる障害番号としての「Ｎ２００７−０１−０００３」と、図１３に示した公開障害情報１３００に含まれるトラブル管理番号としての「Ｎ２００７−０１−０００３」とが一致しているため、パッチＤＢプラグイン３３０は、公開パッチ情報１２００と公開障害情報１３００を対応付けてパッチデータ１４００を作成する。【００８５】
図１５は、パッチ適用情報の具体例を示す説明図である。図１５のパッチ適用情報１５００は、パッチ適用情報取得部３７０が取得するパッチ適用情報の具体例を示している。パッチ適用情報１５００には、たとえば、パッチ番号「２００６００１」のパッチを２００６年１月１０日８時に適用した旨の情報や、そのパッチの適用プログラムのプログラム名や版数に関する情報などが含まれている。【００８６】
図１６は、パッチ候補選択装置の動作の一例を示すフローチャートである。図１６に示すように、まず、監視プログラム３４０が、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３から出力される各解析情報に基づいて、計算機１０に障害が発生したか否かを判断する（ステップＳ１６０１）。障害が発生していない場合には障害が発生するまで待つ（ステップＳ１６０１：Ｎｏのループ）。【００８７】
ステップＳ１６０１において、障害が発生した場合（ステップＳ１６０１：Ｙｅｓ）は、システムログ解析プラグイン３６１および監視プログラム３４０が、システムログ取得部３５１から出力されたシステムログに基づいてシステムログ解析をおこなう（ステップＳ１６０２，図１７参照）。つぎに、ステップＳ１６０２のシステムログ解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６０３）。【００８８】
ステップＳ１６０３において、適用パッチ候補が特定された場合（ステップＳ１６０３：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。適用パッチ候補が特定されていない場合（ステップＳ１６０３：Ｎｏ）は、障害の発生原因のプログラムが特定されているか否かを判断する（ステップＳ１６０４）。障害の発生原因のプログラムは、たとえばステップＳ１６０２によって取得したシステムログに基づいて特定する。【００８９】
ステップＳ１６０４において、障害の発生原因のプログラムが特定されている場合（ステップＳ１６０４：Ｙｅｓ）には、プログラムログ解析プラグイン３６２および監視プログラム３４０が、障害の発生原因のプログラムのプログラムログ解析をおこなう（ステップＳ１６０５，図１８参照）。【００９０】
プログラム解析は、プログラムログ取得部３５２から出力されたプログラムログに基づいてプログラムログ解析プラグイン３６２および監視プログラム３４０がおこなう。つぎに、ステップＳ１６０５のプログラムログ解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６０６）。適用パッチ候補が特定された場合（ステップＳ１６０６：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。【００９１】
ステップＳ１６０４において、プログラムが特定されていない場合（ステップＳ１６０４：Ｎｏ）と、ステップＳ１６０６において適用パッチ候補が特定されていない場合（ステップＳ１６０６：Ｎｏ）は、計算機１０にインストールされた各プログラムのうちの一つのプログラムログ解析をおこなう（ステップＳ１６０７，図１８参照）。【００９２】
ステップＳ１６０７において、プログラム解析は、プログラムログ取得部３５２から出力されたプログラムログに基づいてプログラムログ解析プラグイン３６２および監視プログラム３４０がおこなう。つぎに、ステップＳ１６０７のプログラムログ解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６０８）。【００９３】
ステップＳ１６０８において、適用パッチ候補が特定された場合（ステップＳ１６０８：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。適用パッチ候補が特定されていない場合（ステップＳ１６０８：Ｎｏ）は、ステップＳ１６０７によって、計算機１０にインストールされた各プログラムのすべてのプログラムログ解析をおこなったか否かを判断する（ステップＳ１６０９）。【００９４】
ステップＳ１６０９において、すべてのプログラムログ解析をおこなっていない場合（ステップＳ１６０９：Ｎｏ）は、ステップＳ１６０７に戻り、まだプログラムログ解析をおこなっていないプログラムのプログラムログ解析をおこなう。ステップＳ１６０９において、すべてのプログラムログ解析をおこなった場合（ステップＳ１６０９：Ｙｅｓ）は、ダンプ情報解析プラグイン３６３および監視プログラム３４０がダンプ情報解析をおこなう（ステップＳ１６１０）。【００９５】
つぎに、ステップＳ１６１０のダンプ情報解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６１１）。適用パッチ候補が特定された場合（ステップＳ１６１１：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。適用パッチ候補が特定されていない場合（ステップＳ１６１１：Ｎｏ）は、監視プログラム３４０が、パッチ適用情報に基づいてレベルダウン解析をおこなう（ステップＳ１６１２）。【００９６】
つぎに、ステップＳ１６１２のレベルダウン解析によって特定されたパッチをレベルダウンの可能性があるパッチとして表示して（ステップＳ１６１３）、一連の動作を終了する。ステップＳ１６０３，Ｓ１６０６，Ｓ１６０８またはＳ１６１１によって適用パッチ候補が特定された場合は、特定された適用パッチ候補を表示して（ステップＳ１６１４）、一連の動作を終了する。【００９７】
図１７は、図１６に示したシステムログ解析の具体例を示すフローチャートである。図１６のステップＳ１６０２においては、システムログ取得部３５１から出力されたシステムログに基づいて、図１７に示すようなシステムログ解析をおこなう。まず、システムログ解析プラグイン３６１が、システムログ取得部３５１から出力されたシステムログからエラーメッセージを抽出する（ステップＳ１７０１）。【００９８】
つぎに、監視プログラム３４０が、データベース３３１において、選択条件に含まれているエラーメッセージが、ステップＳ１７０１によって抽出したエラーメッセージと一致するパッチがあるか否かを判断する（ステップＳ１７０２）。エラーメッセージが一致するパッチがない場合（ステップＳ１７０２：Ｎｏ）はシステムログ解析を終了する。【００９９】
ステップＳ１７０２において、エラーメッセージが一致するパッチがある場合（ステップＳ１７０２：Ｙｅｓ）は、エラーメッセージが一致するパッチのうちの一つについて、そのパッチが計算機１０に適用済みであるか否かを判断する（ステップＳ１７０３）。ステップＳ１７０３においては、パッチ適用情報取得部３７０からパッチＤＢプラグイン３３０を介して取得したパッチ適用情報を参照して、そのパッチが計算機１０に適用済みであるか否かを判断する。【０１００】
ステップＳ１７０３において、パッチが計算機１０に適用済みである場合（ステップＳ１７０３：Ｙｅｓ）は、ステップＳ１７０６へ進んで処理を続行する。パッチが計算機１０に適用済みでない場合（ステップＳ１７０３：Ｎｏ）は、データベースにおいて、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致しているか否かを判断する（ステップＳ１７０４）。ステップＳ１７０４においては、システム情報取得部３８０から出力されるシステム情報に基づいて、システム情報が一致しているか否かを判断する。【０１０１】
ステップＳ１７０４において、システム情報が一致していない場合（ステップＳ１７０４：Ｎｏ）は、ステップＳ１７０６へ進んで処理を続行する。システム情報が一致している場合（ステップＳ１７０４：Ｙｅｓ）は、このパッチを適用パッチ候補として特定する（ステップＳ１７０５）。つぎに、ステップＳ１７０２においてエラーメッセージが一致すると判断したすべてのパッチをステップＳ１７０３によって処理したか否かを判断する（ステップＳ１７０６）。【０１０２】
ステップＳ１７０６において、すべてのパッチを処理していない場合（ステップＳ１７０６：Ｎｏ）は、ステップＳ１７０３に戻り、ステップＳ１７０２においてエラーメッセージが一致すると判断したパッチのうちのまだステップＳ１７０３によって処理していないパッチを処理する。すべてのパッチを処理した場合（ステップＳ１７０６：Ｙｅｓ）は、システムログ解析を終了する。【０１０３】
以上に示したステップにおいて、システムログ取得部３５１から出力されたシステムログが「…ＥＲＲ１２３４…」であった場合は、ステップＳ１７０１によってエラーメッセージ「ＥＲＲ１２３４」が抽出される。エラーメッセージ「ＥＲＲ１２３４」は、たとえば図８に示したパッチデータ８００の選択条件に含まれているエラーメッセージと一致するため、パッチデータ８００に対応するパッチがステップＳ１７０２により検出される。【０１０４】
また、パッチデータ８００に示すように、このパッチのパッチ番号は「２００７００１」である。図１５に示したパッチ適用情報１５００において、パッチ番号が「２００７００１」のパッチが計算機１０に適用された旨の情報がないため、ステップＳ１７０３において、このパッチは計算機１０に適用済みのパッチではないと判断される。【０１０５】
また、パッチデータ８００に示すように、このパッチのシステム情報には、「ＳＣＳＩＡ００１  ＲＡＩＤＡ００１」が含まれている。図５に示したシステム情報５００には、「ＳＣＳＩＡ００１」および「ＲＡＩＤＡ００１」がそれぞれ含まれているため、ステップＳ１７０４において、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致していると判断される。【０１０６】
このため、ステップＳ１７０５によって、パッチデータ８００に対応するパッチ（パッチ番号：２００７００１）が適用パッチ候補として特定される。この場合は、図１６のステップＳ１６０３において、ステップＳ１６０２のシステムログ解析によって適用パッチ候補が特定されたと判断され、ステップＳ１６１４によって、パッチデータ８００に対応するパッチ（パッチ番号：２００７００１）が表示される。【０１０７】
図１８は、図１６に示したプログラムログ解析の具体例を示すフローチャートである。図１６のステップＳ１６０５およびステップＳ１６０７においては、一つの解析対象のプログラムについて、図１８に示すようなプログラム解析をおこなう。まず、データベース３３１において、選択条件に含まれているプログラムが、解析対象のプログラムと一致しているパッチがあるか否かを判断する（ステップＳ１８０１）。【０１０８】
プログラムが一致するパッチがない場合（ステップＳ１８０１：Ｎｏ）は、プログラムログ解析を終了する。プログラムが一致するパッチがある場合（ステップＳ１８０１：Ｙｅｓ）は、プログラムログ取得部３５２から出力されたプログラムログから、プログラムログの障害検出情報を抽出する（ステップＳ１８０２）。【０１０９】
つぎに、ステップＳ１８０１によってプログラムが一致していると判断されたパッチのうちの一つについて、そのパッチが計算機１０に適用済みであるか否かを判断する（ステップＳ１８０３）。ステップＳ１８０３においては、パッチ適用情報取得部３７０から出力されるパッチ適用情報を参照してパッチが適用済みであるか否かを判断する。【０１１０】
ステップＳ１８０３において、パッチが計算機１０に適用済みである場合（ステップＳ１８０３：Ｙｅｓ）は、ステップＳ１８０７へ進んで処理を続行する。パッチが計算機１０に適用済みでない場合（ステップＳ１８０３：Ｎｏ）は、データベース３３１において、このパッチのプログラムログの障害検出情報が、ステップＳ１８０２によって抽出された障害検出情報と一致しているか否かを判断する（ステップＳ１８０４）。【０１１１】
ステップＳ１８０４において、プログラムログの障害検出情報が一致していない場合（ステップＳ１８０４：Ｎｏ）は、ステップＳ１８０７へ進んで処理を続行する。プログラムログの障害検出情報が一致している場合（ステップＳ１８０４：Ｙｅｓ）は、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致しているか否かを判断する（ステップＳ１８０５）。【０１１２】
ステップＳ１８０５において、システム情報が一致していない場合（ステップＳ１８０５：Ｎｏ）は、ステップＳ１８０７へ進んで処理を続行する。システム情報が一致している場合（ステップＳ１８０５：Ｙｅｓ）は、このパッチを適用パッチ候補として特定する（ステップＳ１８０６）。つぎに、ステップＳ１８０１においてプログラムが一致していると判断されたすべてのパッチをステップＳ１８０３によって処理したか否かを判断する（ステップＳ１８０７）。【０１１３】
ステップＳ１８０７において、すべてのパッチを処理していない場合（ステップＳ１８０７：Ｎｏ）は、ステップＳ１８０３に戻り、ステップＳ１８０１においてプログラムが一致すると判断したパッチのうちのまだステップＳ１８０３によって処理していないパッチを処理する。すべてのパッチを処理した場合（ステップＳ１８０７：Ｙｅｓ）は、プログラムログ解析を終了する。【０１１４】
以上に示したステップにおいて、解析対象のプログラムが「ＳＣＳＩドライバＶ１．０Ｌ００」であるとする。プログラム「ＳＣＳＩドライバＶ１．０Ｌ００」は、たとえば図１１に示したパッチデータ１１００の選択条件に含まれているプログラムと一致するため、パッチデータ１１００に対応するパッチがステップＳ１８０１によって検出される。【０１１５】
図１９は、プログラムログの一例を示す説明図である。プログラムログ取得部３５２は、図１９の符号１９００に示すようなプログラムログを出力する。プログラム取得部３６１が出力したプログラムが、プログラムログ１９００のように「…１０  （ｐｒｏｇｒａｍ−１）／状態１，１０  （ｐｒｏｇｒａｍ−２）／状態２…」であった場合は、図１８のステップＳ１８０２によってプログラムログの障害検出情報「状態１＝１０，状態２＝１０」が抽出される。【０１１６】
また、パッチデータ１１００のパッチ番号は「２００７００２」である。図１５に示したパッチ適用情報１５００において、パッチ番号が「２００７００２」のパッチが計算機１０に適用された旨の情報がないため、図１８のステップＳ１８０３において、このパッチは計算機１０に適用済みのパッチではないと判断される。【０１１７】
また、パッチデータ１１００の選択条件に含まれる障害検出情報には、プログラムログの障害検出情報「状態１＝１０，状態２＝１０」が含まれている。図１８のステップＳ１８０２によって抽出されたプログラムログの障害検出情報も「状態１＝１０，状態２＝１０」であるため、図１８のステップＳ１８０４において、プログラムログの障害検出情報が一致していると判断される。【０１１８】
また、パッチデータ１１００の選択条件に含まれているシステム情報には、「ＳＣＳＩＡ００１  ＲＡＩＤＡ００１」が含まれている。図５に示したシステム情報５００には、「ＳＣＳＩＡ００１」および「ＲＡＩＤＡ００１」が含まれているため、ステップＳ１８０４において、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致していると判断される。【０１１９】
このため、ステップＳ１８０６によって、パッチデータ１１００に対応するパッチ（パッチ番号：２００７００２）が適用パッチ候補として特定される。この場合は、図１６のステップＳ１６０６（またはＳ１６０８）において、ステップＳ１６０５（またはＳ１６０７）のプログラムログ解析によって適用パッチ候補が特定されたと判断され、ステップＳ１６１４によって、パッチデータ１１００に対応するパッチ（パッチ番号：２００７００２）が表示される。【０１２０】
図２０は、図１６に示したダンプ情報解析の具体例を示すフローチャートである。図１６のステップＳ１６１０においては、図２０に示すようなダンプ情報解析をおこなう。まず、計算機１０に障害が発生したときにダンプ情報取得部３５３によって取得されたダンプ情報があるか否かを判断する（ステップＳ２００１）。ダンプ情報がない場合（ステップＳ２００１：Ｎｏ）はダンプ情報解析を終了する。【０１２１】
ステップＳ２００１において、ダンプ情報がある場合（ステップＳ２００１：Ｙｅｓ）は、そのダンプ情報に基づいて、計算機１０に発生した障害の原因のプログラムを特定する（ステップＳ２００２）。つぎに、データベース３３１において、選択条件に含まれているプログラムが、ステップＳ２００２によって特定されたプログラムと一致しているパッチがあるか否かを判断する（ステップＳ２００３）。【０１２２】
ステップＳ２００３において、プログラムが一致するパッチがない場合（ステップＳ２００３：Ｎｏ）はダンプ情報解析を終了する。プログラムが一致するパッチがある場合（ステップＳ２００３：Ｙｅｓ）は、ダンプ情報解析プラグイン３６３が、ダンプ情報取得部３５３から出力されたダンプ情報から、ダンプ情報の障害検出情報を抽出する（ステップＳ２００４）。【０１２３】
つぎに、ステップＳ２００３によってプログラムが一致していると判断されたパッチのうちの一つについて、そのパッチが計算機１０に適用済みのパッチか否かを判断する（ステップＳ２００５）。パッチが計算機１０に適用済みである場合（ステップＳ２００５：Ｙｅｓ）は、ステップＳ２００９へ進んで処理を続行する。【０１２４】
ステップＳ２００５において、パッチが計算機１０に適用済みのパッチでない場合（ステップＳ２００５：Ｎｏ）は、このパッチの選択条件に含まれる障害検出情報が、ステップＳ２００４によって抽出されたダンプ情報の障害検出情報と一致しているか否かを判断する（ステップＳ２００６）。【０１２５】
ステップＳ２００６において、ダンプ情報の障害検出情報が一致していない場合（ステップＳ２００６：Ｎｏ）は、ステップＳ２００９へ進んで処理を続行する。ダンプ情報の障害検出情報が一致している場合（ステップＳ２００６：Ｙｅｓ）は、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致しているか否かを判断する（ステップＳ２００７）。【０１２６】
ステップＳ２００７において、システム情報が一致していない場合（ステップＳ２００７：Ｎｏ）は、ステップＳ２００９へ進んで処理を続行する。システム情報が一致している場合（ステップＳ２００７：Ｙｅｓ）は、このパッチを適用パッチ候補として特定する（ステップＳ２００８）。つぎに、ステップＳ２００３においてプログラムが一致していると判断されたすべてのパッチをステップＳ２００５によって処理したか否かを判断する（ステップＳ２００９）。【０１２７】
すべてのパッチを処理していない場合（ステップＳ２００９：Ｎｏ）は、ステップＳ２００５に戻り、ステップＳ２００３においてプログラムが一致すると判断したパッチのうちのまだステップＳ２００５によって処理していないパッチを処理する。すべてのパッチを処理した場合（ステップＳ２００９：Ｙｅｓ）は、ダンプ情報解析を終了する。【０１２８】
以上に示したステップにおいて、たとえば、ステップＳ２００２によって特定されたプログラムが「ＳＣＳＩドライバＶ１．０Ｌ００」であるとする。プログラム「ＳＣＳＩドライバＶ１．０Ｌ００」は、たとえば図１４に示したパッチデータ１４００の選択条件に含まれているプログラムと一致するため、パッチデータ１４００に対応するパッチがステップＳ２００３によって検出される。【０１２９】
図２１は、ダンプ情報の一例を示す説明図である。ダンプ情報取得部３５３は、図２１の符号２１００に示すようなダンプ情報を出力する。ダンプ情報取得部３５３が出力したダンプ情報が、ダンプ情報２１００のように「…，ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４，ｄｏｗｎ  ｃｏｄｅ  １００，…」であった場合は、図２０のステップＳ２００４によってダンプ情報の障害検出情報「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４，ｄｏｗｎ  ｃｏｄｅ  １００」が抽出される。【０１３０】
また、パッチデータ１４００に対応するパッチのパッチ番号は「２００７００３」である。図１５に示したパッチ適用情報１５００において、パッチ番号が「２００７００３」のパッチが計算機１０に適用された旨の情報がないため、図２０のステップＳ２００５において、このパッチは計算機１０に適用済みのパッチではないと判断される。【０１３１】
また、パッチデータ１４００の選択条件に含まれる障害検出情報には、ダンプ情報の障害検出情報「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４」および「ｄｏｗｎ  ｃｏｄｅ  １００」が含まれている。図２０のステップＳ２００４によって抽出されたダンプ情報の障害検出情報も「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４，ｄｏｗｎ  ｃｏｄｅ  １００」であるため、図２０のステップＳ２００６において、ダンプ情報の障害検出情報が一致していると判断される。【０１３２】
また、パッチデータ１４００の選択条件に含まれているシステム情報には、「ＳＣＳＩＡ００１  ＲＡＩＤＡ００１」が含まれている。図５に示したシステム情報５００には、「ＳＣＳＩＡ００１」および「ＲＡＩＤＡ００１」がそれぞれ含まれているため、ステップＳ２００７において、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致していると判断される。【０１３３】
このため、ステップＳ２００８によって、パッチデータ１４００に対応するパッチ（パッチ番号：２００７００３）が適用パッチ候補として特定される。この場合は、図１６のステップＳ１６１１において、ステップＳ１６１０のダンプ情報解析によって適用パッチ候補が特定されたと判断され、ステップＳ１６１４によって、パッチデータ１４００に対応するパッチ（パッチ番号：２００７００３）が表示される。【０１３４】
図２２は、図１６に示したレベルダウン解析の具体例を示すフローチャートである。図２２に示すように、まず、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３から出力される各解析情報に基づいて、計算機１０に障害が発生した日時を特定する（ステップＳ２２０１）。【０１３５】
つぎに、上記の公開障害情報に基づいて、障害の原因となったプログラムを特定する（ステップＳ２２０２）。つぎに、パッチ適用情報取得部３７０から出力されるパッチ適用情報に基づいて、計算機１０に適用した日時が、ステップＳ２２０１によって特定した日時と一致する適用済みのパッチがあるか否かを判断する（ステップＳ２２０３）。【０１３６】
ステップＳ２２０３において、日時が一致するパッチがない場合（ステップＳ２２０３：Ｎｏ）はレベルダウン解析を終了する。日時が一致するパッチがある場合（ステップＳ２２０３：Ｙｅｓ）は、日時が一致すると判断されたパッチのうちの一つについて、データベース３３１においてそのパッチの選択条件に含まれるプログラムが、ステップＳ２２０２により特定されたプログラムと一致するか否かを判断する（ステップＳ２２０４）。【０１３７】
ステップＳ２２０４において、プログラムが一致しない場合（ステップＳ２２０４：Ｎｏ）は、ステップＳ２２０６へ進んで処理を続行する。プログラムが一致する場合（ステップＳ２２０４：Ｙｅｓ）は、その適用済みパッチをレベルダウンの可能性があるレベルダウンパッチ候補として特定する（ステップＳ２２０５）。【０１３８】
つぎに、ステップＳ２３０３において日時が一致していると判断されたすべての適用済みのパッチをステップＳ２２０３によって処理したか否かを判断する（ステップＳ２２０６）。すべての適用済みのパッチについて判断していない場合（ステップＳ２２０６：Ｎｏ）は、ステップＳ２２０４に戻り、まだ処理していない適用済みのパッチについて処理する。すべてのパッチについて処理した場合（ステップＳ２２０６：Ｙｅｓ）は、一連のレベルダウン解析の処理を終了する。【０１３９】
以上説明したように、本実施の形態によれば、パッチとその選択条件が記憶されたデータベース３３１を予め作成しておき、障害が発生したときの計算機１０の記録情報から抽出した障害を特定する情報によって検索することで、計算機１０において発生した障害に応じたパッチの候補を自動的に選択することができる。【０１４０】
これにより、必要最小限のパッチの候補を自動的に選択することができる。このため、パッチのダウンロードおよび適用処理を短縮し、計算機１０の長時間の運用停止を回避することができる。また、必要以上のパッチを適用しないことで、レベルダウンの可能性を低減することができる。【０１４１】
また、障害を特定する情報として、障害が発生したときのシステムログから抽出したエラーメッセージや、障害が発生したときの特定のプログラムログや、障害が発生したときの特定のダンプ情報などを用いることで、障害に応じたパッチを精度よく選択することができる。また、データベース３３１の各パッチのうちの、計算機に適用済みのパッチは選択対象から除外することで、障害に応じたパッチを効率よく選択することができる。【０１４２】
また、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機１０の記録情報から抽出した障害を特定する情報および計算機１０のシステム情報の両方によって検索することで、障害に応じたパッチの候補を精度よく選択することができる。また、選択条件を満たすパッチを特定できなかった場合に、計算機１０に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することで、レベルダウンの可能性があるパッチを自動的に選択することができる。【０１４３】
なお、本実施の形態においては、パッチ候補選択装置１００が、サーバからパッチの提供を受けるクライアント側の計算機１０に適用される場合について説明したが、パッチ候補選択装置１００を、たとえば、サーバからパッチの提供を受けるクライアント側の計算機１０を監視可能な別の計算機に適用してもよい。【０１４４】
また、本実施の形態で説明したパッチ候補選択方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。【０１４５】
また、本実施の形態で説明したパッチ候補選択装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称する。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述したパッチ候補選択装置１００の機能（機能ブロックの各符号を入れる）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、パッチ候補選択装置１００を製造することができる。
【図１】
2009104268.tif 000003
【図２】
2009104268.tif 000004
【図３】
2009104268.tif 000005
【図４】
2009104268.tif 000006
【図５】
2009104268.tif 000007
【図６】
2009104268.tif 000008
【図７】
2009104268.tif 000009
【図８】
2009104268.tif 000010
【図９】
2009104268.tif 000011
【図１０】
2009104268.tif 000012
【図１１】
2009104268.tif 000013
【図１２】
2009104268.tif 000014
【図１３】
2009104268.tif 000015
【図１４】
2009104268.tif 000016
【図１５】
2009104268.tif 000017
【図１６】
2009104268.tif 000018
【図１７】
2009104268.tif 000019
【図１８】
2009104268.tif 000020
【図１９】
2009104268.tif 000021
【図２０】
2009104268.tif 000022
【図２１】
2009104268.tif 000023
【図２２】
2009104268.tif 000024
【手続補正書】
【提出日】平成22年7月15日(2010.7.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算機の障害を検出する検出手段と、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段と、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段と、
前記特定手段によって特定された特定結果を出力する出力手段と、
を備えることを特徴とするパッチ候補選択装置。
【請求項２】
前記取得手段は、
前記記録情報として前記計算機のシステムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、
前記特定手段は、
前記データベースに基づいて、前記抽出手段によって抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項３】
前記取得手段は、
前記記録情報として前記計算機のプログラムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたプログラムログから、前記障害を特定する情報を抽出することを特徴とする請求項１または２に記載のパッチ候補選択装置。
【請求項４】
前記特定手段は、
さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項５】
前記特定手段は、
さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出手段によって検出された障害の発生日時と適用日時が一致するパッチを特定することを特徴とする請求項１に記載のパッチ候補選択装置。
【請求項６】
コンピュータを、
計算機の障害を検出する検出手段、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段、
前記特定手段によって特定された特定結果を出力する出力手段、
として機能させることを特徴とするパッチ候補選択プログラム。
【請求項７】
計算機の障害を検出する検出工程と、
前記検出工程によって検出された障害が発生したときの前記計算機の記録情報を取得する取得工程と、
前記取得工程によって取得された記録情報から前記障害を特定する情報を抽出する抽出工程と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出工程によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定工程と、
前記特定工程によって特定された特定結果を出力する出力工程と、
を含んだことを特徴とするパッチ候補選択方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計算機に適用するパッチの候補を選択するパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法に関する。
【背景技術】
【０００２】
従来、計算機に発生した障害を解消し、または計算機に障害が発生することを未然に防ぐために、計算機にインストールされた各プログラムの差分であるパッチの提供がおこなわれている。パッチの提供は、計算機にインストールされた各プログラムのメーカーが管理するサーバなどによって提供される。クライアント側の計算機は、パッチを提供するサーバからインターネットなどを介してパッチをダウンロードして、自装置に適用する。
【０００３】
パッチは、障害の大小を問わず膨大な数が提供されるため、個別の計算機に必要なパッチを選択することは困難である。このため、従来、サーバが提供可能なすべてのパッチをダウンロードして計算機に適用したり、計算機の障害発生時の各種情報から適当なパッチを探す作業を専門家に依頼したりしている。また、公開障害情報に基づいてパッチを特定する技術が開示されている（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２３３５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、すべてのパッチをダウンロードして計算機に適用する場合は、ダウンロードおよび適用処理に時間がかかり、計算機の運用を長時間停止しなければならないという問題がある。また、必要以上のパッチを適用することで、レベルダウン（適用済みパッチによる２次障害）の可能性が高まるという問題がある。また、すべてのパッチを適用している場合は、レベルダウンが発生した際に、膨大な数のパッチの中からレベルダウンを引き起こしたパッチを特定することは困難であるという問題がある。
【０００６】
また、計算機の障害発生時の各種情報から適当なパッチを探す作業を専門家に依頼する場合は、作業者のスキルによってはパッチの選択の精度が悪かったり、複数のパッチを組み合わせる必要がある場合などはスキルの高い作業者であってもパッチの選択が困難であったりするという問題がある。また、上記特許文献１には、具体的にどのような公開障害情報を用いてどのような処理によってパッチを特定するのかについて開示されていない。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、必要最小限のパッチの候補を自動的に選択することができるパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、計算機の障害を検出し、検出された障害が発生したときの前記計算機の記録情報を取得し、取得された記録情報から前記障害を特定する情報を抽出し、パッチとその選択条件が記憶されたデータベースに基づいて、抽出された障害を特定する情報が前記選択条件を満たすパッチを特定し、特定された特定結果を出力することを要件とする。
【０００９】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機の記録情報から抽出した障害を特定する情報によって検索することで、計算機において発生した障害に応じたパッチの候補を自動的に選択することができる。
【００１０】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のシステムログを取得し、取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、前記データベースに基づいて、抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを要件とする。
【００１１】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのシステムログから抽出したエラーメッセージを抽出することで、障害に応じたパッチを精度よく選択することができる。
【００１２】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のプログラムログを取得し、取得されたプログラムログから、前記障害を特定する情報を抽出することを要件とする。
【００１３】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのプログラムログから抽出した障害を特定する情報を抽出することで、障害に応じたパッチを精度よく選択することができる。
【００１４】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記記録情報として前記計算機のダンプ情報を取得し、前記記録情報として取得されたダンプ情報から前記障害を特定する情報を抽出することを要件とする。
【００１５】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、障害が発生したときのダンプ情報から抽出した障害を特定する情報を抽出することで、障害に応じたパッチを精度よく選択することができる。
【００１６】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを要件とする。
【００１７】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、計算機に適用済みのパッチは選択対象から除外することで、障害に応じたパッチを効率よく選択することができる。
【００１８】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、前記計算機のシステム情報を取得し、取得されたシステム情報が前記選択条件と一致するパッチを特定することを要件とする。
【００１９】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機の記録情報から抽出した障害を特定する情報および計算機のシステム情報の両方によって検索することで、計算機において発生した障害に応じたパッチの候補を精度よく選択することができる。
【００２０】
また、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法は、さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することを要件とする。
【００２１】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、計算機に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することで、レベルダウンの可能性があるパッチを自動的に選択することができる。
【発明の効果】
【００２２】
このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法によれば、必要最小限のパッチの候補を自動的に選択することができるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】実施の形態にかかるパッチ候補選択装置の概要図である。
【図２】実施の形態にかかるパッチ候補選択装置のハードウエア構成を示す説明図である。
【図３】実施の形態にかかるパッチ候補選択装置の機能的構成を示すブロック図である。
【図４】計算機のハードウエア構成の一例を示すブロック図である。
【図５】計算機のシステム情報の一例を示す説明図である。
【図６】公開パッチ情報の具体例１を示す説明図である。
【図７】公開障害情報の具体例１を示す説明図である。
【図８】パッチデータの具体例１を示す説明図である。
【図９】公開パッチ情報の具体例２を示す説明図である。
【図１０】公開障害情報の具体例２を示す説明図である。
【図１１】パッチデータの具体例２を示す説明図である。
【図１２】公開パッチ情報の具体例３を示す説明図である。
【図１３】公開障害情報の具体例３を示す説明図である。
【図１４】パッチデータの具体例３を示す説明図である。
【図１５】パッチ適用情報の具体例を示す説明図である。
【図１６】パッチ候補選択装置の動作の一例を示すフローチャートである。
【図１７】図１６に示したシステムログ解析の具体例を示すフローチャートである。
【図１８】図１６に示したプログラムログ解析の具体例を示すフローチャートである。
【図１９】プログラムログの一例を示す説明図である。
【図２０】図１６に示したダンプ情報解析の具体例を示すフローチャートである。
【図２１】ダンプ情報の一例を示す説明図である。
【図２２】図１６に示したレベルダウン解析の具体例を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下に添付図面を参照して、このパッチ候補選択装置、パッチ候補選択プログラムおよびパッチ候補選択方法の好適な実施の形態を詳細に説明する。
【００２５】
まず、この発明の実施の形態にかかるパッチ候補選択装置の概要について説明する。図１は、実施の形態にかかるパッチ候補選択装置の概要図である。図１に示すように、実施の形態にかかるパッチ候補選択装置１００は、検出部１１０と、取得部１２０と、抽出部１３０と、データベース部１４０と、特定部１５０と、出力部１６０と、を備えている。
【００２６】
パッチ候補選択装置１００は、たとえば、サーバからパッチの提供を受けるクライアント側の計算機１０に適用される。検出部１１０は、計算機１０で実行したプログラム停止などの、計算機１０において発生した障害を検出する。取得部１２０は、検出部１１０によってプログラムの停止が検出されたときの計算機１０の記録情報を取得する。
【００２７】
ここでは、取得部１２０は、プログラムの停止が検出されたときの計算機１０の記録情報として、プログラムの停止の際に出力されたシステムログ１２１「…Ｅｒｒｏｒ：ｘｂ…」と、プログラムの停止が検出されたときの計算機１０のメモリのダンプ情報１２２「…ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ…」を取得する。
【００２８】
抽出部１３０は、取得部１２０によって取得されたシステムログ１２１およびダンプ情報１２２から障害を特定する情報を抽出する。ここでは、抽出部１３０は、取得部１２０によって取得されたメッセージからエラーメッセージ１３１「Ｅｒｒｏｒ：ｘｂ」を抽出する。また、抽出部１３０は、取得部１２０によって取得されたダンプ情報１２２から特定のダンプ情報１３２「ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ」を抽出する。
【００２９】
データベース部１４０には、複数のパッチＡ，Ｂ，Ｃ，…と、パッチＡ，Ｂ，Ｃ，…のそれぞれの選択条件が記憶されたデータベースが格納されている。パッチの選択条件とは、パッチＡ，Ｂ，Ｃ，…の中から、計算機１０の障害に応じたパッチを選択するための条件である。ここでは、各パッチの選択条件として、エラーメッセージおよび特定のダンプ情報が記憶されている。
【００３０】
データベース部１４０には、たとえば、パッチＡの選択条件として、エラーメッセージ「Ｅｒｒｏｒ：ｘａ」および特定のダンプ情報「ｃｏｄｅ：ｙａ，ａｄｄｒｅｓｓ：ｚａ」が記憶されている。また、データベース部１４０には、パッチＢの選択条件として、エラーメッセージ「Ｅｒｒｏｒ：ｘｂ」および特定のダンプ情報「ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ」が記憶されている。また、データベース部１４０には、パッチＣの選択条件として、エラーメッセージ「Ｅｒｒｏｒ：ｘｂ」（パッチＢと同じ）および特定のダンプ情報「ｃｏｄｅ：ｙｃ，ａｄｄｒｅｓｓ：ｚｃ」が記憶されている。
【００３１】
特定部１５０は、データベース部１４０に格納されたデータベースに基づいて、抽出部１３０によって抽出されたエラーメッセージ１３１および特定のダンプ情報１３２が選択条件を満たすパッチをパッチＡ，Ｂ，Ｃ，…の中から特定する。ここでは、特定部１５０は、抽出部１３０によって抽出されたエラーメッセージ１３１「Ｅｒｒｏｒ：ｘｂ」および特定のダンプ情報１３２「ｃｏｄｅ：ｙｂ，ａｄｄｒｅｓｓ：ｚｂ」の両方が選択情報を満たすパッチＢを特定する。
【００３２】
また、特定部１５０は、パッチＡ，Ｂ，Ｃ，…のうちの計算機１０に適用済みのパッチを除いた残余のパッチの中からパッチを特定してもよい。この場合は、データベース部１４０に、各パッチの選択条件として、そのパッチが計算機１０に適用されているか否かの情報を記憶させておく。
【００３３】
また、特定部１５０は、計算機１０のシステム情報が選択条件と一致するパッチを特定してもよい。計算機１０のシステム情報とは、計算機１０が備えるハードウエア構成およびソフトウエア構成などに関する情報である。この場合は、データベース部１４０に、各パッチの選択条件としてシステム情報に関する選択条件を記憶させておく。
【００３４】
また、特定部１５０は、選択条件を満たすパッチを特定できなかった場合は、計算機１０に適用済みのパッチのうちの、検出部１１０によって検出された障害の発生日時と適用日時が一致するパッチを特定してもよい。この場合は、データベース部１４０に、各パッチの選択条件としてそのパッチが計算機１０に適用されているか否かの情報や、そのパッチが計算機１０に適用されている場合はそのパッチの適用日時の情報を記憶させておく。
【００３５】
出力部１６０は、特定部１５０によって特定されたパッチＢを適用パッチ候補として出力する。ここでは、符号１６１に示すように、計算機１０の表示画面上にパッチＢを適用パッチ候補として表示して、パッチＢを適用するか否かの入力（Ｙ／Ｎ）をユーザから受け付ける。パッチＢを適用する旨の入力（Ｙ）をユーザから受け付けると、計算機１０は、パッチを提供するサーバからパッチＢをダウンロードして自装置に適用する。
【００３６】
また、出力部１６０は、特定部１５０が、計算機１０に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定した場合は、特定部１５０によって特定されたパッチをレベルダウンパッチ候補として出力する。たとえば、計算機１０の表示画面上に、レベルダウンパッチ候補を表示して、そのパッチの適用を解除するか否かの入力（Ｙ／Ｎ）をユーザから受け付ける。パッチの適用を解除する旨の入力（Ｙ）をユーザから受け付けると、計算機１０は、自装置に適用されたそのパッチを解除する。
【００３７】
（パッチ候補選択装置のハードウエア構成）
つぎに、本実施の形態にかかるパッチ候補選択装置のハードウエア構成について説明する。図２は、実施の形態にかかるパッチ候補選択装置のハードウエア構成を示す説明図である。図２において、パッチ候補選択装置１００は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク２４０に接続し、ネットワーク２４０を介してパッチの提供サーバへ接続可能である。
【００３８】
コンピュータ本体２１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、パッチ候補選択装置１００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク２１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００３９】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリはコンピュータ本体２１０に対し着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、ネットワーク２４０に対する送受信の制御をおこなう。
【００４０】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。
【００４１】
また、出力装置２３０としては、ディスプレイ２３１、スピーカ２３２、プリンタ２３３などがある。ディスプレイ２３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。スピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。
【００４２】
（パッチ候補選択装置の機能的構成）
つぎに、パッチ候補選択装置の機能的構成について説明する。図３は、実施の形態にかかるパッチ候補選択装置の機能的構成を示すブロック図である。図３において、パッチ候補選択装置１００は、公開パッチ情報取得部３１０と、障害情報取得部３２０と、パッチＤＢプラグイン３３０と、監視プログラム３４０と、システムログ取得部３５１と、プログラムログ取得部３５２と、ダンプ情報取得部３５３と、システムログ解析プラグイン３６１と、プログラムログ解析プラグイン３６２と、ダンプ情報解析プラグイン３６３と、パッチ適用情報取得部３７０と、システム情報取得部３８０と、を備えている。
【００４３】
これら各機能３１０〜３８０は、パッチ候補選択装置１００の記憶部に記憶された当該機能３１０〜３８０に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。
【００４４】
また、各機能３１０〜３８０からの出力データは上記記憶部に保持される。また、図３中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをＣＰＵに実行させるものとする。
【００４５】
まず、公開パッチ情報取得部３１０は、パッチを提供するサーバなどから公開パッチ情報を取得する。公開パッチ情報は、サーバが提供可能な各パッチと、パッチごとの説明の情報である。公開パッチ情報取得部３１０は、取得した公開パッチ情報をパッチＤＢプラグイン３３０へ出力する。
【００４６】
公開パッチ情報は、たとえば、パッチを識別するパッチ番号、パッチによるプログラムの修正内容の概要、パッチの適用が必要な現象の要約、パッチの適用条件などの情報からなる。パッチの適用条件は、たとえば、ＯＳの種別および版数、プログラム名および版数、関連パッチ番号、その他の付帯条件からなる。障害検出情報は、通常暗号化されているが、公開パッチ情報取得部３１０は、このような障害検出情報を復号化して取得する。
【００４７】
障害情報取得部３２０は、公開障害情報管理ＤＢおよびパッチ情報ＤＢを取得する。公開障害情報管理ＤＢおよびパッチ情報ＤＢは、計算機１０が備えるハードウエアやソフトウエアに関するトラブルやパッチの情報のデータベースである。障害情報取得部３２０は、公開障害情報管理ＤＢおよびパッチ情報ＤＢを、計算機１０が備えるハードウエアやソフトウエアのメーカーが管理するサーバなどから取得する。
【００４８】
障害情報取得部３２０は、取得したデータベースをパッチＤＢプラグイン３３０へ出力する。公開障害情報管理ＤＢは、障害を識別するトラブル管理番号、トラブルの現象の要約または詳細、トラブルの現象の発生条件、トラブルへの対応方法、トラブルの回避策、トラブルを検索するためのキーワード、トラブルに対応するパッチを示すパッチ番号、障害検出情報などを含んでいる。
【００４９】
パッチ情報ＤＢは、パッチを識別するパッチ番号、パッチによるプログラムの修正内容の概要または詳細、パッチの適用が必要な現象の要約または詳細、パッチに対応した現象の発生条件、パッチに対応したトラブルへの対応方法、パッチに対応したトラブルの回避策、パッチを検索するためのキーワード、パッチに対応したトラブルの障害検出情報などを含んでいる。公開障害情報管理ＤＢおよびパッチ情報ＤＢの障害検出情報は、通常暗号化されているが、障害情報取得部３２０は、このような障害検出情報を復号化して取得する。
【００５０】
パッチＤＢプラグイン３３０は、公開パッチ情報取得部３１０から出力された公開パッチ情報と、障害情報取得部３２０から出力された公開障害情報管理ＤＢおよびパッチ情報ＤＢに基づいてデータベース３３１を作成する。データベース３３１は、図１のデータベース部１４０に相当する。データベース３３１には、それぞれ異なるパッチに対応したパッチデータが記憶されている。パッチデータには、対応するパッチに関する情報と、対応するパッチを選択するための選択条件とが含まれている。
【００５１】
また、パッチＤＢプラグイン３３０は、パッチ適用情報取得部３７０から出力されたパッチ適用情報に基づいて、データベース３３１の各パッチデータに対して、計算機１０への適用に関する情報を追加してもよい。計算機１０への適用に関する情報とは、そのパッチが計算機１０に適用済みか否かの情報や、適用済みである場合の適用日時や、適用プログラムなどの情報である。
【００５２】
監視プログラム３４０は、図１に示した検出部１１０および特定部１５０の機能に相当する。監視プログラム３４０は、計算機１０の障害を検出する。計算機１０の障害とは、たとえば計算機１０のシステムエラーや、計算機１０にインストールされたプログラムの停止などである。監視プログラム３４０は、たとえばシステムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３から出力される公開障害情報に基づいて障害を検出する。
【００５３】
監視プログラム３４０は、計算機１０の障害を検出すると、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３からそれぞれ出力された障害を特定する情報を取得して、取得した情報がデータベース３３１において選択条件を満たすパッチを特定する。これにより、計算機１０において発生した障害に応じたパッチをデータベース３３１から自動的に選択することができる。
【００５４】
また、監視プログラム３４０は、障害を特定する情報がデータベース３３１において選択条件を満たすパッチを特定できない場合に、計算機１０に適用済みのパッチの中で、計算機１０への適用日時が、障害の発生日時と一致するパッチをレベルダウンの可能性のあるパッチとして特定してもよい。これにより、計算機１０に適用済みのパッチの中から、レベルダウンの可能性があるパッチを自動的に選択することができる。
【００５５】
計算機１０に適用済みのパッチおよびその適用日時の情報は、データベース３３１やパッチ適用情報取得部３７０から出力されたパッチ適用情報から取得することができる。監視プログラム３４０は、特定した適用パッチ候補またはレベルダウンの可能性のあるパッチの情報を出力部３９０へ出力する。
【００５６】
システムログ取得部３５１、プログラムログ取得部３５２およびダンプ情報取得部３５３は、図１に示した取得部１２０の機能に相当する。システムログ取得部３５１は、計算機１０のシステムログを取得する。システムログとは、計算機１０のシステムメッセージのログである。システムログ取得部３５１は、取得したシステムログをシステムログ解析プラグイン３６１へ出力する。
【００５７】
プログラムログ取得部３５２は、計算機１０にインストールされた各プログラムのプログラムログを取得する。プログラムログとは、プログラムの動作のログである。プログラムログ取得部３５２は、計算機１０上で動作するプログラムごとにプログラムログを取得する。システムログ取得部３５１は、取得したプログラムログをプログラムログ解析プラグイン３６２へ出力する。
【００５８】
ダンプ情報取得部３５３は、計算機１０が備えるメモリのダンプ情報を蓄積する。ここでいうメモリとは、計算機１０が備えるＲＡＭなどの、プログラムを実行するためのワークエリアとして用いられるメモリである。計算機１０がこのようなメモリを複数備える場合は、ダンプ情報取得部３５３は、メモリごとにダンプ情報を蓄積する。ダンプ情報取得部３５３は、取得したダンプ情報をダンプ情報解析プラグイン３６３へ出力する。
【００５９】
システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３は、それぞれシステムログ取得部３５１、プログラムログ取得部３５２およびダンプ情報取得部３５３から出力された各情報に基づいて公開障害情報を監視プログラム３４０へ出力する。また、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３は、図１に示した抽出部１３０の機能に相当する。
【００６０】
システムログ解析プラグイン３６１は、システムログ取得部３５１から出力されたシステムログのうちの、監視プログラム３４０が計算機１０の障害を検出したときのシステムログからエラーメッセージを抽出する。システムログ解析プラグイン３６１は、抽出したエラーメッセージを監視プログラム３４０へ出力する。
【００６１】
プログラムログ解析プラグイン３６２は、プログラムログ取得部３５２から出力されたシステムログのうちの、監視プログラム３４０が計算機１０の障害を検出したときのプログラムログから障害検出情報を抽出する。プログラムログ解析プラグイン３６２は、抽出したプログラムログの障害検出情報を監視プログラム３４０へ出力する。
【００６２】
ダンプ情報解析プラグイン３６３は、ダンプ情報取得部３５３から出力されたダンプ情報のうちの、監視プログラム３４０が計算機１０の障害を検出したときのダンプ情報から障害検出情報を抽出する。ダンプ情報解析プラグイン３６３は、抽出したダンプ情報の障害検出情報を監視プログラム３４０へ出力する。
【００６３】
パッチ適用情報取得部３７０は、計算機１０のパッチ適用情報を取得する。パッチ適用情報とは、計算機１０に適用済みのパッチに関する情報である。パッチ適用情報には、計算機１０に適用済みのパッチを識別するパッチ番号や、そのパッチの適用日時や、そのパッチの適用プログラムなどの情報が含まれている。パッチ適用情報取得部３７０は、計算機１０にパッチが適用されるごとにパッチ適用情報を更新して、更新したパッチ適用情報をパッチＤＢプラグイン３３０へ出力する。
【００６４】
システム情報取得部３８０は、計算機１０のシステム情報を取得する。システム情報とは、計算機１０が備えるハードウエアに関する情報や、計算機１０にインストールされたソフトウエアに関する情報である。システム情報取得部３８０は、取得したシステム情報を監視プログラム３４０へ出力する。
【００６５】
出力部３９０は、図１に示した出力部１６０の機能に相当する。出力部３９０は、監視プログラム３４０によって特定された適用パッチ候補を、たとえば図２に示したディスプレイ２３１に表示（図１符号１６１参照）する。また、出力部３９０は、監視プログラム３４０によって特定されたレベルダウンパッチ候補をディスプレイ２３１に表示する。出力部３９０が表示する適用パッチ候補またはレベルダウンパッチ候補は複数でもよい。
【００６６】
出力部３９０によって適用パッチ候補が表示されると、ユーザは、たとえば図２に示したキーボード２２１やマウス２２２などによって、表示された適用パッチ候補を計算機１０に適用するか否かの指示を入力する。適用パッチ候補を適用する旨の入力をユーザから受け付けると、計算機１０は、パッチを提供するサーバから、適用する旨の入力を受け付けた適用パッチ候補をダウンロードして自装置に適用する。
【００６７】
出力部３９０によってレベルダウンパッチ候補が表示されると、ユーザは、たとえば図２に示したキーボード２２１やマウス２２２などによって、表示されたレベルダウンパッチ候補の適用を解除するか否かの指示を入力する。レベルダウンパッチ候補の適用を解除する旨の入力をユーザから受け付けると、計算機１０は、適用する旨の入力を受け付けたレベルダウンパッチ候補を自装置から解除する。
【００６８】
出力部３９０によって適用パッチ候補が複数表示されている場合は、ユーザは、複数の適用パッチ候補の中から選択的に、適用パッチ候補を適用する旨の入力をおこなうことができる。また、出力部３９０によってレベルダウンパッチ候補が複数表示されている場合は、ユーザは、複数のレベルダウンパッチ候補の中から選択的に、レベルダウンパッチ候補の適用を解除する旨の入力をおこなうことができる。
【００６９】
また、出力部３９０は、適用パッチ候補またはレベルダウンパッチ候補をユーザに対して表示するのではなく、適用パッチ候補を適用すべき旨の指示またはレベルダウンパッチ候補を解除すべき旨の指示を計算機１０へ出力してもよい。計算機１０は、出力部３９０から適用パッチ候補を適用すべき旨の指示が出力されると、パッチを提供するサーバから適用パッチ候補をダウンロードして自装置に適用する。
【００７０】
また、計算機１０は、出力部３９０からレベルダウンパッチ候補を解除すべき旨の指示が出力されると、レベルダウンパッチ候補を自装置から解除する。この場合は、ユーザによる判断によらず、監視プログラム３４０によって特定された適用パッチ候補の適用、またはレベルダウンパッチ候補の解除を自動的におこなうことができる。
【００７１】
図４は、計算機のハードウエア構成の一例を示すブロック図である。図４に示すように、計算機１０は、ＳＣＳＩカード４１（識別名：「ＳＣＳＩＡ００１」）およびＲＡＩＤ４２（識別名：「ＲＡＩＤＡ００１」）を備えている。ＲＡＩＤ４２は、計算機１０の本体の外部に設けられている。ＲＡＩＤ４２は、計算機１０の本体に設けられたＳＣＳＩカード４１を介して接続されている。以下の説明では、計算機１０がＳＣＳＩカード４１およびＲＡＩＤ４２を備えているものとする。
【００７２】
図５は、計算機のシステム情報の一例を示す説明図である。システム情報取得部３８０は、図５の符号５００に示すようなシステム情報を取得する。システム情報５００には、システム情報５００の更新日時、計算機１０のハードウエアおよびソフトウエアに関する情報などが含まれている。ここでは、システム情報５００には、計算機１０のＯＳ種別「Ｓｏｌａｒｉｓ」およびその版数「Ｖ１０」が含まれている。
【００７３】
また、システム情報５００には、計算機１０のハードウエアに関する情報として、図４に示したＳＣＳＩカード４１の識別名「ＳＣＳＩＡ００１」およびＲＡＩＤ４２の識別名「ＲＡＩＤＡ００１」の情報が含まれている。また、システム情報５００には、計算機１０のソフトウエアに関する情報として、ＳＣＳＩカード４１のドライバのプログラム名「ＳＣＳＩドライバ」およびその版数「Ｖ１．０Ｌ００」が含まれている。
【００７４】
図６は、公開パッチ情報の具体例１を示す説明図である。図６の公開パッチ情報６００は、公開パッチ情報取得部３１０が取得する公開パッチ情報の具体例１を示している。公開パッチ情報６００には、パッチ番号としての「２００７００１」、障害番号としての「Ｎ２００７−０１−０００１」の他に、パッチによるプログラムの修正内容の概要、パッチの適用が必要な現象の要約、パッチの適用条件などの情報などが含まれている。
【００７５】
図７は、公開障害情報の具体例１を示す説明図である。図７の公開障害情報７００は、障害情報取得部３２０が取得する公開障害情報の具体例１を示している。公開障害情報７００には、トラブル管理番号としての「Ｎ２００７−０１−０００１」の他に、トラブルの現象の要約または詳細、トラブルの現象の発生条件、現象の詳細、トラブルへの対応方法、トラブルの回避策、トラブルを検索するためのキーワード、トラブルに対応するパッチを示すパッチ番号、障害検出情報などが含まれている。
【００７６】
図８は、パッチデータの具体例１を示す説明図である。図８のパッチデータ８００は、データベース３３１に記憶されたパッチデータの具体例１を示している。図６に示した公開パッチ情報６００に含まれる障害番号としての「Ｎ２００７−０１−０００１」と、図７に示した公開障害情報７００に含まれるトラブル管理番号としての「Ｎ２００７−０１−０００１」とが一致しているため、パッチＤＢプラグイン３３０は、公開パッチ情報６００および公開障害情報７００を対応付けてパッチデータ８００を作成する。
【００７７】
ここでは、障害番号とトラブル管理番号とに基づいて公開パッチ情報６００および公開障害情報７００を対応付ける場合について説明したが、障害番号とトラブル管理番号に限らず、公開障害情報７００に含まれる対応方法としての「２００７００１を適用する」と、公開パッチ情報６００に含まれるパッチ番号としての「２００７００１」とに基づいて公開パッチ情報６００および公開障害情報７００を対応付けてもよい。
【００７８】
図９は、公開パッチ情報の具体例２を示す説明図である。図９の公開パッチ情報９００は、公開パッチ情報取得部３１０が取得する公開パッチ情報の具体例２を示している。公開パッチ情報９００には公開パッチ情報６００と同様の情報が含まれている。公開パッチ情報９００のパッチ番号は「２００７００２」であり、障害番号は「Ｎ２００７−０１−０００２」となっている。
【００７９】
図１０は、公開障害情報の具体例２を示す説明図である。図１０の公開障害情報１０００は、障害情報取得部３２０が取得する公開障害情報の具体例２を示している。公開障害情報１０００には公開障害情報７００と同様の情報が含まれている。公開障害情報１０００のトラブル管理番号は「Ｎ２００７−０１−０００２」である。また、公開障害情報１０００には、プログラムログの障害検出情報としての「ＳＣＳＩドライバＶ１．０Ｌ００」などが含まれている。
【００８０】
図１１は、パッチデータの具体例２を示す説明図である。図１１のパッチデータ１１００は、データベース３３１に記憶されたパッチデータの具体例２を示している。図９に示した公開パッチ情報９００に含まれる障害番号としての「Ｎ２００７−０１−０００２」と、図１０に示した公開障害情報１０００に含まれるトラブル管理番号としての「Ｎ２００７−０１−０００２」とが一致しているため、パッチＤＢプラグイン３３０は、公開パッチ情報９００および公開障害情報１０００を対応付けてパッチデータ１１００を作成する。
【００８１】
図１２は、公開パッチ情報の具体例３を示す説明図である。図１２の公開パッチ情報１２００は、公開パッチ情報取得部３１０が取得する公開パッチ情報の具体例３を示している。公開パッチ情報１２００には公開パッチ情報６００と同様の情報が含まれている。公開パッチ情報１２００のパッチ番号は「２００７００３」であり、障害番号は「Ｎ２００７−０１−０００３」となっている。
【００８２】
図１３は、公開障害情報の具体例３を示す説明図である。図１３の公開障害情報１３００は、障害情報取得部３２０が取得する公開障害情報の具体例３を示している。公開障害情報１３００には公開障害情報７００と同様の情報が含まれている。公開障害情報１３００のトラブル管理番号は「Ｎ２００７−０１−０００３」である。また、公開障害情報１３００には、ダンプ情報の障害検出情報としての「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４」および「ｄｏｗｎ  ｃｏｄｅ  １００」などが含まれている。
【００８３】
図１４は、パッチデータの具体例３を示す説明図である。図１４のパッチデータ１４００は、データベース３３１に記憶されたパッチデータの具体例３を示している。図１２に示した公開パッチ情報１２００に含まれる障害番号としての「Ｎ２００７−０１−０００３」と、図１３に示した公開障害情報１３００に含まれるトラブル管理番号としての「Ｎ２００７−０１−０００３」とが一致しているため、パッチＤＢプラグイン３３０は、公開パッチ情報１２００と公開障害情報１３００を対応付けてパッチデータ１４００を作成する。
【００８４】
図１５は、パッチ適用情報の具体例を示す説明図である。図１５のパッチ適用情報１５００は、パッチ適用情報取得部３７０が取得するパッチ適用情報の具体例を示している。パッチ適用情報１５００には、たとえば、パッチ番号「２００６００１」のパッチを２００６年１月１０日８時に適用した旨の情報や、そのパッチの適用プログラムのプログラム名や版数に関する情報などが含まれている。
【００８５】
図１６は、パッチ候補選択装置の動作の一例を示すフローチャートである。図１６に示すように、まず、監視プログラム３４０が、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３から出力される各解析情報に基づいて、計算機１０に障害が発生したか否かを判断する（ステップＳ１６０１）。障害が発生していない場合には障害が発生するまで待つ（ステップＳ１６０１：Ｎｏのループ）。
【００８６】
ステップＳ１６０１において、障害が発生した場合（ステップＳ１６０１：Ｙｅｓ）は、システムログ解析プラグイン３６１および監視プログラム３４０が、システムログ取得部３５１から出力されたシステムログに基づいてシステムログ解析をおこなう（ステップＳ１６０２，図１７参照）。つぎに、ステップＳ１６０２のシステムログ解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６０３）。
【００８７】
ステップＳ１６０３において、適用パッチ候補が特定された場合（ステップＳ１６０３：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。適用パッチ候補が特定されていない場合（ステップＳ１６０３：Ｎｏ）は、障害の発生原因のプログラムが特定されているか否かを判断する（ステップＳ１６０４）。障害の発生原因のプログラムは、たとえばステップＳ１６０２によって取得したシステムログに基づいて特定する。
【００８８】
ステップＳ１６０４において、障害の発生原因のプログラムが特定されている場合（ステップＳ１６０４：Ｙｅｓ）には、プログラムログ解析プラグイン３６２および監視プログラム３４０が、障害の発生原因のプログラムのプログラムログ解析をおこなう（ステップＳ１６０５，図１８参照）。
【００８９】
プログラム解析は、プログラムログ取得部３５２から出力されたプログラムログに基づいてプログラムログ解析プラグイン３６２および監視プログラム３４０がおこなう。つぎに、ステップＳ１６０５のプログラムログ解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６０６）。適用パッチ候補が特定された場合（ステップＳ１６０６：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。
【００９０】
ステップＳ１６０４において、プログラムが特定されていない場合（ステップＳ１６０４：Ｎｏ）と、ステップＳ１６０６において適用パッチ候補が特定されていない場合（ステップＳ１６０６：Ｎｏ）は、計算機１０にインストールされた各プログラムのうちの一つのプログラムログ解析をおこなう（ステップＳ１６０７，図１８参照）。
【００９１】
ステップＳ１６０７において、プログラム解析は、プログラムログ取得部３５２から出力されたプログラムログに基づいてプログラムログ解析プラグイン３６２および監視プログラム３４０がおこなう。つぎに、ステップＳ１６０７のプログラムログ解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６０８）。
【００９２】
ステップＳ１６０８において、適用パッチ候補が特定された場合（ステップＳ１６０８：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。適用パッチ候補が特定されていない場合（ステップＳ１６０８：Ｎｏ）は、ステップＳ１６０７によって、計算機１０にインストールされた各プログラムのすべてのプログラムログ解析をおこなったか否かを判断する（ステップＳ１６０９）。
【００９３】
ステップＳ１６０９において、すべてのプログラムログ解析をおこなっていない場合（ステップＳ１６０９：Ｎｏ）は、ステップＳ１６０７に戻り、まだプログラムログ解析をおこなっていないプログラムのプログラムログ解析をおこなう。ステップＳ１６０９において、すべてのプログラムログ解析をおこなった場合（ステップＳ１６０９：Ｙｅｓ）は、ダンプ情報解析プラグイン３６３および監視プログラム３４０がダンプ情報解析をおこなう（ステップＳ１６１０）。
【００９４】
つぎに、ステップＳ１６１０のダンプ情報解析によって適用パッチ候補が特定されたか否かを判断する（ステップＳ１６１１）。適用パッチ候補が特定された場合（ステップＳ１６１１：Ｙｅｓ）は、ステップＳ１６１４へ進んで処理を続行する。適用パッチ候補が特定されていない場合（ステップＳ１６１１：Ｎｏ）は、監視プログラム３４０が、パッチ適用情報に基づいてレベルダウン解析をおこなう（ステップＳ１６１２）。
【００９５】
つぎに、ステップＳ１６１２のレベルダウン解析によって特定されたパッチをレベルダウンの可能性があるパッチとして表示して（ステップＳ１６１３）、一連の動作を終了する。ステップＳ１６０３，Ｓ１６０６，Ｓ１６０８またはＳ１６１１によって適用パッチ候補が特定された場合は、特定された適用パッチ候補を表示して（ステップＳ１６１４）、一連の動作を終了する。
【００９６】
図１７は、図１６に示したシステムログ解析の具体例を示すフローチャートである。図１６のステップＳ１６０２においては、システムログ取得部３５１から出力されたシステムログに基づいて、図１７に示すようなシステムログ解析をおこなう。まず、システムログ解析プラグイン３６１が、システムログ取得部３５１から出力されたシステムログからエラーメッセージを抽出する（ステップＳ１７０１）。
【００９７】
つぎに、監視プログラム３４０が、データベース３３１において、選択条件に含まれているエラーメッセージが、ステップＳ１７０１によって抽出したエラーメッセージと一致するパッチがあるか否かを判断する（ステップＳ１７０２）。エラーメッセージが一致するパッチがない場合（ステップＳ１７０２：Ｎｏ）はシステムログ解析を終了する。
【００９８】
ステップＳ１７０２において、エラーメッセージが一致するパッチがある場合（ステップＳ１７０２：Ｙｅｓ）は、エラーメッセージが一致するパッチのうちの一つについて、そのパッチが計算機１０に適用済みであるか否かを判断する（ステップＳ１７０３）。ステップＳ１７０３においては、パッチ適用情報取得部３７０からパッチＤＢプラグイン３３０を介して取得したパッチ適用情報を参照して、そのパッチが計算機１０に適用済みであるか否かを判断する。
【００９９】
ステップＳ１７０３において、パッチが計算機１０に適用済みである場合（ステップＳ１７０３：Ｙｅｓ）は、ステップＳ１７０６へ進んで処理を続行する。パッチが計算機１０に適用済みでない場合（ステップＳ１７０３：Ｎｏ）は、データベースにおいて、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致しているか否かを判断する（ステップＳ１７０４）。ステップＳ１７０４においては、システム情報取得部３８０から出力されるシステム情報に基づいて、システム情報が一致しているか否かを判断する。
【０１００】
ステップＳ１７０４において、システム情報が一致していない場合（ステップＳ１７０４：Ｎｏ）は、ステップＳ１７０６へ進んで処理を続行する。システム情報が一致している場合（ステップＳ１７０４：Ｙｅｓ）は、このパッチを適用パッチ候補として特定する（ステップＳ１７０５）。つぎに、ステップＳ１７０２においてエラーメッセージが一致すると判断したすべてのパッチをステップＳ１７０３によって処理したか否かを判断する（ステップＳ１７０６）。
【０１０１】
ステップＳ１７０６において、すべてのパッチを処理していない場合（ステップＳ１７０６：Ｎｏ）は、ステップＳ１７０３に戻り、ステップＳ１７０２においてエラーメッセージが一致すると判断したパッチのうちのまだステップＳ１７０３によって処理していないパッチを処理する。すべてのパッチを処理した場合（ステップＳ１７０６：Ｙｅｓ）は、システムログ解析を終了する。
【０１０２】
以上に示したステップにおいて、システムログ取得部３５１から出力されたシステムログが「…ＥＲＲ１２３４…」であった場合は、ステップＳ１７０１によってエラーメッセージ「ＥＲＲ１２３４」が抽出される。エラーメッセージ「ＥＲＲ１２３４」は、たとえば図８に示したパッチデータ８００の選択条件に含まれているエラーメッセージと一致するため、パッチデータ８００に対応するパッチがステップＳ１７０２により検出される。
【０１０３】
また、パッチデータ８００に示すように、このパッチのパッチ番号は「２００７００１」である。図１５に示したパッチ適用情報１５００において、パッチ番号が「２００７００１」のパッチが計算機１０に適用された旨の情報がないため、ステップＳ１７０３において、このパッチは計算機１０に適用済みのパッチではないと判断される。
【０１０４】
また、パッチデータ８００に示すように、このパッチのシステム情報には、「ＳＣＳＩＡ００１  ＲＡＩＤＡ００１」が含まれている。図５に示したシステム情報５００には、「ＳＣＳＩＡ００１」および「ＲＡＩＤＡ００１」がそれぞれ含まれているため、ステップＳ１７０４において、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致していると判断される。
【０１０５】
このため、ステップＳ１７０５によって、パッチデータ８００に対応するパッチ（パッチ番号：２００７００１）が適用パッチ候補として特定される。この場合は、図１６のステップＳ１６０３において、ステップＳ１６０２のシステムログ解析によって適用パッチ候補が特定されたと判断され、ステップＳ１６１４によって、パッチデータ８００に対応するパッチ（パッチ番号：２００７００１）が表示される。
【０１０６】
図１８は、図１６に示したプログラムログ解析の具体例を示すフローチャートである。図１６のステップＳ１６０５およびステップＳ１６０７においては、一つの解析対象のプログラムについて、図１８に示すようなプログラム解析をおこなう。まず、データベース３３１において、選択条件に含まれているプログラムが、解析対象のプログラムと一致しているパッチがあるか否かを判断する（ステップＳ１８０１）。
【０１０７】
プログラムが一致するパッチがない場合（ステップＳ１８０１：Ｎｏ）は、プログラムログ解析を終了する。プログラムが一致するパッチがある場合（ステップＳ１８０１：Ｙｅｓ）は、プログラムログ取得部３５２から出力されたプログラムログから、プログラムログの障害検出情報を抽出する（ステップＳ１８０２）。
【０１０８】
つぎに、ステップＳ１８０１によってプログラムが一致していると判断されたパッチのうちの一つについて、そのパッチが計算機１０に適用済みであるか否かを判断する（ステップＳ１８０３）。ステップＳ１８０３においては、パッチ適用情報取得部３７０から出力されるパッチ適用情報を参照してパッチが適用済みであるか否かを判断する。
【０１０９】
ステップＳ１８０３において、パッチが計算機１０に適用済みである場合（ステップＳ１８０３：Ｙｅｓ）は、ステップＳ１８０７へ進んで処理を続行する。パッチが計算機１０に適用済みでない場合（ステップＳ１８０３：Ｎｏ）は、データベース３３１において、このパッチのプログラムログの障害検出情報が、ステップＳ１８０２によって抽出された障害検出情報と一致しているか否かを判断する（ステップＳ１８０４）。
【０１１０】
ステップＳ１８０４において、プログラムログの障害検出情報が一致していない場合（ステップＳ１８０４：Ｎｏ）は、ステップＳ１８０７へ進んで処理を続行する。プログラムログの障害検出情報が一致している場合（ステップＳ１８０４：Ｙｅｓ）は、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致しているか否かを判断する（ステップＳ１８０５）。
【０１１１】
ステップＳ１８０５において、システム情報が一致していない場合（ステップＳ１８０５：Ｎｏ）は、ステップＳ１８０７へ進んで処理を続行する。システム情報が一致している場合（ステップＳ１８０５：Ｙｅｓ）は、このパッチを適用パッチ候補として特定する（ステップＳ１８０６）。つぎに、ステップＳ１８０１においてプログラムが一致していると判断されたすべてのパッチをステップＳ１８０３によって処理したか否かを判断する（ステップＳ１８０７）。
【０１１２】
ステップＳ１８０７において、すべてのパッチを処理していない場合（ステップＳ１８０７：Ｎｏ）は、ステップＳ１８０３に戻り、ステップＳ１８０１においてプログラムが一致すると判断したパッチのうちのまだステップＳ１８０３によって処理していないパッチを処理する。すべてのパッチを処理した場合（ステップＳ１８０７：Ｙｅｓ）は、プログラムログ解析を終了する。
【０１１３】
以上に示したステップにおいて、解析対象のプログラムが「ＳＣＳＩドライバＶ１．０Ｌ００」であるとする。プログラム「ＳＣＳＩドライバＶ１．０Ｌ００」は、たとえば図１１に示したパッチデータ１１００の選択条件に含まれているプログラムと一致するため、パッチデータ１１００に対応するパッチがステップＳ１８０１によって検出される。
【０１１４】
図１９は、プログラムログの一例を示す説明図である。プログラムログ取得部３５２は、図１９の符号１９００に示すようなプログラムログを出力する。プログラム取得部３６１が出力したプログラムが、プログラムログ１９００のように「…１０  （ｐｒｏｇｒａｍ−１）／状態１，１０  （ｐｒｏｇｒａｍ−２）／状態２…」であった場合は、図１８のステップＳ１８０２によってプログラムログの障害検出情報「状態１＝１０，状態２＝１０」が抽出される。
【０１１５】
また、パッチデータ１１００のパッチ番号は「２００７００２」である。図１５に示したパッチ適用情報１５００において、パッチ番号が「２００７００２」のパッチが計算機１０に適用された旨の情報がないため、図１８のステップＳ１８０３において、このパッチは計算機１０に適用済みのパッチではないと判断される。
【０１１６】
また、パッチデータ１１００の選択条件に含まれる障害検出情報には、プログラムログの障害検出情報「状態１＝１０，状態２＝１０」が含まれている。図１８のステップＳ１８０２によって抽出されたプログラムログの障害検出情報も「状態１＝１０，状態２＝１０」であるため、図１８のステップＳ１８０４において、プログラムログの障害検出情報が一致していると判断される。
【０１１７】
また、パッチデータ１１００の選択条件に含まれているシステム情報には、「ＳＣＳＩＡ００１  ＲＡＩＤＡ００１」が含まれている。図５に示したシステム情報５００には、「ＳＣＳＩＡ００１」および「ＲＡＩＤＡ００１」が含まれているため、ステップＳ１８０４において、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致していると判断される。
【０１１８】
このため、ステップＳ１８０６によって、パッチデータ１１００に対応するパッチ（パッチ番号：２００７００２）が適用パッチ候補として特定される。この場合は、図１６のステップＳ１６０６（またはＳ１６０８）において、ステップＳ１６０５（またはＳ１６０７）のプログラムログ解析によって適用パッチ候補が特定されたと判断され、ステップＳ１６１４によって、パッチデータ１１００に対応するパッチ（パッチ番号：２００７００２）が表示される。
【０１１９】
図２０は、図１６に示したダンプ情報解析の具体例を示すフローチャートである。図１６のステップＳ１６１０においては、図２０に示すようなダンプ情報解析をおこなう。まず、計算機１０に障害が発生したときにダンプ情報取得部３５３によって取得されたダンプ情報があるか否かを判断する（ステップＳ２００１）。ダンプ情報がない場合（ステップＳ２００１：Ｎｏ）はダンプ情報解析を終了する。
【０１２０】
ステップＳ２００１において、ダンプ情報がある場合（ステップＳ２００１：Ｙｅｓ）は、そのダンプ情報に基づいて、計算機１０に発生した障害の原因のプログラムを特定する（ステップＳ２００２）。つぎに、データベース３３１において、選択条件に含まれているプログラムが、ステップＳ２００２によって特定されたプログラムと一致しているパッチがあるか否かを判断する（ステップＳ２００３）。
【０１２１】
ステップＳ２００３において、プログラムが一致するパッチがない場合（ステップＳ２００３：Ｎｏ）はダンプ情報解析を終了する。プログラムが一致するパッチがある場合（ステップＳ２００３：Ｙｅｓ）は、ダンプ情報解析プラグイン３６３が、ダンプ情報取得部３５３から出力されたダンプ情報から、ダンプ情報の障害検出情報を抽出する（ステップＳ２００４）。
【０１２２】
つぎに、ステップＳ２００３によってプログラムが一致していると判断されたパッチのうちの一つについて、そのパッチが計算機１０に適用済みのパッチか否かを判断する（ステップＳ２００５）。パッチが計算機１０に適用済みである場合（ステップＳ２００５：Ｙｅｓ）は、ステップＳ２００９へ進んで処理を続行する。
【０１２３】
ステップＳ２００５において、パッチが計算機１０に適用済みのパッチでない場合（ステップＳ２００５：Ｎｏ）は、このパッチの選択条件に含まれる障害検出情報が、ステップＳ２００４によって抽出されたダンプ情報の障害検出情報と一致しているか否かを判断する（ステップＳ２００６）。
【０１２４】
ステップＳ２００６において、ダンプ情報の障害検出情報が一致していない場合（ステップＳ２００６：Ｎｏ）は、ステップＳ２００９へ進んで処理を続行する。ダンプ情報の障害検出情報が一致している場合（ステップＳ２００６：Ｙｅｓ）は、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致しているか否かを判断する（ステップＳ２００７）。
【０１２５】
ステップＳ２００７において、システム情報が一致していない場合（ステップＳ２００７：Ｎｏ）は、ステップＳ２００９へ進んで処理を続行する。システム情報が一致している場合（ステップＳ２００７：Ｙｅｓ）は、このパッチを適用パッチ候補として特定する（ステップＳ２００８）。つぎに、ステップＳ２００３においてプログラムが一致していると判断されたすべてのパッチをステップＳ２００５によって処理したか否かを判断する（ステップＳ２００９）。
【０１２６】
すべてのパッチを処理していない場合（ステップＳ２００９：Ｎｏ）は、ステップＳ２００５に戻り、ステップＳ２００３においてプログラムが一致すると判断したパッチのうちのまだステップＳ２００５によって処理していないパッチを処理する。すべてのパッチを処理した場合（ステップＳ２００９：Ｙｅｓ）は、ダンプ情報解析を終了する。
【０１２７】
以上に示したステップにおいて、たとえば、ステップＳ２００２によって特定されたプログラムが「ＳＣＳＩドライバＶ１．０Ｌ００」であるとする。プログラム「ＳＣＳＩドライバＶ１．０Ｌ００」は、たとえば図１４に示したパッチデータ１４００の選択条件に含まれているプログラムと一致するため、パッチデータ１４００に対応するパッチがステップＳ２００３によって検出される。
【０１２８】
図２１は、ダンプ情報の一例を示す説明図である。ダンプ情報取得部３５３は、図２１の符号２１００に示すようなダンプ情報を出力する。ダンプ情報取得部３５３が出力したダンプ情報が、ダンプ情報２１００のように「…，ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４，ｄｏｗｎ  ｃｏｄｅ  １００，…」であった場合は、図２０のステップＳ２００４によってダンプ情報の障害検出情報「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４，ｄｏｗｎ  ｃｏｄｅ  １００」が抽出される。
【０１２９】
また、パッチデータ１４００に対応するパッチのパッチ番号は「２００７００３」である。図１５に示したパッチ適用情報１５００において、パッチ番号が「２００７００３」のパッチが計算機１０に適用された旨の情報がないため、図２０のステップＳ２００５において、このパッチは計算機１０に適用済みのパッチではないと判断される。
【０１３０】
また、パッチデータ１４００の選択条件に含まれる障害検出情報には、ダンプ情報の障害検出情報「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４」および「ｄｏｗｎ  ｃｏｄｅ  １００」が含まれている。図２０のステップＳ２００４によって抽出されたダンプ情報の障害検出情報も「ａｄｄｒｅｓｓ  ａｂｃｄ００００００００１２３４，ｄｏｗｎ  ｃｏｄｅ  １００」であるため、図２０のステップＳ２００６において、ダンプ情報の障害検出情報が一致していると判断される。
【０１３１】
また、パッチデータ１４００の選択条件に含まれているシステム情報には、「ＳＣＳＩＡ００１  ＲＡＩＤＡ００１」が含まれている。図５に示したシステム情報５００には、「ＳＣＳＩＡ００１」および「ＲＡＩＤＡ００１」がそれぞれ含まれているため、ステップＳ２００７において、このパッチの選択条件に含まれるシステム情報が、計算機１０のシステム情報と一致していると判断される。
【０１３２】
このため、ステップＳ２００８によって、パッチデータ１４００に対応するパッチ（パッチ番号：２００７００３）が適用パッチ候補として特定される。この場合は、図１６のステップＳ１６１１において、ステップＳ１６１０のダンプ情報解析によって適用パッチ候補が特定されたと判断され、ステップＳ１６１４によって、パッチデータ１４００に対応するパッチ（パッチ番号：２００７００３）が表示される。
【０１３３】
図２２は、図１６に示したレベルダウン解析の具体例を示すフローチャートである。図２２に示すように、まず、システムログ解析プラグイン３６１、プログラムログ解析プラグイン３６２およびダンプ情報解析プラグイン３６３から出力される各解析情報に基づいて、計算機１０に障害が発生した日時を特定する（ステップＳ２２０１）。
【０１３４】
つぎに、上記の公開障害情報に基づいて、障害の原因となったプログラムを特定する（ステップＳ２２０２）。つぎに、パッチ適用情報取得部３７０から出力されるパッチ適用情報に基づいて、計算機１０に適用した日時が、ステップＳ２２０１によって特定した日時と一致する適用済みのパッチがあるか否かを判断する（ステップＳ２２０３）。
【０１３５】
ステップＳ２２０３において、日時が一致するパッチがない場合（ステップＳ２２０３：Ｎｏ）はレベルダウン解析を終了する。日時が一致するパッチがある場合（ステップＳ２２０３：Ｙｅｓ）は、日時が一致すると判断されたパッチのうちの一つについて、データベース３３１においてそのパッチの選択条件に含まれるプログラムが、ステップＳ２２０２により特定されたプログラムと一致するか否かを判断する（ステップＳ２２０４）。
【０１３６】
ステップＳ２２０４において、プログラムが一致しない場合（ステップＳ２２０４：Ｎｏ）は、ステップＳ２２０６へ進んで処理を続行する。プログラムが一致する場合（ステップＳ２２０４：Ｙｅｓ）は、その適用済みパッチをレベルダウンの可能性があるレベルダウンパッチ候補として特定する（ステップＳ２２０５）。
【０１３７】
つぎに、ステップＳ２３０３において日時が一致していると判断されたすべての適用済みのパッチをステップＳ２２０３によって処理したか否かを判断する（ステップＳ２２０６）。すべての適用済みのパッチについて判断していない場合（ステップＳ２２０６：Ｎｏ）は、ステップＳ２２０４に戻り、まだ処理していない適用済みのパッチについて処理する。すべてのパッチについて処理した場合（ステップＳ２２０６：Ｙｅｓ）は、一連のレベルダウン解析の処理を終了する。
【０１３８】
以上説明したように、本実施の形態によれば、パッチとその選択条件が記憶されたデータベース３３１を予め作成しておき、障害が発生したときの計算機１０の記録情報から抽出した障害を特定する情報によって検索することで、計算機１０において発生した障害に応じたパッチの候補を自動的に選択することができる。
【０１３９】
これにより、必要最小限のパッチの候補を自動的に選択することができる。このため、パッチのダウンロードおよび適用処理を短縮し、計算機１０の長時間の運用停止を回避することができる。また、必要以上のパッチを適用しないことで、レベルダウンの可能性を低減することができる。
【０１４０】
また、障害を特定する情報として、障害が発生したときのシステムログから抽出したエラーメッセージや、障害が発生したときの特定のプログラムログや、障害が発生したときの特定のダンプ情報などを用いることで、障害に応じたパッチを精度よく選択することができる。また、データベース３３１の各パッチのうちの、計算機に適用済みのパッチは選択対象から除外することで、障害に応じたパッチを効率よく選択することができる。
【０１４１】
また、パッチとその選択条件が記憶されたデータベースを、障害が発生したときの計算機１０の記録情報から抽出した障害を特定する情報および計算機１０のシステム情報の両方によって検索することで、障害に応じたパッチの候補を精度よく選択することができる。また、選択条件を満たすパッチを特定できなかった場合に、計算機１０に適用済みのパッチのうちの、障害の発生日時と適用日時が一致するパッチを特定することで、レベルダウンの可能性があるパッチを自動的に選択することができる。
【０１４２】
なお、本実施の形態においては、パッチ候補選択装置１００が、サーバからパッチの提供を受けるクライアント側の計算機１０に適用される場合について説明したが、パッチ候補選択装置１００を、たとえば、サーバからパッチの提供を受けるクライアント側の計算機１０を監視可能な別の計算機に適用してもよい。
【０１４３】
また、本実施の形態で説明したパッチ候補選択方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１４４】
また、本実施の形態で説明したパッチ候補選択装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称する。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述したパッチ候補選択装置１００の機能をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、パッチ候補選択装置１００を製造することができる。
【０１４５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４６】
（付記１）計算機の障害を検出する検出手段と、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段と、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段と、
前記特定手段によって特定された特定結果を出力する出力手段と、
を備えることを特徴とするパッチ候補選択装置。
【０１４７】
（付記２）前記取得手段は、
前記記録情報として前記計算機のシステムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたシステムログから、前記障害を特定する情報として前記障害のエラーメッセージを抽出し、
前記特定手段は、
前記データベースに基づいて、前記抽出手段によって抽出されたエラーメッセージが前記選択条件に含まれているエラーメッセージと一致するパッチを前記複数のパッチの中から特定することを特徴とする付記１に記載のパッチ候補選択装置。
【０１４８】
（付記３）前記取得手段は、
前記記録情報として前記計算機のプログラムログを取得し、
前記抽出手段は、
前記取得手段によって取得されたプログラムログから、前記障害を特定する情報を抽出することを特徴とする付記１または２に記載のパッチ候補選択装置。
【０１４９】
（付記４）前記取得手段は、
前記記録情報として前記計算機のダンプ情報を取得し、
前記抽出手段は、
前記記録情報として前記取得手段によって取得されたダンプ情報から前記障害を特定する情報を抽出することを特徴とする付記１に記載のパッチ候補選択装置。
【０１５０】
（付記５）前記特定手段は、
さらに、前記データベースに記憶されたパッチのうちの前記計算機に適用済みのパッチを除いた残余のパッチの中から前記選択条件を満たすパッチを特定することを特徴とする付記１に記載のパッチ候補選択装置。
【０１５１】
（付記６）前記計算機のシステム情報を取得するシステム情報取得手段を備え、
前記特定手段は、
さらに、前記システム情報取得手段によって取得されたシステム情報が前記選択条件と一致するパッチを特定することを特徴とする付記１に記載のパッチ候補選択装置。
【０１５２】
（付記７）前記特定手段は、
さらに、前記選択条件を満たすパッチを特定できなかった場合は、前記計算機に適用済みのパッチのうちの、前記検出手段によって検出された障害の発生日時と適用日時が一致するパッチを特定することを特徴とする付記１に記載のパッチ候補選択装置。
【０１５３】
（付記８）コンピュータを、
計算機の障害を検出する検出手段、
前記検出手段によって検出された障害が発生したときの前記計算機の記録情報を取得する取得手段、
前記取得手段によって取得された記録情報から前記障害を特定する情報を抽出する抽出手段、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出手段によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定手段、
前記特定手段によって特定された特定結果を出力する出力手段、
として機能させることを特徴とするパッチ候補選択プログラム。
【０１５４】
（付記９）計算機の障害を検出する検出工程と、
前記検出工程によって検出された障害が発生したときの前記計算機の記録情報を取得する取得工程と、
前記取得工程によって取得された記録情報から前記障害を特定する情報を抽出する抽出工程と、
パッチとその選択条件が記憶されたデータベースに基づいて、前記抽出工程によって抽出された障害を特定する情報が前記選択条件を満たすパッチを特定する特定工程と、
前記特定工程によって特定された特定結果を出力する出力工程と、
を含んだことを特徴とするパッチ候補選択方法。
【符号の説明】
【０１５５】
１０  計算機
４１  ＳＣＳＩカード
４２  ＲＡＩＤ
１２１  システムログ
１３１  エラーメッセージ
１２２，２１００  ダンプ情報
５００  システム情報
６００，９００，１２００  公開パッチ情報
７００，１０００，１３００  公開障害情報
８００，１１００，１４００  パッチデータ
１５００  パッチ適用情報
１９００  プログラムログ
【国際調査報告】
2009104268.tif 000025
2009104268.tif 000026