(57)【要約】発生した障害に対して、この障害の対応に要する時間の無駄を抑えることによって、情報処理端末（１）の稼働率や処理効率の低下を抑える。情報処理端末（１）は、自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけて登録した障害対応テーブル（１４）を記憶する。情報処理端末（１）は、処理プログラムの実行時に障害が発生すると、今回発生した障害の種別を判定する。情報処理端末（１）は、判定した障害の種別で、障害対応テーブル（１４）を検索し、今回発生した障害に対する対応を選択し、実行する。
2012132101.tif 000002
【特許請求の範囲】
【請求項１】
自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけて登録した障害対応テーブルを記憶する記憶部と、
前記処理プログラムの実行時に障害が発生した場合、今回発生した障害の種別を判定する判定部と、
前記判定部が判定した障害の種別で、前記記憶部が記憶する前記障害対応テーブルを検索し、今回発生した障害に対する対応を選択する対応方法選択部と、
前記対応方法選択部が選択した対応を実行する障害対応実行部と、
前記障害対応実行部が実行した実行結果に基づいて前記障害対応テーブルを更新する障害対応テーブル更新部と、を備えた情報処理装置。
【請求項２】
前記障害対応実行部が実行した実行結果によって、障害が回復したか否かを判定する回復判定部を備え、
前記障害対応テーブル更新部は、前記回復判定部で判定された判定結果を前記障害対応テーブルに記憶する、請求項１に記載の情報処理装置。
【請求項３】
前記対応方法選択部は、前記回復判定部で障害が回復したと判定された対応方法を選択する、請求項２に記載の情報処理装置。
【請求項４】
前記障害対応テーブル更新部による前記障害対応テーブルの更新内容を、相互に通信可能に接続された他の情報処理装置に通知する障害対応方法通知部と、を備えた請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけて登録した障害対応テーブルを記憶部に記憶する情報処理装置のコンピュータを、
前記処理プログラムの実行時に障害が発生した場合、今回発生した障害の種別を判定する判定部、
前記判定部が判定した障害の種別で、前記記憶部が記憶する前記障害対応テーブルを検索し、今回発生した障害に対する対応方法を選択する対応方法選択部、
前記対応方法選択部が選択した対応方法を実行する障害対応実行部、および、
前記障害対応実行部が実行した実行結果に基づいて前記障害対応テーブルを更新する障害対応テーブル更新部、として機能させる障害対応プログラム。
【請求項６】
前記情報処理装置のコンピュータを、
前記障害対応実行部が実行した実行結果によって、障害が回復したか否かを判定する回復判定部として機能させるとともに、
前記障害対応テーブル更新部を前記回復判定部で判定された判定結果を前記障害対応テーブルに記憶させる機能とした、請求項５に記載の障害対応プログラム。
【請求項７】
前記対応方法選択部を、前記回復判定部で障害が回復したと判定された対応方法を選択する機能とした、請求項６に記載の障害対応プログラム。
【請求項８】
前記情報処理装置のコンピュータを、
前記障害対応テーブル更新部による前記障害対応テーブルの更新内容を、相互に通信可能に接続された他の処理端末に通知する障害対応方法通知部と、として機能させる請求項５〜７のいずれかに記載の障害対応プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自装置に搭載されている処理プログラムの実行時に発生した障害に対応する情報処理装置、および障害対応プログラムに関する。
【背景技術】
【０００２】
従来、複数の情報処理端末（ネットワーク機器）を相互に通信可能に接続したネットワークシステムがある。情報処理端末間の通信は、ＴＣＰ／ＩＰ等の公知のプロトコルで行われる。ＴＣＰ／ＩＰ通信を行うネットワーク機器は、ＩＰパケットによる通信を行うために、ルーティング表を保持している。このルーティング表は、ＩＰアドレス、サブネットマスク、デフォルトゲートウエイ、インターフェイス等が設定されている。ネットワーク機器は、このルーティング表を参照して、パケットを送信する送信先（通信相手端末）を決定する。【０００３】
また、通信を伴うアプリケーションの多くが、非同期なプロセス間通信やネットワーク通信において、メッセージを送信した後、その返信待ち中にタイムアウトになると、同じメッセージの再送信を行う。また、システムは、実行中に異常が発生してロックすると、ロックに関係するプロセスを再起動することや、あるいはネットワーク機器本体を再起動することが行われている。【０００４】
また、端末で障害が発生するのを防止するために、スクリプトを実行させることで、その原因を除去するシステムがある（特許文献１参照）。このシステムは、ホストコンピュータでスクリプトを管理しておき、このスクリプトを端末に配信して実行させることにより、障害が発生するのを防止する構成である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２９６１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、システムは、通信を伴うアプリケーションが非同期なプロセス間通信でメッセージを送信した送信先で障害が発生している場合、メッセージの再送信を何度も繰り返した後に、処理プログラムのプロセスを強制終了・再起動するので、障害の対応に要する時間が無駄に長くかかることがあった。【０００７】
すなわち、システムが、発生している障害に対して適正な対応を行う前に、障害を回復することができない不適正な対応を行うことがある。その結果、情報処理端末の稼働率を低下させ、これにともなって処理効率を低下させるという問題があった。【０００８】
なお、特許文献１は、障害の発生を抑制する発明であり、発生した障害の対応に要する時間の無駄を抑える構成ではない。【０００９】
この発明の目的は、発生した障害に対して、この障害の対応に要する時間の無駄を抑えることによって、本体の稼働率や処理効率の低下を抑える情報処理装置、および障害対応プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
この発明の情報処理装置は、上記課題を解決し、その目的を達するために以下のように構成している。【００１１】
この情報処理装置は、自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけて登録した障害対応テーブルを記憶部に記憶する。処理プログラムの実行時に障害が発生すると、判定部が今回発生した障害の種別を判定する。そして、対応方法選択部が、判定部が判定した障害の種別で、記憶部に記憶している障害対応テーブルを検索し、今回発生した障害に対する対応を選択する。障害対応実行部が対応方法選択部で選択した対応を実行する。【００１２】
障害対応テーブル更新部は、障害対応実行部が実行した実行結果に基づいて、障害対応テーブルを更新する。【００１３】
これにより、障害対応テーブルは、障害の種別に対応づけられている障害発生時の対応が最適でないものであっても、一度、その障害が発生すると、二度目以降は、常に最適な対応を実行することができ、情報処理装置本体の稼働率や処理効率の低下が抑えられる。【００１４】
また、障害対応テーブル更新部は、障害対応実行部が実行した実行結果によって、障害が回復したか否かを判定した判定結果を障害対応テーブルに記憶させる構成としてもよい。これにより、障害発生時の対応として、障害を回復することができない不適正な対応を実行するのを防止できる。【００１５】
また、障害対応テーブル更新部が更新した障害対応テーブルの更新内容を、相互に通信可能に接続された他の情報処理装置に通知するように構成してもよい。
【発明の効果】
【００１６】
この発明によれば、発生した障害に対して、この障害の対応に要する時間の無駄が抑えられるので、情報処理装置本体の稼働率や処理効率の低下を抑えることができる。
【図面の簡単な説明】
【００１７】
【図１】ネットワークシステムを示す概略図である。
【図２】情報処理端末の階層構造を示す概略図である。
【図３】ルーティングテーブルを示す図である。
【図４】障害対応テーブルを示す図である。
【図５】処理プログラムの実行を要求する側の情報処理端末の動作を示すフローチャートである。
【図６】処理プログラムの実行が要求される側の情報処理端末の動作を示すフローチャートである。
【図７】実行回避テーブルを示す図である。
【図８】障害発生回避処理を示す図である。
【図９】障害発生対応処理を示す図である。
【発明を実施するための形態】
【００１８】
以下、この発明の実施形態について説明する。
【００１９】
図１は、この発明の実施形態である情報処理端末を接続したネットワークシステムを示す概略図である。図１は、３台の情報処理端末１（１Ａ〜１Ｃ）を示している。情報処理端末１Ａ、１Ｂ、１Ｃは、イーサネット（登録商標）によるＬＡＮで接続しており、相互に通信できる。この図１に示す例では、情報処理端末１Ａは、処理プログラムＸ、および処理プログラムＹを搭載している。情報処理端末１Ｂは、処理プログラムＸ、および処理プログラムＺを搭載している。情報処理端末１Ｃは、処理プログラムＹ、および処理プログラムＺを搭載している。
【００２０】
このネットワークシステムは、情報処理端末１が自端末のみならず、ネットワークを介して接続されている他の情報処理端末１に搭載されている処理プログラムであっても、その情報処理端末１との通信により連携して利用できるネットワーク分散システムである。すなわち、情報処理端末１Ａは、情報処理端末１Ｂとの通信により、この情報処理端末１Ｂに搭載されている処理プログラムＸ、および処理プログラムＺを選択的に利用でき、且つ、情報処理端末１Ｃとの通信により、この情報処理端末１Ｃに搭載されている処理プログラムＹ、および処理プログラムＺを選択的に利用できる。また、情報処理端末１Ｂは、情報処理端末１Ａとの通信により、この情報処理端末１Ａに搭載されている処理プログラムＸ、および処理プログラムＹを選択的に利用でき、且つ、情報処理端末１Ｃとの通信により、この情報処理端末１Ｃに搭載されている処理プログラムＹ、および処理プログラムＺを選択的に利用できる。さらに、情報処理端末１Ｃは、情報処理端末１Ａとの通信により、この情報処理端末１Ａに搭載されている処理プログラムＸ、および処理プログラムＹを選択的に利用でき、且つ、情報処理端末１Ｂとの通信により、この情報処理端末１Ｂに搭載されている処理プログラムＸ、および処理プログラムＺを選択的に利用できる。
【００２１】
図２は、情報処理端末の階層構造を示す概略図である。情報処理端末１は、オペレーティングシステム層１０（以下、ＯＳ層１０と言う。）と、通信仮想化層１１と、実行管理層１３と、アプリケーション層１５と、ドライバ層１６と、ハードウェア層１７と、を有している。
【００２２】
ＯＳ層１０は、情報処理端末１のＯＳを実行する階層である。ＯＳは、ハードディスク（不図示）等の記憶媒体に記憶している。ＯＳ層１０は、記憶媒体から読み出したＯＳを実行する。
【００２３】
通信仮想化層１１は、ＯＳ層１０の上位に位置する。実行管理層１３は、この通信仮想化層１１の上位に位置する階層であり、アプリケーション層１５は、この実行管理層１３の上位に位置する階層である。アプリケーション層１５は、アプリケーションプログラムや、このアプリケーションプログラムの実行時に使用するサブルーチンプログラム等を実行する階層である。アプリケーションプログラムや、サブルーチンプログラムは、ＯＳと同様に、ハードディスク（不図示）等の記憶媒体に記憶している。このアプリケーションプログラムや、サブルーチンプログラムが、この発明で言う処理プログラムに相当する。以下、アプリケーション層１５で実行するアプリケーションプログラムや、サブルーチンプログラム等を総称して処理プログラムと言うこともある。
【００２４】
実行管理層１３は、実行管理プログラムを実行する。この実行管理プログラムは、アプリケーション層１５における処理プログラムの起動や終了を管理する。また、実行管理プログラムは、アプリケーション層１５と、通信仮想化層１１との間で、処理プログラムの実行等にかかるメッセージの受け渡しの仲介を行う。また、実行管理プログラムは、このメッセージの内容を判別し、処理プログラムへのメッセージの再送信(リトライ)、特定の要求メッセージの遮断(フィルタリング)、あるいは処理プログラムのプロセスの強制終了と再起動(リスタート)等の障害対応を、後述する障害対応テーブル１４を用いて自律的に行う。
【００２５】
この実行管理プログラム、および障害対応テーブル１４も、ＯＳ、処理プログラムと同様に、ハードディスク（不図示）等の記憶媒体に記憶している。また、この実行管理プログラムが、この発明にかかる障害対応プログラムに相当する。
【００２６】
通信仮想化層１１は、このネットワークシステムの拡張性を考え、アプリケーション層１５に位置する任意の処理プログラムが、他の処理プログラムとの通信手順を知らなくても、この他のプログラムを利用可能にするために設けた階層である。通信仮想化層１１は、プログラム間の通信において、シリアル通信やネットワーク通信などの実装方式の違いを吸収して通信手順を仮想化するための役割を果たす。このため、通信仮想化層１１は、様々な通信方式を透過的に扱えるインターフェイスを上位層であるアプリケーション層１５に提供する通信仮想化プログラムを実行する。この通信仮想化プログラムも、ＯＳ、アプリケーションプログラム、処理プログラム、実行管理プログラムと同様に、ハードディスク（不図示）等の記憶媒体に記憶している。
【００２７】
また、この通信仮想化層１１は、通信仮想化プログラムの実行に際して、ハードディスク（不図示）等の記憶媒体に記憶している、後述するルーティングテーブル１２を用いる。
【００２８】
ドライバ層１６は、ＵＤＰやＴＣＰ等のネットワーク通信を制御する通信ドライバや、ＲＳ−２３２Ｃ等のシリアル通信を制御する通信ドライバを実行する階層である。ドライバ層１６は、図２に示すように、ＯＳ層１０の下位に位置する。
【００２９】
ハードウェア層１７は、ＣＰＵ、メモリ（ＲＡＭ）、通信を実行する通信制御装置、入出力を行う入出力装置等のハードウェアが位置する階層である。ハードウェア層１７は、ドライバ層１６の下位に位置する。
【００３０】
ここで、ルーティングテーブル１２、および障害対応テーブル１４について説明する。図３は、ルーティングテーブルを示す図である。ルーティングテーブル１２は、全ての情報処理端末１で同じではなく、情報処理端末１毎に異なる。図３は、図１に示す情報処理端末１Ａが有するルーティングテーブル１２の例である。ルーティングテーブル１２は、情報処理端末１が利用できる処理プログラム毎に、処理名、通信方式、およびＩＰアドレス／ポート番号を対応づけたテーブルである。
【００３１】
処理名は、処理プログラムが実行する処理の名前である。処理名が同じである処理プログラムは、同じ入力に対する実行処理の結果が同じになるプログラムであるが、同一のプログラムであるとは限らない。すなわち、処理プログラムは、処理名が同じであっても、そのスペックが異なる場合がある。通信方式は、その処理プログラムを利用するときの通信方式である。ＩＰアドレス／ポート番号は、その処理プログラムのネットワーク上の位置を示す。
【００３２】
図３では、Ｎｏ１、および２が情報処理端末１Ａ（自端末）に搭載されている処理プログラムＸ、Ｙであり、Ｎｏ３、および４が情報処理端末１Ｂに搭載されている処理プログラムＸ、Ｚであり、Ｎｏ５、および６が情報処理端末１Ｃに搭載されている処理プログラムＹ、Ｚである。
【００３３】
図４は、障害対応テーブルを示す図である。障害対応テーブル１４は、発生した障害毎に、処理名、要求メッセージのハッシュ値、実行結果ステータス、障害対応履歴、および障害発生場所を対応づけて登録している。要求メッセージのハッシュ値は、その要求メッセージの文字列から生成されるハッシュ値である。要求メッセージの一致不一致にかかる判定が、このハッシュ値を比較することによって高速に行える。
【００３４】
実行結果ステータスは、要求メッセージに応じて実行した処理プログラムの実行結果を示すステータスであり、異常終了した場合（すなわち、障害が発生した場合）のエラーコードである。障害対応履歴は、要求メッセージに応じて実行した処理プログラムで発生した障害に対して実施した回復処理と、その結果とを対にして、実施した順番に並べて登録した情報である。例えば、図４に示すＮｏ１にかかる障害は、回復処理としてリトライを行っても障害が回復せず、再度リトライを行ったときに障害が回復したことを示している（リトライ→ＮＧ、リトライ→ＯＫ）。また、図４に示すＮｏ２にかかる障害は、回復処理としてリトライを２回繰り返しても障害が回復せず、リスタート後のリトライで障害が回復したことを示している（リトライ→ＮＧ、リトライ→ＮＧ、リスタート、リトライ→ＯＫ）。
【００３５】
リトライとは、要求メッセージを伝えた処理プログラムからの処理結果にかかる応答が異常であったり、一定時間経過しても応答が返ってこなかったりしたときに、再度、同じ要求メッセージを処理プログラムに伝えて再実行を起動する処理である。また、リスタートとは、要求メッセージを伝えた処理プログラムからの処理結果にかかる応答が異常であったり、一定時間経過しても応答が返ってこなかったりしたときに、この処理プログラムのプロセスを強制終了し、その後、この処理プログラムのプロセスを再起動する（この処理プログラムを初期化する。）処理である。
【００３６】
また、部分サービス縮退は、その処理プログラムが受け付ける要求メッセージの中で、障害が発生する特定の要求メッセージだけをフィルタリングで除外して、その機能のみを停止する処理である。この部分サービス縮退は、例えば処理プログラムにバグがあり、このバグによって障害が発生する特定の要求メッセージにかかる処理を拒否し、他の要求メッセージについては拒否しない設定にする処理である。
【００３７】
また、サービス縮退は、その処理プログラムに対する全ての要求メッセージを拒否する設定にする処理である。すなわち、この処理プログラムを実行停止にする処理である。
【００３８】
障害発生場所は、障害が発生した処理プログラムが搭載されている端末が、自端末であるか、他の端末（他端末）であるかを示す。
【００３９】
次に、情報処理端末１が、自端末を含む任意の情報処理端末１に搭載されている処理プログラムを利用するときの動作について説明する。図５は、処理プログラムの実行を要求する側（要求側）の情報処理端末の動作を示すフローチャートである。図６は、処理プログラムの実行が要求される側（実行側）の情報処理端末（通信仮想化プログラム）の動作を示すフローチャートである。
【００４０】
なお、ここで説明する各種プログラムの動作は、そのプログラム自体が実際に動作するわけではなく、そのプログラムを実行している情報処理端末１の動作である。
【００４１】
要求側の情報処理端末１は、アプリケーション層１５で実行しているアプリケーションプログラム等において、サブルーチンである処理プログラムの実行要求が発生すると、この実行要求を、実行管理層１３を介して通信仮想化層１１で実行されている通信仮想化プログラムに通知する。
【００４２】
通信仮想化プログラムは、処理プログラムの実行要求の発生にかかる通知があると（ｓ１）、図３に示したルーティングテーブル１２を参照し、今回実行要求された処理プログラムを選択する（ｓ２）。具体的には、通信仮想化プログラムは、ルーティングテーブル１２から今回要求された処理プログラムを全て抽出し、予め定められている条件等に基づいて、抽出した処理プログラムの中から１つを選択する。
【００４３】
例えば、実行が要求された処理プログラムが、図１に示す処理プログラムＸであれば情報処理端末１Ａに搭載されている処理プログラムＸ、および情報処理端末１Ｂに搭載されている処理プログラムＸの２つから、予め定められている条件に基づいて、一方を選択する。また、実行が要求された処理プログラムが、図１に示す処理プログラムＹであれば情報処理端末１Ａに搭載されている処理プログラムＹ、および情報処理端末１Ｃに搭載されている処理プログラムＹの２つから、予め定められている条件に基づいて、一方を選択する。また、実行が要求された処理プログラムが、図１に示す処理プログラムＺであれば情報処理端末１Ｂに搭載されている処理プログラムＺ、および情報処理端末１Ｃに搭載されている処理プログラムＺの２つから、予め定められている条件に基づいて、一方を選択する。
【００４４】
通信仮想化プログラムは、ｓ２で選択した処理プログラムに対する実行要求を送信し（ｓ３）、実行結果が送信されてくるのを待つ（ｓ４）。通信仮想化プログラムは、実行結果を受信すると、この実行結果を、アプリケーション層１５で実行しているアプリケーションプログラム（今回処理プログラムの実行要求を発生させた処理プログラム）に通知し（ｓ５）、本処理を終了する。
【００４５】
図６を参照しながら、実行側の情報処理端末１の動作について説明する。実行側の情報処理端末１は、通信仮想化層１１で実行している通信仮想化プログラムが、要求側からの処理プログラムの実行要求を受信すると（ｓ１１）、実行管理層１３で実行している実行管理プログラムにより、障害発生回避処理を行う（ｓ１２）。
【００４６】
ｓ１２にかかる障害発生回避処理は、すでに縮退している機能にかかる処理要求であるかどうかによって、今回の実行要求に対して、アプリケーション層１５で処理プログラムを実行するかどうかを判定する処理である。この障害発生回避処理の詳細については後述する。
【００４７】
実行側の情報処理端末１は、ｓ１２にかかる障害発生回避処理で、実行管理層１３において、今回の実行要求にかかる処理プログラムをアプリケーション層１５で実行しないと判定すると、その旨を実行結果として要求側に通知する（ｓ１３、ｓ１７）。
【００４８】
一方、実行側の情報処理端末１は、ｓ１２にかかる障害発生回避処理で、実行管理層１３において、今回の実行要求にかかる処理プログラムをアプリケーション層１５で実行すると判定すると、この処理プログラムをアプリケーション層１５で実行する（ｓ１３、ｓ１４）。ｓ１４では、実行管理層１３で実行している実行管理プログラムが、通信仮想化プログラムからの処理プログラムの実行要求（ｓ１１で受信した実行要求）に基づき、該当する処理プログラムをアプリケーション層１５で実行させる。
【００４９】
実行側の情報処理端末１は、ｓ１４で実行した処理プログラムの実行中に障害が発生したかどうかを判定する（ｓ１５）。実行側の情報処理端末１は、処理プログラムの実行時に障害が発生すると、発生した障害に対応する障害発生対応処理を実行する（ｓ１６）。この障害発生対応処理の詳細については後述する。また、実行側の情報処理端末１は、障害が発生することなく実行した処理プログラムが完了したときには、その処理プログラムの処理結果を実行結果として要求側の情報処理端末１に送信し（ｓ１７）、本処理を終了する。
【００５０】
次に、ｓ１２にかかる障害発生回避処理について説明する。情報処理端末１は、自端末に搭載している処理プログラムについて、図７に示す実行回避テーブルを記憶している。この実行回避テーブルは、部分サービス縮退、またはサービス縮退を行っている処理プログラムを登録したテーブルであり、実行管理層１３で実行している実行管理プログラムが利用する。図７は、処理プログラムＸについて、ハッシュ値が347283883、784248383、124888888である実行要求を拒否すること、および、処理プログラムＹについて、全ての実行要求を拒否することを登録した例である。
【００５１】
図８は、障害発生回避処理を示すフローチャートである。実行管理プログラムは、今回実行要求があった処理プログラムが図７に示す実行回避テーブルに登録されているかどうかを判定する（ｓ２１）。実行管理プログラムは、実行回避テーブルに登録されていなければ、今回実行要求があった処理プログラムを実行すると判定する（ｓ２５）。
【００５２】
実行管理プログラムは、実行回避テーブルに登録されている処理プログラムであれば、回避する範囲が一部であるか、全体であるかを判定する（ｓ２２）。全体であれば、今回実行要求があった処理プログラムを実行しないと判定する（ｓ２６）。
【００５３】
実行管理プログラムは、ｓ２２で一部（つまり部分サービス縮退）であると判定すると、今回の実行要求についてハッシュ値を計算する（ｓ２３）。実行管理プログラムは、計算したハッシュ値が実行回避テーブルに登録されているかどうかを判定する（ｓ２４）。実行管理プログラムは、計算したハッシュ値が実行回避テーブルに登録されていれば、今回実行要求があった処理プログラムを実行しないと判定する（ｓ２６）。反対に、実行管理プログラムは、計算したハッシュ値が実行回避テーブルに登録されていなければ、今回実行要求があった処理プログラムを実行すると判定する（ｓ２５）。
【００５４】
情報処理端末１は、この障害発生回避処理を実行することにより、処理プログラムを無駄に実行するのを防止でき、また、障害を無駄に発生させることもない。
【００５５】
次に、ｓ１６にかかる障害発生対応処理について説明する。図９は、障害発生対応処理を示すフローチャートである。実行管理プログラムは、今回の実行要求についてハッシュ値を計算する（ｓ３１）。ｓ３１で計算するハッシュ値が、今回発生した障害の種別と判定する。
【００５６】
実行管理プログラムは、今回の実行要求にかかる処理プログラム、ｓ３１で計算したハッシュ値、および実行結果ステータスをキーにして障害対応テーブル１４を検索する（ｓ３２）。実行管理プログラムは、今回の実行要求にかかる処理プログラム、ｓ３１で計算したハッシュ値、および実行結果ステータスが一致するレコードが障害対応テーブル１４に登録されていると、そのレコードにおける障害対応履歴を参照し、今回発生した障害に対する対応がリトライであればリトライを実行する（ｓ３３、ｓ３４）。また、障害対応テーブル１４に今回発生した障害に該当するレコードが登録されていない場合も、ｓ３４でリトライを実行する。
【００５７】
実行管理プログラムは、ｓ３４でリトライした処理プログラムの実行時に障害が再発生しなければ、得られた実行結果を通信仮想化層１１で実行している通信仮想化プログラムに受け渡す（ｓ３５、ｓ４２）。
【００５８】
また、実行管理プログラムは、ｓ３２で検索した障害対応テーブル１４に登録されている該当するレコードにおいて、今回発生した障害に対する対応がリスタートであれば（ｓ３６）、リスタートを実行し、その直後に処理プログラムをリトライ（処理プログラムの再実行）する（ｓ３７、ｓ３８）。実行管理プログラムは、ｓ３８でリトライした処理プログラムの実行時に障害が再発生しなければ、得られた実行結果を通信仮想化層１１で実行している通信仮想化プログラムに受け渡す（ｓ３９、ｓ４２）。
【００５９】
なお、実行管理プログラムは、ｓ３５で障害が発生したと判定すると、上述したｓ３７以降の処理を実行する。
【００６０】
また、実行管理プログラムは、ｓ３２で検索した障害対応テーブル１４に登録されている該当するレコードにおいて、今回発生した障害に対する対応が部分サービス縮退、またはサービス縮退であれば、該当する処理プログラムについて、部分、または全部、および部分の場合に今回の実行要求にかかるハッシュ値を対応づけて実行回避テーブルに登録する（ｓ４１）。実行管理プログラムは、ｓ３９で障害が発生したと判定すると、部分サービス縮退と判定し（ｓ４０）、ｓ４１にかかる処理を実行する。
【００６１】
さらに、実行管理プログラムは、今回の障害対応にかかるレコードを作成し、これを障害対応テーブル１４に登録するとともに（ｓ４３）、今回登録したレコードを、ネットワークを介して接続されている他の情報処理端末１に通知する（ｓ４４）。
【００６２】
このように、情報処理端末１は、実行管理層１３で実行している実行管理プログラムが、処理プログラムの実行時に障害発生したとき、障害対応テーブル１４を検索し、発生した障害に対する対応を実行する。したがって、発生した障害に対して、無駄な対応を実行するのを抑えることができ、結果的に、発生した障害の対応に要する時間の無駄を抑えることができる。これにより、情報処理端末１本体の稼働率や処理効率の低下が抑えられる。
【００６３】
また、他の情報処理端末１がｓ４４で送信したレコードを受信したときには、自端末に搭載されている処理プログラムであるかどうかを判定し、自端末に搭載されている処理プログラムであれば、障害対応テーブル１４に登録する構成とすればよい。自端末に搭載されていない処理プログラムであれば、障害対応テーブル１４に登録しなくてもよい。
【００６４】
これにより、ネットワークに接続されているいずれかの情報処理端末１で発生した障害にかかる対応を、ネットワークに接続されている全ての情報処理端末１で共有することができる。
【符号の説明】
【００６５】
１…情報処理端末
１０…オペレーティングシステム層（ＯＳ層）
１１…通信仮想化層
１２…ルーティングテーブル
１３…実行管理層
１４…障害対応テーブル
１５…アプリケーション層
１６…ドライバ層
１７…ハードウェア層
【図１】
2012132101.tif 000003
【図２】
2012132101.tif 000004
【図３】
2012132101.tif 000005
【図４】
2012132101.tif 000006
【図５】
2012132101.tif 000007
【図６】
2012132101.tif 000008
【図７】
2012132101.tif 000009
【図８】
2012132101.tif 000010
【図９】
2012132101.tif 000011
【手続補正書】
【提出日】平成25年9月6日(2013.9.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
この情報処理装置は、自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけたレコードを登録した障害対応テーブルを記憶部に記憶する。処理プログラムの実行時に障害が発生すると、判定部が今回発生した障害の種別を判定する。そして、対応方法選択部が、判定部が判定した障害の種別で、記憶部に記憶している障害対応テーブルを検索し、今回発生した障害に対する対応を選択する。障害対応実行部が対応方法選択部で選択した対応を実行する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
これにより、障害対応テーブルは、障害の種別に対応づけられている障害発生時の対応が最適でないものであっても、一度、その障害が発生すると、二度目以降は、常に最適な対応を実行することができる。
また、障害対応方法通知部は、障害対応テーブル更新部による障害対応テーブルの更新内容を、相互に通信可能に接続された他の情報処理装置に通知するので、ネットワークに接続されているいずれかの情報処理端末で発生した障害にかかる対応を、ネットワークに接続されている全ての情報処理端末で共有することができる。
さらに、障害対応テーブル更新部は、他の情報処理装置から障害対応テーブルの更新内容の通知があると、この通知が自装置に搭載されている処理プログラムにかかるものであれば、今回通知された障害対応テーブルの更新内容に基づいて作成したレコードを、記憶部が記憶する障害対応テーブルに登録し、反対に、この通知が自装置に搭載されている処理プログラムにかかるものでなければ、今回通知された障害対応テーブルの更新内容に基づくレコードを、記憶部が記憶する前記障害対応テーブルに登録しない。これにより、記憶部における、障害対応テーブルの記憶に必要な記憶容量が抑えられるだけでなく、障害の発生時における障害対応テーブルの検索時間が無駄に増加するのを抑えられる。
したがって、情報処理装置本体の稼働率や処理効率の低下を十分に抑えることができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、障害対応テーブル更新部は、自装置の障害対応実行部が実行した実行結果に基づくレコードと、他の情報処理装置から通知された前記障害対応テーブルの更新内容に基づくレコードと、を区別して、障害対応テーブルに登録する構成としてもよい。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけたレコードを登録した障害対応テーブルを記憶する記憶部と、
前記処理プログラムの実行時に障害が発生した場合、今回発生した障害の種別を判定する判定部と、
前記判定部が判定した障害の種別で、前記記憶部が記憶する前記障害対応テーブルを検索し、今回発生した障害に対する対応を選択する対応方法選択部と、
前記対応方法選択部が選択した対応を実行する障害対応実行部と、
前記障害対応実行部が実行した実行結果に基づいて前記障害対応テーブルを更新する障害対応テーブル更新部と、
前記障害対応テーブル更新部による前記障害対応テーブルの更新内容を、相互に通信可能に接続された他の情報処理装置に通知する障害対応方法通知部と、を備え、
前記障害対応テーブル更新部は、他の情報処理装置から前記障害対応テーブルの更新内容の通知があると、この通知が自装置に搭載されている処理プログラムにかかるものであれば、今回通知された前記障害対応テーブルの更新内容に基づいて作成したレコードを、前記記憶部が記憶する前記障害対応テーブルに登録し、反対に、この通知が自装置に搭載されている処理プログラムにかかるものでなければ、今回通知された前記障害対応テーブルの更新内容に基づくレコードを、前記記憶部が記憶する前記障害対応テーブルに登録しない、を備えた情報処理装置。
【請求項２】
前記障害対応実行部が実行した実行結果によって、障害が回復したか否かを判定する回復判定部を備え、
前記障害対応テーブル更新部は、前記回復判定部で判定された判定結果を前記障害対応テーブルに記憶する、請求項１に記載の情報処理装置。
【請求項３】
前記対応方法選択部は、前記回復判定部で障害が回復したと判定された対応方法を選択する、請求項２に記載の情報処理装置。
【請求項４】
前記障害対応テーブル更新部は、自装置の前記障害対応実行部が実行した実行結果に基づくレコードと、他の情報処理装置から通知された前記障害対応テーブルの更新内容に基づくレコードと、を区別して、前記障害対応テーブルに登録する、請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけたレコードを登録した障害対応テーブルを記憶部に記憶する情報処理装置のコンピュータを、
前記処理プログラムの実行時に障害が発生した場合、今回発生した障害の種別を判定する判定部、
前記判定部が判定した障害の種別で、前記記憶部が記憶する前記障害対応テーブルを検索し、今回発生した障害に対する対応方法を選択する対応方法選択部、
前記対応方法選択部が選択した対応方法を実行する障害対応実行部、
前記障害対応実行部が実行した実行結果に基づいて前記障害対応テーブルを更新する障害対応テーブル更新部、および、
前記障害対応テーブル更新部による前記障害対応テーブルの更新内容を、相互に通信可能に接続された他の情報処理装置に通知する障害対応方法通知部として機能させるとともに、
前記障害対応テーブル更新部は、他の情報処理装置から前記障害対応テーブルの更新内容の通知があると、この通知が自装置に搭載されている処理プログラムにかかるものであれば、今回通知された前記障害対応テーブルの更新内容に基づいて作成したレコードを、前記記憶部が記憶する前記障害対応テーブルに登録し、反対に、この通知が自装置に搭載されている処理プログラムにかかるものでなければ、今回通知された前記障害対応テーブルの更新内容に基づくレコードを、前記記憶部が記憶する前記障害対応テーブルに登録しない機能とした、障害対応プログラム。
【請求項６】
前記情報処理装置のコンピュータを、
前記障害対応実行部が実行した実行結果によって、障害が回復したか否かを判定する回復判定部として機能させるとともに、
前記障害対応テーブル更新部を前記回復判定部で判定された判定結果を前記障害対応テーブルに記憶させる機能とした、請求項５に記載の障害対応プログラム。
【請求項７】
前記対応方法選択部を、前記回復判定部で障害が回復したと判定された対応方法を選択する機能とした、請求項６に記載の障害対応プログラム。
【請求項８】
前記障害対応テーブル更新部を、自装置の前記障害対応実行部が実行した実行結果に基づくレコードと、他の情報処理装置から通知された前記障害対応テーブルの更新内容に基づくレコードと、を区別して、前記障害対応テーブルに登録する機能とした、請求項５〜７のいずれかに記載の障害対応プログラム。
【手続補正書】
【提出日】平成26年4月21日(2014.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
自装置に搭載されている処理プログラムについて、障害の種別と、障害発生時における対応と、を対応づけたレコードを登録した障害対応テーブルを記憶する記憶部と、
前記処理プログラムの実行時に障害が発生した場合、今回発生した障害の種別を判定する判定部と、
前記判定部が判定した障害の種別で、前記記憶部が記憶する前記障害対応テーブルを検索し、今回発生した障害に対する対応を選択する対応方法選択部と、
前記対応方法選択部が選択した対応を実行する障害対応実行部と、
前記障害対応実行部が実行した実行結果に基づいて前記障害対応テーブルを更新する障害対応テーブル更新部と、
前記障害対応テーブル更新部による前記障害対応テーブルの更新内容を、相互に通信可能に接続された他の情報処理装置に通知する障害対応方法通知部と、を備え、
前記障害対応テーブル更新部は、他の情報処理装置から前記障害対応テーブルの更新内容の通知があると、この通知が自装置に搭載されている処理プログラムにかかるものであれば、今回通知された前記障害対応テーブルの更新内容に基づいて作成したレコードを、前記記憶部が記憶する前記障害対応テーブルに登録し、反対に、この通知が自装置に搭載されている処理プログラムにかかるものでなければ、今回通知された前記障害対応テーブルの更新内容に基づくレコードを、前記記憶部が記憶する前記障害対応テーブルに登録しない、情報処理装置。
【国際調査報告】
2012132101.tif 000012
2012132101.tif 000013
2012132101.tif 000014
2012132101.tif 000015