説明

コンピュータシステム及びリカバリ方法

【課題】コンピュータ上で動作しているアプリケーションに障害が発生した場合、障害の原因を判断し、予め登録したリカバリ情報を取得して、障害を回復させること。
【解決手段】リカバリシステム108は、障害が発生したユーザシステム102から起動され、ユーザシステム102から送られてきた障害発生時の入力データ及びエラーコードを受取り、リカバリ対応DB検索手段111が、リカバリ対応DB114を検索し、対応要否が対応要を示していた場合、障害発生時の障害内容に対応する補完データを取得し、リカバリ手段112が、ユーザシステムから送られてきた障害発生時の入力データの修復を行い、ユーザシステム112に、修復したデータを送信し、障害発生の以後の後続処理を続けさせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステム及びリカバリ方法に係り、特に、オープン系コンピュータシステムで障害が発生した場合に、その原因を特定して障害部位を自動的に回復させることを可能にしたコンピュータシステム及びリカバリ方法に関する。
【背景技術】
【0002】
コンピュータ装置に障害が発生した場合に、その原因を特定して障害部位を回復させるための従来技術として、例えば、特許文献1等に記載された技術が知られている。この従来技術は、コンピュータ装置に障害が発生した場合、赤外線通信が可能な保守者が持つ携帯情報端末が、保守対象である障害が発生したコンピュータ装置に動作履歴を示すログ情報を含む装置情報を送信するように要求し、要求を受けたコンピュータ装置が、要求された装置情報を携帯情報端末に送信し、これを受信した携帯情報端末が、通信可能なサーバ装置に対し、コンピュータ装置から供給された装置情報を通知し、供給されたログ情報に関連付けられた障害内容を示す保守情報を予め保持しているサーバ装置が、携帯情報端末から装置情報を含むログ情報を通知された際に、通知された装置情報に対応する保守情報の選定を行い、この保守情報を携帯情報端末へ送信するというものである。これにより、保守者は、コンピュータ装置の障害原因の究明と復旧とを速やかに行うことが可能となる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−139572号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に、コンピュータ装置上で動作しているアプリケーションに障害が発生した場合、プログラムの実行を中断し、第1ステップとして障害原因の特定を行う。そして、障害原因の特定ができた場合、第2ステップとして入力データの修復を行いプログラムの再実行を行う。原因の特定は、障害検知箇所、入力データを調査するため、多くの人手と時間を必要とし、障害回復の遅延が発生する。また、入力データの修復を行いプログラムの再実行を行うには、人為的判断を要するため、回復処理に誤りが生じ、二次災害に繋がるリスクがある。
【0005】
前述した従来技術は、原因の特定、入力データの修復、プログラムの再実行を人手により行わなければならず、多くの人手と時間を必要とし、回復処理に誤りが生じ、二次災害に繋がるリスクがあるという問題を解決することができないものである。
【0006】
本発明の目的は、前述した従来技術が有する問題を解決するため、コンピュータ上で動作しているアプリケーションに障害が発生した場合、障害の原因を機械的に判断し、予め登録したリカバリ情報を取得して、入力データを修復しプログラムの再実行を行うまでの一連の処理を自動的に行うことを可能にしたコンピュータシステム及びリカバリ方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明によれば前記目的は、ユーザシステムと、該ユーザシステムに障害が発生した場合に、障害の原因を特定して障害を回復させるリカバリシステムとにより構成されるコンピュータシステムにおいて、前記リカバリシステムは、前記ユーザシステムから受け取ったエラーコード、リカバリシステムでの対応の要否を示す対応要否、補完するデータを示す補完データを格納しているリカバリ対応DBと、該リカバリ対応DBを検索するリカバリ対応DB検索手段と、リカバリ手段とを備え、前記ユーザシステムに障害が発生したとき、前記ユーザシステムから起動され、前記ユーザシステムから送られてきた障害発生時の入力データ及びエラーコードを受取り、前記リカバリ対応DB検索手段が、前記リカバリ対応DBを検索し、対応要否が対応要を示していた場合、障害発生時の障害内容に対応する補完データを取得し、前記リカバリ手段が、前記ユーザシステムから送られてきた障害発生時の入力データの修復を行い、前記ユーザシステムに、修復したデータを送信し、障害発生の以後の後続処理を続けさせることにより達成される。
【発明の効果】
【0008】
本発明によれば、人手と時間を必要とすることなく、障害を発生させたプログラムのリカバリ対応が可能となり、また、人為的判断ミスが無くなるため、回復作業誤りによる二次災害のリスクを抑止することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の一実施形態によるコンピュータシステムの構成例を示すブロック図である。
【図2】コード変換機能の処理動作を説明するフローチャートである。
【図3】ジャーナル変換機能の処理動作を説明するフローチャートである。
【図4】リカバリ対応DB検索機能の処理動作を説明するフローチャートである。
【図5】リカバリ機能の処理動作を説明するフローチャートである。
【図6】レイアウト定義DBの構成を説明する図である。
【図7】リカバリ対応DBの構成を説明する図である。
【図8】SAMファイル内に保持されているユーザジャーナル(変換前)の構成を説明する図である。
【図9】SAMファイル内に保持されているユーザジャーナル(変換後)の構成を説明する図である。
【図10】エラーコード、文字コードのパラメータの構成を説明する図である。
【発明を実施するための形態】
【0010】
以下、本発明によるコンピュータシステムの実施形態を図面により詳細に説明する。
【0011】
図1は本発明の一実施形態によるコンピュータシステムの構成例を示すブロック図である。なお、以下の説明において、同一名を持つ構成要素であっても、図毎にそれらの要素に付与した符号が異なっているが、同一名であれば同一の構成要素である。
【0012】
本発明の一実施形態によるコンピュータシステムは、サーバマシン101上で稼動するように、サーバマシン101内にユーザシステム102及び自動リカバリシステム108が構築されて構成されている。サーバマシン101は、図示していないが、主メモリ、HDD等による記憶装置、マシン全体の制御を行うCPU、ユーザシステム102を使用するユーザが利用するためにユーザシステム102に接続されるキーボード、マウス、表示装置等の入出力装置に対するインターフェース等を備えて構成されている。
【0013】
そして、ユーザシステム102及び自動リカバリシステム108は、サーバマシン101の記憶装置内に格納されたプログラムを主メモリにロードしてCPUが実行することにより構築される。また、以下に説明する本発明の実施形態での処理も、前述と同様に、サーバマシン101の記憶装置内に格納されたプログラムが主メモリにロードされてCPUにより実行される。
【0014】
前述において、ユーザシステム102は、バッチ、または、オンラインプログラム等の実行中に発生した障害を障害検知手段103が検知すると、自動リカバリシステム呼出し手段104が、自動リカバリシステム108の呼出しを行う。
【0015】
自動リカバリシステム呼出し手段104は、自動リカバリシステム108の呼出しを行う際に、障害発生の起因となった入力データをユーザジャーナルとして取得し、SAMファイル105(その構成については図8を参照して後述する)へ出力する。ユーザジャーナルは、ミドルウェアが提供するコマンドを発行することことにより取得することが可能である。例えば、日立オープンミドルウェアの1つであるOpenTP1の場合、ジャーナルスワップ、ジャーナルエディット等のコマンドを発行することによりユーザジャーナルを取得することができる。
【0016】
ユーザシステム102は、SAMファイル105内のユーザジャーナル、発生した障害の内容に対応したエラーコード106、及び、ユーザシステムで取り扱う文字コード107をパラメータとして設定した呼出し要求を行って自動リカバリシステム108の呼出しを行う。
【0017】
自動リカバリシステム108は、コード変換機能109、ジャーナル変換機能110、リカバリ対応DB検索機能111、リカバリ機能112の4つの処理部により構成され、また、レイアウト定義DB113、リカバリ対応DB114を備えている。レイアウト定義DB113、リカバリ対応DB114は、予め必要なデータが登録されており、ジャーナル変換機能110、リカバリ対応DB検索機能111により参照される。
【0018】
自動リカバリシステム108は、コード変換機能109、ジャーナル変換機能110、リカバリ対応DB検索機能111、リカバリ機能112の4つの処理部が順に処理を実行して、障害の起因となった情報を修復する。リカバリされた情報は、ユーザシステム102に戻され、これにより、ユーザシステム102は、人手を介することなく自動的に障害の発生後の後続処理115を継続して実行することが可能となる。
【0019】
図2はコード変換機能109の処理動作を説明するフローチャートであり、次に、これについて説明する。コード変換機能109は、ユーザジャーナル入力処理201、文字コード変換処理202、変換後データ出力処理203の3つの処理部から構成される。以下では、これらの3つの処理部での処理動作としてコード変換機能109の処理動作を説明する。
【0020】
(1)ユーザジャーナル入力処理201は、SAMファイル204内のユーザジャーナル読込みを行い、変換前のユーザジャーナルのデータをプログラム内部のバッファメモリ上に展開する。
【0021】
(2)次に、文字コード変換処理202は、入力ファイルの様々な種類の文字コードに対して、一律にSJISコードへ変換処理を行う。変換前の文字コードについては、文字コード205のパラメータ(その構成については図10を参照して後述する)に登録されているためそれに従う。
【0022】
(3)次に、変換後データ出力処理203は、文字コード変換処理202がSJISコードへ変換したユーザジャーナルデータをSAMファイル206出力する。
【0023】
図3はジャーナル変換機能110の処理動作を説明するフローチャートであり、次に、これについて説明する。ジャーナル変換機能110は、レイアウト定義の取得処理301、テキスト形式への変換処理302、変換後データ取得処理303の3つの処理部から構成される。以下では、これらの3つの処理部での処理動作としてジャーナル変換機能110の処理動作を説明する。
【0024】
(1)レイアウト定義の取得処理301は、レイアウト定義DB(その構成については図6を参照して後述する)304からユーザジャーナルのレイアウト定義の情報を取得する。レイアウト定義DB304は、ユーザプログラムの実行環境毎に登録することが可能とされており、例えば、実行環境Aで取得するユーザジャーナルのレイアウト定義を登録し、または、実行環境Bにて取得するユーザジャーナルのレイアウト定義を登録することが可能である。
【0025】
(2)次に、テキスト形式への変換処理302は、SAMファイル305内の変換前のユーザジャーナルデータを入力として、レイアウト定義DB304内に登録されているレイアウト定義の情報の内、有効フラグがオンになっている方のレイアウト定義を参照し、それに従いテキスト形式への変換処理を実行する。SAMファイル305内のデータレコードは、図3(a)にユーザジャーナル307として示しているように、左側部が16進数の形式、右側部が楕円で囲んで示しているようにテキスト形式で表示されており、4バイト区切りで空白部が存在していたり、16バイトで改行が行われていたりするなど特異な形式で表示されている。そして、テキスト形式への変換処理302は、図3(b)に前述の右側部のテキスト形式の変換前のデータを308として示すように取出し、定型の区切り空白部分と改行を除外して、入力情報をテキスト文字列形式へのと変換処理を行い、図3(c)に309として示しているように、入力されたままの元データの復元を行う。
【0026】
(3)次に、変換後データ出力処理303は、テキスト形式への変換処理302により変換された変換後のユーザジャーナルデータ309をSAMファイル(その構成については図9を参照して後述する)306へ出力する。
【0027】
図4はリカバリ対応DB検索機能111の処理動作を説明するフローチャートであり、次に、これについて説明する。リカバリ対応DB検索機能111は、リカバリ対応DB検索処理401、対応内容と対応要否の取得処理402の2つの処理部から構成される。以下では、これらの2つの処理部での処理動作としてリカバリ対応DB検索機能111の処理動作を説明する。
【0028】
(1)リカバリ対応DB検索処理401は、エラーコード403のパラメータとして受け取ったエラーコード(その構成については図10を参照して後述する)を使用し、リカバリ対応DB(その構成については図7を参照して後述する)404を検索する。リカバリ対応DB404には、予めエラーコードに対応したリカバリ方法が登録されている。
【0029】
(2)対応内容と対応要否の取得処理402の処理は、リカバリ対応DB検索処理401が検索処理で取得したリカバリ処理の対応要否と対応内容の情報とをプログラム内部のバッファメモリ上に展開する。
【0030】
図5はリカバリ機能112の処理動作を説明するフローチャートであり、次に、これについて説明する。リカバリ機能112は、対応要否の判断処理501、エラーのリカバリ処理502の2つの処理部から構成される。以下では、これらの2つの処理部での処理動作としてリカバリ機能112の処理動作を説明する。
【0031】
(1)対応要否の判断処理501は、リカバリ対応DB検索処理401が検索処理で取得したリカバリ処理の対応要否と対応内容の情報とからリカバリ処理の対応の要否を判定し、リカバリ不要の場合、何の処理を行わずにここでの処理を終了する。
【0032】
(2)リカバリ処理の対応の要否判断処理501の判定で、リカバリ要と判定した場合、リカバリ処理502は、元のデータへ変換された後のユーザジャーナルをSAMファイル503から入力して、リカバリ対応DB404から取得した対応内容に従ってデータの補正を行う。リカバリ対応DB404には、補完データと補完ポイントとのバイト位置情報が予め登録されており、補完ポイントは、ユーザジャーナルデータの何バイト目から何バイト分のデータを補正するかを決定するために利用され、補完データは、そのポイントに対してデータの修復のためのデータである。
【0033】
次に、対応内容の例について説明する。SAMファイル503のデータには、図5(a)に修正前のデータ505として示すように、5バイト目から4バイト(各バイトを△で示す)分が空白となっており、ユーザプログラムは、この空白となっている部分の必須項目が未入力と判断してエラーを検知した。
【0034】
リカバリ対応DB404には、予め必須項目が未入力の場合を想定し、図5(b)にリカバリ対応DBの対応内容506として示すように、障害修復の対応内容として、未入力の場合、9999というデータで補完するように登録済である。前述した図5に示すフローでの処理の場合、修正前データ505の5バイト目から4バイトに9999が補完され、修正後のユーザジャーナルのデータは、図5(c)に507として示すようなものに修正されることになる。
【0035】
前述で説明したように、リカバリ処理502で修正されたユーザジャーナルデータは、SAMファイル504へ出力され、この修正後データは、引き続きユーザシステム102側で入力情報として取り込まれて後続処理を実行することができる。これにより、ユーザシステム102は、障害発生時に処理を中断することなく自動的に処理を継続することが可能となる。
【0036】
図6はレイアウト定義DBの構成を説明する図である。レイアウト定義DBには、図6(a)に示すように、ユーザプログラムの実行環境毎に付与されるパターンIDと、テキスト形式の取得開始位置を示すテキスト開始位置と、連続で記載されている文字数を示す連続文字数と、テキスト形式の改行までの文字数を示す1行当りの文字数と、現在の実行環境に対してフラグがオンとされる有効フラグとが1組のデータとして、ユーザプログラムの実行環境毎に複数のデータの組がそれぞれ1つのレコードとして格納される。レイアウト定義DBは、図6(b)、図6(c)に実行環境A、Bの場合のデータ例として示しているようなデータを含むレコードがレイアウト定義として格納される場合、図6(d)に示しているようなレコードとして保持することになる。
【0037】
図7はリカバリ対応DBの構成を説明する図である。リカバリ対応DBには、図7(a)に示すように、ユーザプログラムから受け取ったエラーコードを示すエラーコードと、自動リカバリシステムでの対応の要否を示す対応要否と、補完するデータを示す補完データと、補完を行う開始位置を示す補完ポイントとが1組データとして、エラーコード毎に複数の組のそれぞれが1つのレコードとして格納される。そして、リカバリ対応DBには、図7(b)にデータ例として、エラーコードXXXの必須項目が未入力、エラーコードYYYの数字項目不正、エラーコードZZZの区分値不正の場合のレコードの例として示しているようなレコードが格納されており、これらのレコードの場合、図7(c)に示す修正前のデータが、図7(d)に修正後のデータとして示すように修正されることになる。
【0038】
図8はSAMファイル内に保持されているユーザジャーナル(変換前)の構成を説明する図である。SAMファイルには、図8(a)に示すように、障害発生の起因となった入力データであるジャーナルファイルのデータのレコードであるジャーナルデータが1つのレコードとして、複数のレコードが格納されている。入力データが、図8(b)にメインフレームからのユーザジャーナルの情報として示しているようなデータの場合、SAMファイル内には、図8(c)に変換前のジャーナルデータとして示すようなデータとして格納される。
【0039】
図9はSAMファイル内に保持されているユーザジャーナル(変換後)の構成を説明する図である。SAMファイルには、図9(a)に示すように、障害発生の起因となった入力データであるジャーナルファイルのデータのレコードであるジャーナルデータが1つのレコードとして、複数のレコードが格納されている。入力データが、図8に示した変換前の場合と同様に、図9(b)にメインフレームからのユーザジャーナルの情報として示しているようなデータの場合、SAMファイル内には、図9(c)に変換後のジャーナルデータとして示すようなデータが格納される。
【0040】
図10はエラーコード、文字コードのパラメータの構成を説明する図である。エラーコードは、図10(a)に示しているようなエラー内容を特定することができるコードであり、エラーコードのデータ例としては、必須項目が未入力の場合のエラーコードXXX、数字項目不正である場合のエラーコードYYY、区分値不正である場合のエラーコードZZZ等のエラーコードがある。また、文字コードは、図10(b)に示しているような自動リカバリーシステム108で取り扱う文字コードであり、文字コードの例としては、データ例に0として示すSJIS、データ例に1として示すEBCDIC、データ例に2として示すUNICODE、データ例に3として示すEIG等がある。
【0041】
前述した本発明の実施形態によれば、オープン系のコンピュータシステムにおいて、プログラム処理中に発生した障害に対する修復データを予め登録しておくこととし、プログラム処理中に障害が発生した場合、リカバリシステムが登録されている修復データを利用して機械的にデータ修復まで行うことができるため、人手と時間を必要とすることなく、障害を発生させたプログラムのリカバリ対応が可能となり、また、人為的判断ミスが無くなるため、回復作業誤りによる二次災害のリスクを抑止することができる。
【符号の説明】
【0042】
101 サーバマシン
102 ユーザシステム
103 障害検知手段
104 自動リカバリシステム呼出し手段104
105 SAMファイル
108 自動リカバリシステム
109 コード変換機能
110 ジャーナル変換機能
111 リカバリ対応DB検索機能
112 リカバリ機能
113 レイアウト定義DB
114 リカバリ対応DB

