(57)【要約】【課題】エラー処理に柔軟性をもつバッチ処理のエラー検査復旧システムを提供する。【解決手段】バッチ処理において、複数のバッチジョブを実行する（ステップＳ１１〜Ｓ１３）。その際に、検査ポイントＭ１、Ｍ２を任意に設定し、該検査ポイントごとに定義されたエラー検査処理を実行する。また、復旧ポイントＮ１、Ｎ２を任意に設定し、バッチ処理にエラーが発生した場合、該復旧ポイントごとに定義されたエラー復旧処理を実行する。検査ポイント及び復旧ポイントでのエラー検査処理とエラーの復旧処理とは任意に設定でき、柔軟なエラー処理を実行することができる。【選択図】図７
2007272580.tif 000002
【特許請求の範囲】
【請求項１】
所定のバッチ処理を実行するバッチ処理手段と、
前記バッチ処理内に定義された検査ポイントで、前記バッチ処理手段が実行する前記バッチ処理が正常に動作しているか検査する検査手段と、
前記バッチ処理内に定義された復旧ポイントで、前記検査手段が判別した検査結果に応じて、前記バッチ処理手段の動作を正常に復旧する復旧手段と、
から構成されることを特徴とするバッチ処理エラー検査復旧システム。
【請求項２】
前記検査手段が実行する検査動作と前記復旧手段が実行する復旧動作とを記憶する記憶手段を更に備え、
前記検査手段は、前記検査ポイントで前記記憶手段に記憶される検査動作を実行し、
前記復旧手段は、前記復旧ポイントで前記記憶手段に記憶される復旧動作を実行する
ことを特徴とする請求項１に記載のバッチ処理エラー検査復旧システム。
【請求項３】
前記記憶手段は、
前記検査ポイントと検査動作の識別情報とを対応付けて記憶する検査ポイントテーブルと、
前記検査動作の識別情報と検査動作とを対応付けて記憶する検査動作テーブルと、
を備え、
前記検査手段は、前記検査ポイントで、前記検査ポイントテーブルを参照して検査動作の識別情報を取得し、前記検査動作テーブルを参照して取得した検査動作の識別情報に対応する検査動作を実行する
ことを特徴とする請求項２に記載のバッチ処理エラー検査復旧システム。
【請求項４】
前記記憶手段は、
前記復旧ポイントと復旧条件の識別情報とを対応付けて記憶する復旧ポイントテーブルと、
前記復旧条件の識別情報と復旧条件とを対応付けて記憶する復旧条件テーブルと、
前記復旧条件に合致した場合に実行する復旧動作を記憶する復旧動作テーブルと、
を記憶し、
前記復旧手段は、前記復旧ポイントで、前記復旧ポイントテーブルを参照して復旧ルールの識別情報を取得し、前記復旧条件テーブルを参照して取得した復旧条件の識別情報に対応する復旧条件を取得し、該復旧条件に合致した場合に前記復旧動作テーブルに記憶される復旧動作を実行する
ことを特徴とする請求項１、２又は３に記載のバッチ処理エラー検査復旧システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッチ処理のエラー検査復旧システムに関する。
【背景技術】
【０００２】
従来のバッチ処理では、エラー処理は、バッチジョブとしてバッチ処理の中に記述していた。複数のエラーに対応しようとすると、バッチ処理中のエラー処理が増えてしまい、バッチ処理全体として記述が複雑になり、保守が困難になった。
【０００３】
コンピュータシステムにおいては、コンピュータシステムの外部に障害監視装置を設けて、コンピュータシステムに障害が発生した場合、障害監視装置が自ら保持する復旧動作情報の条件に従って障害を復旧する技術が提案されている（例えば、特許文献１）。
【０００４】
しかし、バッチ処理については、特許文献１のように、エラー処理を行うモジュールを分離させ、外部に記憶される復旧条件に従ってエラー処理する技術は存在せず、バッチ処理中にバッチジョブとしてエラー処理を記述しており、エラー処理の条件の柔軟性がなく、再利用性もなかった。
【０００５】
【特許文献１】特開２００３−１１４８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記問題点に鑑みてなされたもので、エラー処理に柔軟性をもつバッチ処理のエラー検査復旧システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のバッチ処理エラー検査復旧システムは、
所定のバッチ処理を実行するバッチ処理手段と、
前記バッチ処理内に定義された検査ポイントで、前記バッチ処理手段が実行する前記バッチ処理が正常に動作しているか検査する検査手段と、
前記バッチ処理内に定義された復旧ポイントで、前記検査手段が判別した検査結果に応じて、前記バッチ処理手段の動作を正常に復旧する復旧手段と、
から構成されることを特徴とする。
【０００８】
例えば、前記検査手段が実行する検査動作と前記復旧手段が実行する復旧動作とを記憶する記憶手段を更に備え、
前記検査手段は、前記検査ポイントで前記記憶手段に記憶される検査動作を実行し、
前記復旧手段は、前記復旧ポイントで前記記憶手段に記憶される復旧動作を実行してもよい。
【０００９】
例えば、前記記憶手段は、
前記検査ポイントと検査動作の識別情報とを対応付けて記憶する検査ポイントテーブルと、
前記検査動作の識別情報と検査動作とを対応付けて記憶する検査動作テーブルと、
を備え、
前記検査手段は、前記検査ポイントで、前記検査ポイントテーブルを参照して検査動作の識別情報を取得し、前記検査動作テーブルを参照して取得した検査動作の識別情報に対応する検査動作を実行してもよい。
【００１０】
例えば、前記記憶手段は、
前記復旧ポイントと復旧条件の識別情報とを対応付けて記憶する復旧ポイントテーブルと、
前記復旧条件の識別情報と復旧条件とを対応付けて記憶する復旧条件テーブルと、
前記復旧条件に合致した場合に実行する復旧動作を記憶する復旧動作テーブルと、
を記憶し、
前記復旧手段は、前記復旧ポイントで、前記復旧ポイントテーブルを参照して復旧ルールの識別情報を取得し、前記復旧条件テーブルを参照して取得した復旧条件の識別情報に対応する復旧条件を取得し、該復旧条件に合致した場合に前記復旧動作テーブルに記憶される復旧動作を実行してもよい。
【発明の効果】
【００１１】
本発明によれば、エラー処理を柔軟に記述でき再利用できるバッチ処理のエラー検査復旧システムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
本発明の実施の形態に係るバッチ処理のエラー検査復旧システムを備えるコンピュータ１００は、図１に示すように、処理部１０と、記憶部２０と、プログラムメモリ３０と、バッチ処理結果格納部４０と、で構成される。コンピュータ１００は、バッチ処理に対するエラー処理を、エラー検査動作とエラー復旧動作とに分けて実行する。
【００１３】
処理部１０は、プログラムメモリ３０に記憶されたプログラムを実行することで、コンピュータ１００の動作を制御する。処理部１０は、バッチ処理手段１１と、検査手段１２と、復旧手段１３と、で構成される。
【００１４】
バッチ処理手段１１は、プログラムメモリ３０に記憶されたバッチ処理プログラム３１を実行することで、コンピュータ１００上でバッチ処理を動作させる。バッチ処理プログラム３１中には、バッチ処理の動作のエラーを検査する検査ポイントを任意に定義することができる。また、バッチ処理の動作にエラーがあった場合に、エラーを復旧する処理をするための復旧ポイントも任意に定義することができる。
【００１５】
検査手段１２は、プログラムメモリ３０に記憶されたエラー検査プログラム３２を実行することで、バッチ処理の動作のエラーを検査する。
【００１６】
復旧手段１３は、プログラムメモリ３０に記憶されたエラー復旧プログラム３３を実行することで、バッチ処理の動作にエラーがあった場合、復旧するための動作を実行する。
【００１７】
図６の状態遷移図に示すように、バッチ処理プログラム３１中に定義された検査ポイントでバッチ処理手段１１から検査手段１２へ制御が移る。そして、検査動作が終了すると、バッチ処理手段１１に制御を戻す。
また、バッチ処理プログラム３１中に定義された復旧ポイントでバッチ処理手段１１から復旧手段１３へ制御が移る。そして、復旧動作が終了すると、バッチ処理に制御を戻す。
【００１８】
図１に示す、記憶部２０は、検査ポイントテーブル２１と、検査動作テーブル２２と、検査結果テーブル２３と、復旧ポイントテーブル２４と、復旧ルールテーブル２５と、復旧動作テーブル２６と、復旧動作履歴テーブル２７と、を記憶する。
【００１９】
検査ポイントテーブル２１は、図４（ａ）に示すような、バッチ処理プログラム３１中に定義された各検査ポイントＩ１で実行する１又は複数の検査動作名Ｉ２を対応付けて記憶するテーブルである。
【００２０】
検査動作テーブル２２は、図４（ｂ）に示すような、検査動作名Ｉ２に対応した、具体的な検査動作Ｉ３を記載したテーブルである。
【００２１】
検査結果テーブル２３は、図４（ｃ）に示すような、検査動作名Ｉ２の検査動作Ｉ３を実行したときの、検査結果Ｉ４を記憶するテーブルである。
【００２２】
復旧ポイントテーブル２４は、図５（ａ）に示すような、バッチ処理プログラム３１中に定義された各復旧ポイントＩ５で実行する復旧動作の、１又は複数の復旧ルール名Ｉ６を対応付けて記憶するテーブルである。
【００２３】
復旧ルールテーブル２５は、図５（ｂ）に示すような、復旧ルール名Ｉ６に対応した具体的な復旧ルールＩ７を記載したテーブルである。
【００２４】
復旧動作テーブル２６は、図５（ｃ）に示すような、復旧動作名Ｉ８に対応した、具体的な復旧動作Ｉ９を記載したテーブルである。
【００２５】
復旧動作履歴テーブル２７は、図５（ｄ）に示すような、復旧動作名Ｉ８の復旧動作Ｉ９の実行結果Ｉ１０を記憶するテーブルであって、復旧動作が実行されるたびに更新される。
【００２６】
記憶部２０の検査ポイントテーブル２１と、検査動作テーブル２２と、復旧ポイントテーブル２４と、復旧ルールテーブル２５と、復旧動作テーブル２６と、は、ユーザの所定の入力によって任意に書き換えることができる。これらのテーブルを書き換えることで、エラー検査動作及びエラー復旧動作からなるエラー処理の条件を、柔軟に設定できる。
【００２７】
プログラムメモリ３０は、処理部１０が実行するバッチ処理プログラム３１と、エラー検査プログラム３２と、エラー復旧プログラム３３と、を記憶する。
【００２８】
バッチ処理結果格納部４０は、バッチ処理手段１１が実行したバッチ処理の結果を格納する。
【００２９】
次に、上記構成のコンピュータ１００の検査手段１２のエラー検査処理の動作を、図面を参照しながら説明する。
【００３０】
検査手段１２は、バッチ処理手段１１がバッチ処理の実行中に検査ポイントＩ１を検出すると、図２に示すエラー検査処理を実行する。
【００３１】
先ず、検査手段１２は、検査ポイントテーブル２１を参照する（ステップＳ１０１）。
【００３２】
次に、検査ポイントテーブル２１に検査ポイントＩ１に対応する検査動作名Ｉ２が存在するか否か判別する（ステップＳ１０２）。
【００３３】
検査手段１２は、検査ポイントテーブル２１に対応する検査動作名Ｉ２が存在した場合（ステップＳ１０２；Ｙｅｓ）、検出動作テーブル２２を参照し、検査動作名Ｉ２に対応する検査動作Ｉ３を読み込む（ステップＳ１０３）。
【００３４】
続いて、読み込んだ検査動作Ｉ３を実行し、検査結果を検査結果テーブル２３に格納する（ステップＳ１０４）。
【００３５】
次に、該当する検査動作名Ｉ３がもう存在しないか否か判別する（ステップＳ１０５）。
【００３６】
該当する検査動作名Ｉ２が存在した場合（ステップＳ１０５；Ｎｏ）、続いて検査動作Ｉ３を実行するため、ステップＳ１０３に処理を戻す。
【００３７】
ステップＳ１０２又はステップＳ１０５で該当する検査動作名Ｉ２が存在しない場合（ステップＳ１０２；Ｎｏ、ステップＳ１０５；Ｙｅｓ）、エラー検査処理を終了する。
そして、検査手段１２は、バッチ処理手段１１に制御を戻す。
【００３８】
次に、上記構成のコンピュータ１００の処理部１０の復旧手段１３のエラー復旧処理の動作を、図面を参照しながら説明する。
【００３９】
復旧手段１３は、バッチ処理手段１１がバッチ処理の実行中に復旧ポイントＩ５を検出すると、図３に示すエラー復旧処理を実行する。
【００４０】
先ず、復旧手段１３は、復旧ポイントテーブル２４を参照する（ステップＳ２０１）。
【００４１】
次に、復旧手段１３は、復旧ポイントテーブル２４に復旧ポイントＩ５に対応する復旧ルール名Ｉ６が存在するか否か判別する（ステップＳ２０２）。
【００４２】
復旧ポイントテーブル２４に該当する復旧ルール名Ｉ６が存在した場合（ステップＳ２０２；Ｙｅｓ）、復旧ルール名Ｉ６に対応する復旧ルールＩ７を、復旧ルールテーブル２５を参照し、読み込む（ステップＳ２０３）。
【００４３】
続いて、復旧手段１３は、復旧ルールＩ７に記載された条件に該当するか否かを判別するため、検査結果テーブル２３を参照し、復旧ルールＩ７と依存関係のある検査結果Ｉ４を検査結果テーブル２３から読み込む（ステップＳ２０４）。
【００４４】
また、復旧動作履歴テーブル２７を参照し、復旧ルールＩ７と依存関係のある実行結果Ｉ１０を復旧動作履歴テーブル２７から読み込む（ステップＳ２０５）。
【００４５】
次に、復旧手段１３は、読み込んだ検査結果Ｉ４と実行結果Ｉ１０とが、復旧ルールＩ７に記載された条件に該当するか否かを判別する（ステップＳ２０６）。
【００４６】
復旧ルールＩ７に記載された条件に該当した場合（ステップＳ２０６；Ｙｅｓ）、復旧手段１３は、復旧動作テーブル２６を参照し、復旧ルールＩ７に記載された復旧動作名Ｉ８の復旧動作Ｉ９を復旧動作テーブル２６から読み込む（ステップＳ２０７）。
【００４７】
続いて、復旧動作Ｉ９を実行し、復旧動作履歴テーブル２７に実行結果Ｉ１０を格納する（ステップＳ２０８）。
【００４８】
ステップＳ２０８が終了した場合、復旧ポイントテーブル２４に該当する復旧ルール名Ｉ６が存在しない場合（ステップＳ２０２；Ｎｏ）、又は、検査結果Ｉ４と実行結果Ｉ１０とが復旧ルールＩ７に該当しない場合（ステップＳ２０６；Ｎｏ）、エラー復旧処理を終了する。
そして、復旧手段１３は、バッチ処理手段１１に制御を戻す。
【００４９】
続いて、図７に示すような、ジョブＡとジョブＢとジョブＣとからなるバッチ処理において、ジョブＡの直後に検査ポイントＭ１と復旧ポイントＮ１とを設定し、ジョブＢの直後に検査ポイントＭ２を設定し、ジョブＣの直前に復旧ポイントＮ２を設定した場合における具体的な動作を説明する。
【００５０】
バッチ処理手段１１が、バッチ処理を開始すると、ジョブＡを実行する（ステップＳ１１）。
【００５１】
ジョブＡが終了すると、バッチ処理手段１１は、検査ポイントＭ１を検出する。そして、バッチ処理手段１１から、検査手段１２に制御が移る。
【００５２】
検査ポイントＭ１で制御が移ると、検査手段１２は、先ず、検査ポイントテーブル２１を参照する（ステップＳ１０１）。
【００５３】
検査ポイントテーブル２１を参照すると、検査ポイントＭ１に該当する検査動作名Ｐ１が検出される（ステップＳ１０２；Ｙｅｓ）。
【００５４】
検査動作名Ｐ１を検出すると、検査手段１２は、検査動作テーブル２２を参照し、検査動作名Ｐ１に該当する検査動作「ジョブＡの実行結果が成功か否か判別」
を読み込む（ステップＳ１０３）。
【００５５】
続いて、読み込んだ検査動作を実行、即ちジョブＡの実行結果を判別する。そして、判別した検査結果を検査結果テーブル２３に格納する（ステップＳ１０４）。
【００５６】
そして、検査ポイントＭ１における検査動作名はＰ１のみであるので（ステップＳ１０５；Ｙｅｓ）、検査手段１２は、検査処理を終了し、バッチ処理手段１１に制御を戻す。
【００５７】
バッチ処理手段１１に制御が戻ると、バッチ処理手段１１は、復旧ポイントＮ１を検出する。そして、バッチ処理手段１１から復旧手段１３に制御が移る。
【００５８】
復旧ポイントＮ１で制御が移ると、復旧手段１３は、先ず、復旧ポイントテーブル２４を参照する（ステップＳ２０１）。
【００５９】
復旧ポイントテーブル２４を参照すると、復旧ポイントＮ１に該当する復旧ルール名Ｑ１が検出される（ステップＳ２０２；Ｙｅｓ）。
【００６０】
復旧ルール名Ｑ１を検出すると、復旧手段１３は、復旧ルールテーブル２５を参照し、復旧ルールＱ１に該当する復旧ルール「検査動作名Ｐ１が失敗の場合、復旧動作名Ｒ１を実行」を読み込む（ステップＳ２０３）。
【００６１】
続いて、復旧手段１３は、復旧ルールの条件を判別するため、検査結果テーブル２３を参照し、復旧ルールと依存関係のある検査動作名Ｐ１の検査結果を検査結果テーブル２３から読み込む（ステップＳ２０４）。検査結果は「成功」が読み込まれる。
【００６２】
今回、復旧ルールと依存関係のある復旧動作履歴はないので復旧動作履歴テーブル２７は参照しない（ステップＳ２０５）。
【００６３】
次に、復旧手段１３は、読み込んだＰ１の検査結果が失敗であるか否か判別する（ステップＳ２０６）。
【００６４】
Ｐ１の検査結果は成功であるので（ステップＳ２０６；Ｎｏ）、復旧手段１３は、復旧動作を実行せず復旧処理を終了し、バッチ処理手段１１に制御を戻す。
【００６５】
バッチ処理手段１１に制御が戻ると、バッチ処理手段１１は、ジョブＢを実行する（ステップＳ１２）。
【００６６】
ジョブＢが終了すると、バッチ処理手段１１は、検査ポイントＭ２を検出する。そして、バッチ処理手段１１から検査手段１２に制御が移る。
【００６７】
検査ポイントＭ２で制御が移ると、検査手段１２は、検査ポイントテーブル２１を参照する（ステップＳ１０１）。
【００６８】
検査ポイントテーブル２１を参照すると、検査ポイントＭ２に該当する検査動作名Ｐ２が検出される（ステップＳ１０２；Ｙｅｓ）。
【００６９】
検査動作名Ｐ２を検出すると、検査手段１２は、検査動作テーブル２２を参照し、検査動作名Ｐ２に該当する検査動作「ジョブＢの実行結果が成功か否か判別」
を読み込む（ステップＳ１０３）。
【００７０】
続いて、読み込んだ検査動作を実行し、ジョブＢの実行結果を判別する。そして、判別した検査結果を検査結果テーブル２３に格納する（ステップＳ１０４）。
ここでは、ジョブＢが成功し、検査結果テーブル２３には成功（示す値）が格納されるものとする。
【００７１】
そして、検査ポイントＭ２における検査動作名はＰ２のみであるので（ステップＳ１０５；Ｙｅｓ）、検査手段１２は、検査処理を終了し、バッチ処理手段１１に制御を戻す。
【００７２】
バッチ処理手段１１に制御が戻ると、バッチ処理手段１１は、復旧ポイントＮ２を検出する。そして、バッチ処理手段１１は、復旧手段１３に制御を渡す。
【００７３】
復旧ポイントＮ２で制御を受けると、復旧手段１３は、先ず、復旧ポイントテーブル２４を参照する（ステップＳ２０１）。
【００７４】
復旧ポイントテーブル２４を参照すると、復旧ポイントＮ２に該当する復旧ルール名Ｑ２が検出される（ステップＳ２０２；Ｙｅｓ）。
【００７５】
復旧ルール名Ｑ２を検出すると、復旧手段１３は、復旧ルールテーブル２５を参照し、復旧ルールＱ２に該当する復旧ルール「検査動作名Ｐ２が失敗、かつ、復旧動作名Ｒ１が失敗の場合、復旧動作名Ｒ２を実行」を読み込む（ステップＳ２０３）。
【００７６】
続いて、復旧手段１３は、復旧ルールの条件を判別するため、検査結果テーブル２３を参照し、復旧ルールと依存関係のある検査動作名Ｐ２の検査結果を検査結果テーブル２３から読み込む（ステップＳ２０４）。
【００７７】
また、復旧動作履歴テーブル２７を参照し、復旧ルールと依存関係のある復旧動作名Ｒ１の復旧動作履歴を復旧動作履歴テーブル２７から読み込む（ステップＳ２０５）。
【００７８】
次に、復旧手段１３は、読み込んだＰ２の検査結果とＲ１の復旧動作履歴とが共に失敗であるか否かを判別する（ステップＳ２０６）。
【００７９】
Ｐ２の検査結果及びＲ１の復旧動作履歴は共に成功であるので（ステップＳ２０６；Ｎｏ）、復旧手段１３は、復旧動作を実行せず復旧処理を終了し、バッチ処理手段１１に制御を戻す。
【００８０】
バッチ処理手段１１に制御が戻ると、バッチ処理手段１１は、ジョブＣを実行する（ステップＳ１３）。
【００８１】
ジョブＣが終了すると、バッチ処理手段１１によるバッチ処理が終了する。
【００８２】
以上のように、バッチ処理の中に任意に検査ポイントと復旧ポイントとを設定し、任意のタイミングで検査動作及び復旧動作を実行することができる。
また、検査動作及び復旧動作の内容や実行する条件は、記憶部２０に記憶された検査ポイントテーブル２１と、検査動作テーブル２２と、復旧ポイントテーブル２４と、復旧ルールテーブル２５と、復旧動作テーブル２６と、を書き換えることで任意に設定することができる。これにより、様々なバッチ処理に検査・復旧動作を再利用することができる。
【００８３】
なお、この発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
【００８４】
例えば、バッチ処理手段１１と検査手段１２とを一つにしてバッチ処理／検査手段としてもよい。検査ポイントの数が多い場合には、バッチ処理手段１１から検査手段１２へ制御を渡す回数が多くなるが、一つにすることで処理性能の向上が見込める。また検査結果と復旧ポイントを関連づけるために、検査結果テーブル２３と復旧ポイントテーブル２４とをまとめて検査結果／復旧ポイントテーブルとしてもよい。
【００８５】
上記実施形態では、処理部１０が実行するプログラムは、予めプログラムメモリ３０に記憶されていたが、通信網を介してプログラムメモリ３０に記憶するようにしてもよい。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施形態に係るバッチ処理のエラー検査復旧システムの構成を示すブロック図である。
【図２】エラー検査処理の動作を説明するためのフローチャートである。
【図３】エラー復旧処理の動作を説明するためのフローチャートである。
【図４】記憶部に記憶されるテーブルの構成の例を示す図である。
【図５】記憶部に記憶されるテーブルの構成の例を示す図である。
【図６】処理部の状態遷移図である。
【図７】バッチ処理の動作を説明するためのフローチャートである。
【符号の説明】
【００８７】
１０  処理部
２０  記憶部
３０  プログラムメモリ
４０  バッチ処理結果格納部
１００  コンピュータ
【図１】
2007272580.tif 000003
【図２】
2007272580.tif 000004
【図３】
2007272580.tif 000005
【図４】
2007272580.tif 000006
【図５】
2007272580.tif 000007
【図６】
2007272580.tif 000008
【図７】
2007272580.tif 000009