【特許請求の範囲】
【請求項1】
ユーザシステムと、該ユーザシステムに障害が発生した場合に、障害の原因を特定して障害を回復させるリカバリシステムとにより構成されるコンピュータシステムにおいて、
前記リカバリシステムは、前記ユーザシステムから受け取ったエラーコード、リカバリシステムでの対応の要否を示す対応要否、補完するデータを示す補完データを格納しているリカバリ対応DBと、該リカバリ対応DBを検索するリカバリ対応DB検索手段と、リカバリ手段とを備え、
前記ユーザシステムに障害が発生したとき、前記ユーザシステムから起動され、前記ユーザシステムから送られてきた障害発生時の入力データ及びエラーコードを受取り、前記リカバリ対応DB検索手段が、前記リカバリ対応DBを検索し、対応要否が対応要を示していた場合、障害発生時の障害内容に対応する補完データを取得し、前記リカバリ手段が、前記ユーザシステムから送られてきた障害発生時の入力データの修復を行い、前記ユーザシステムに、修復したデータを送信し、障害発生の以後の後続処理を続けさせることを特徴とするコンピュータシステム。
【請求項2】
前記リカバリシステムは、前記ユーザシステムから送られてきた障害発生時の入力データに対するコード変換手段を備え、該コード変換手段は、前記ユーザシステムで使用している文字コードを自リカバリシステムで使用する文字コードに変換することを特徴とする請求項1記載のコンピュータシステム。
【請求項3】
前記ユーザシステムから送られてきた障害発生時の入力データは、ユーザジャーナルであり、
前記リカバリシステムは、ジャーナル変換手段をさらに備え、該ジャーナル変換手段が、前記ユーザジャーナルをテキスト形式に変換することを特徴とする請求項2記載のコンピュータシステム。
【請求項4】
ユーザシステムと、該ユーザシステムに障害が発生した場合に、障害の原因を特定して障害を回復させるリカバリシステムとにより構成されるコンピュータシステムにおける障害に対するリカバリ方法において、
前記リカバリシステムは、前記ユーザシステムから受け取ったエラーコード、リカバリシステムでの対応の要否を示す対応要否、補完するデータを示す補完データを格納しているリカバリ対応DBと、該リカバリ対応DBを検索するリカバリ対応DB検索手段と、リカバリ手段とを備え、
前記ユーザシステムに障害が発生したとき、前記ユーザシステムから起動され、前記ユーザシステムから送られてきた障害発生時の入力データ及びエラーコードを受取り、前記リカバリ対応DB検索手段が、前記リカバリ対応DBを検索し、対応要否が対応要を示していた場合、障害発生時の障害内容に対応する補完データを取得し、前記リカバリ手段が、前記ユーザシステムから送られてきた障害発生時の入力データの修復を行い、前記ユーザシステムに、修復したデータを送信し、障害発生の以後の後続処理を続けさせることを特徴とするリカバリ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−101548(P2013−101548A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−245620(P2011−245620)
【出願日】平成23年11月9日(2011.11.9)
【出願人】(000233491)株式会社日立システムズ (394)
【Fターム(参考)】