(57)【要約】【課題】共有サーバを導入せずに、本番サーバの障害時にバッチジョブを継続させる。【解決手段】バッチ実行プログラムを実行する本番サーバの異常時に、本番サーバに代わって前記バッチ実行プログラムを実行する情報処理装置は、前記本番サーバのバッチ実行プログラムの動作状況を確認する監視間隔と、本番サーバのバッチ実行プログラムの異常時に待機サーバに切り替えて前記バッチ実行プログラムを実行するまでに要する切替時間とを監視用データベースと、前記バッチ実行プログラムに含まれるバッチジョブと該バッチジョブの待機サーバにおける実行開始時刻とを対応付けてバッチ情報データベースに記憶する記憶部と、前記本番サーバにおける前記バッチジョブの開始時刻に前記監視間隔及び前記切替時間を加算した時刻を前記待機サーバにおける前記バッチジョブの実行開始時刻とする制御部と、を備える。【選択図】図１
2014120123.tif 000002
【特許請求の範囲】
【請求項１】
バッチ実行プログラムを実行する本番サーバの異常時に、本番サーバに代わって前記バッチ実行プログラムを実行する情報処理装置であって、
前記本番サーバのバッチ実行プログラムの動作状況を確認する監視間隔と、本番サーバのバッチ実行プログラムの異常時に待機サーバに切り替えて前記バッチ実行プログラムを実行するまでに要する切替時間とを監視用データベースに記憶し、前記バッチ実行プログラムに含まれるバッチジョブと該バッチジョブの待機サーバにおける実行開始時刻とを対応付けてバッチ情報データベースに記憶する記憶部と、
前記本番サーバにおける前記バッチジョブの開始時刻に前記監視間隔及び前記切替時間を加算した時刻を前記待機サーバにおける前記バッチジョブの実行開始時刻とする制御部と、
を備えることを特徴とする、情報処理装置。
【請求項２】
前記制御部は、
前記監視間隔で前記本番サーバの前記実行プログラムの動作状況情報を取得し、該動作状況情報に基づいて前記本番サーバが異常であると判断した場合に、前記待機サーバで実行する前記バッチジョブを特定し、前記バッチ情報データベースを参照して、該バッチジョブに対応する実行開始時刻に該バッチジョブを実行する
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記本番サーバが異常であると判断した場合に、前記本番サーバを停止させる
ことを特徴とする、請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、
前記バッチジョブの実行時間が前記監視間隔及び前記切替時間を加算した時間よりも長い場合に、前記本番サーバにおける前記バッチジョブの開始時刻に前記監視間隔及び前記切替時間及び該バッチジョブの実行時間を加算した時刻を前記待機サーバにおける前記バッチジョブの実行開始時刻とする、
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項５】
バッチ実行プログラムを実行する本番サーバの異常時に、本番サーバに代わって前記バッチ実行プログラムを実行する情報処理装置における情報処理方法であって、
前記情報処理装置は、前記バッチ実行プログラムの実行を制御する制御部を備え、
前記制御部が、前記本番サーバのバッチ実行プログラムの動作状況を確認する監視間隔と、本番サーバのバッチ実行プログラムの異常時に待機サーバに切り替えて前記バッチ実行プログラムを実行するまでに要する切替時間とを監視用データベースに記憶する第１のステップと、
前記制御部が、前記本番サーバにおける前記バッチジョブの開始時刻に前記監視間隔及び前記切替時間を加算した時刻を前記待機サーバにおける前記バッチジョブの実行開始時刻として算出し、前記バッチ実行プログラムに含まれるバッチジョブと前記算出した前記待機サーバにおける前記実行開始時刻とを対応付けてバッチ情報データベースに記憶する第２のステップと、
制御部が、前記監視間隔で前記本番サーバの前記実行プログラムの動作状況情報を取得する第３のステップと、
制御部が、前記動作状況情報に基づいて前記本番サーバが異常であると判断した場合に、前記待機サーバで実行する前記バッチジョブを特定し、前記バッチ情報データベースを参照して、該バッチジョブに対応する実行開始時刻に該バッチジョブを実行する第４のステップと、
を含むことを特徴とする、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関し、本番サーバのバッチ実行プログラムの稼働状況を監視する情報処理装置及び情報処理方法に適用して好適なるものである。
【背景技術】
【０００２】
バッチ実行プログラムが登録されている本番サーバにおいて障害が発生した場合、バックアップ処理や出荷指示など、バッチ処理業務に影響が生じる。バッチ実行プログラムとは、予め処理手順が記述されたプログラムであり、本番サーバは、所定のタイミングで自動的にバッチ実行プログラムを起動する。バッチ実行プログラムでは、クリティカルなデータを扱うため、本番サーバに障害が発生した場合には、他のシステムなどに多大な影響が生じる。そこで、障害発生による甚大な被害を回避するために、ストレージ装置を導入して、クラスタ構成によりデータ部を冗長化することが一般的に行われている。
【０００３】
例えば、特許文献１では、本番サーバ、待機サーバ及び共有サーバから構成される計算機システムが開示されている。特許文献１では、共有サーバに本番サーバの実行結果が記録し、障害が発生した場合に、待機サーバが共有サーバに記録された実行結果を確認した後実行プログラムを開始する。これにより、本番サーバで実行されたバッチ実行プログラムを、待機サーバで継続して実行させることができるため、障害発生時に、本番サーバから待機サーバへ円滑にバッチジョブを引き継ぐことが可能となる。ここで、バッチジョブとは、業務処理に必要な複数の手順からなる処理を予め登録しておき、自動的に処理を実行させるための定義情報である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４０１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記した特許文献１では、障害時にバッチジョブを継続させるために共有サーバを導入しなければならず、費用が嵩み、ユーザの負担が大きくなってしまうという問題があった。
本発明は以上の点を考慮してなされたもので、共有サーバを導入せずに、本番サーバの障害時にバッチジョブを継続させることが可能な情報処理装置及び情報処理方法を提案しようとするものである。
【課題を解決するための手段】
【０００６】
かかる課題を解決するために本発明においては、バッチ実行プログラムを実行する本番サーバの異常時に、本番サーバに代わって前記バッチ実行プログラムを実行する情報処理装置であって、前記本番サーバのバッチ実行プログラムの動作状況を確認する監視間隔と、本番サーバのバッチ実行プログラムの異常時に待機サーバに切り替えて前記バッチ実行プログラムを実行するまでに要する切替時間とを監視用データベースに記憶し、前記バッチ実行プログラムに含まれるバッチジョブと該バッチジョブの待機サーバにおける実行開始時刻とを対応付けてバッチ情報データベースに記憶する記憶部と、前記本番サーバにおける前記バッチジョブの開始時刻に前記監視間隔及び前記切替時間を加算した時刻を前記待機サーバにおける前記バッチジョブの実行開始時刻とする制御部と、を備えることを特徴とする、情報処理装置が提供される。
【０００７】
かかる構成によれば、待機サーバの記憶部に、本番サーバのバッチ実行プログラムの動作状況を確認する監視間隔と、本番サーバのバッチ実行プログラムの異常時に待機サーバに切り替えてバッチ実行プログラムを実行するまでに要する切替時間とを監視用データベースに記憶し、本番サーバにおけるバッチジョブの開始時刻に監視間隔及び切替時間を加算した時刻を待機サーバにおけるバッチジョブの実行開始時刻とし、本番サーバの異常時に、本番サーバに代わってバッチ実行プログラムを実行する。このように、共有サーバを導入することなく本番サーバの障害時にバッチジョブを継続させることを可能とすることにより、安価なシステムでバッチジョブの運用における信頼性を確保することができる。
【発明の効果】
【０００８】
本発明によれば、共有サーバを導入することなく本番サーバの障害時にバッチジョブを継続させて、安価なシステムでバッチジョブの運用における信頼性を確保することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る計算機システムの全体構成を示すブロック図である。
【図２】同実施形態にかかるバッチ実行管理本番サーバの構成を示すブロック図である。
【図３】同実施形態にかかるバッチ実行管理待機サーバの構成を示すブロック図である。
【図４】同実施形態にかかるバッチ情報データベースの一例を示す図表である。
【図５Ａ】同実施形態にかかるバッチ情報データベースの一例を示す図表である。
【図５Ｂ】同実施形態にかかるバッチ情報データベースの一例を示す図表である。
【図５Ｃ】同実施形態にかかるバッチ情報データベースの一例を示す図表である。
【図６】同実施形態にかかる監視用データベースの一例を示す図表である。
【図７】同実施形態にかかるテーブル情報の取得及び更新処理を示すフローチャートである。
【図８】同実施形態にかかるバッチジョブの実行結果取得処理の流れを示すフローチャートである。
【図９】同実施形態にかかるバッチ実行管理待機サーバの監視処理の流れを示すフローチャートである。
【図１０】同実施形態にかかるバッチ実行管理待機サーバの監視処理の流れを示すフローチャートである。
【図１１Ａ】同実施形態にかかる障害発生時のバッチジョブの実行タイミングを説明する概念図である。
【図１１Ｂ】同実施形態にかかる障害発生時のバッチジョブの実行タイミングを説明する概念図である。
【図１１Ｃ】同実施形態にかかる障害発生時のバッチジョブの実行タイミングを説明する概念図である。
【図１２】同実施形態にかかる障害発生時のバッチジョブの実行タイミングを説明する概念図である。
【発明を実施するための形態】
【００１０】
以下図面について、本発明の一実施の形態を詳述する。
【００１１】
（１）本実施の形態の概要
【００１２】
バッチ実行プログラムが登録されている本番サーバにおいて障害が発生した場合、バックアップ処理や出荷指示など、バッチ処理業務に影響が生じる。バッチ実行プログラムとは、予め処理手順が記述されたプログラムであり、本番サーバは、所定のタイミングで自動的にバッチ実行プログラムを起動する。バッチ実行プログラムでは、クリティカルなデータを扱うため、本番サーバに障害が発生した場合には、他のシステムなどに多大な影響がある。障害発生による甚大な被害を回避するために、ストレージ装置を導入して、クラスタ構成によりデータ部を冗長化する方式が一般的である。
【００１３】
例えば、本番サーバ、待機サーバ及び共有サーバから構成される計算機システムでは、障害が発生しても本番サーバからバッチジョブを円滑に引き継ぐことができる。これは、共有サーバに本番サーバの実行結果が随時記録され、障害が発生した場合に、待機サーバが、共有サーバに記録された実行結果を確認した後実行プログラムを開始して、バッチジョブがどこまで実行されたかを即時に判断することが可能であるためである。ここで、バッチジョブとは、業務処理に必要な複数の手順からなる処理を予め登録しておき、自動的に処理を実行させるための定義情報である。
【００１４】
しかし、上記した技術では、障害時にバッチジョブを継続させるために共有サーバを導入しなければならず、費用が嵩み、ユーザの負担が大きくなってしまうという問題があった。そこで、本実施の形態では、共有サーバを導入せずに、本番サーバの障害時にバッチジョブを継続させることを可能としている。
【００１５】
（２）計算機システムの構成
次に、図１を参照して、本実施の形態にかかる計算機システム１の全体構成について説明する。図１に示すように、計算機システム１では、２つのサーバ（１０、１１）がネットワーク１２を介して接続されている。２つのサーバは、平常時にバッチの実行を管理するサーバと、障害時にバッチの実行を管理するサーバである。前者をバッチ実行管理本番サーバ１０と称し、後者をバッチ実行管理待機サーバ１１と称して以下説明する。図１では、１つのバッチ実行管理本番サーバ１０と１つのバッチ実行管理待機サーバ１１とがネットワークを介して接続されているが、かかる例に限定されず、複数台のバッチ実行管理本番サーバ１０と複数台のバッチ実行管理待機サーバ１１とがネットワークを介して接続されていてもよい。
【００１６】
また、ネットワーク１２は、企業内ネットワークなどのＬＡＮ（Local Area Network）でもよいし、インターネットや電話回線網、衛星通信等の公衆回線網であってもよい。また、ネットワーク１２には、図示していない端末や通信装置などが接続されていてもよい。
【００１７】
平常時には、バッチ実行管理本番サーバ１０は、バッチジョブの実行結果をバッチ実行管理待機サーバ１１に送信する。バッチ実行管理本番サーバ１０からバッチジョブの実行結果を受信したバッチ実行管理待機サーバ１１は、受信したバッチジョブの実行結果をもとにバッチ実行管理本番サーバ１０の稼働状況を監視する。なお、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１は、データセンタやサーバ室に設置される。
【００１８】
（３）サーバの構成
（３−１）バッチ実行管理本番サーバの構成
図２を参照して、バッチ実行管理本番サーバ１０の構成について説明する。図２に示すように、バッチ実行管理本番サーバ１０は、制御部２００、記憶部２０１、入力部２０２、表示部２０３及びネットワークインタフェース部２０４などから構成される。
【００１９】
制御部２００は、記憶部２０１に格納された各種プログラムを実行し、バッチ実行管理本番サーバ１０内の動作全般を制御する。制御部２００は、例えば、ＣＰＵやマイクロプロセッサなどである。
【００２０】
記憶部２０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などであり、ＲＯＭは、制御部２００が使用するプログラムや演算パラメータ等を記憶し、ＲＡＭは、制御部２００の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。また、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などのストレージ装置であってもよい。
【００２１】
入力部２０２は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、制御部２００に出力する入力制御回路などから構成されている。
【００２２】
表示部２０３は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｓｐｌａｙ）装置およびランプなどの表示装置で構成される。
【００２３】
ネットワークインタフェース部２０４は、例えば、ネットワーク１２に接続するための通信デバイス等で構成された通信インタフェースである。また、ネットワークインタフェース部は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）対応通信装置であっても、ワイヤレスＵＳＢ対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。ネットワークインタフェース部２０４は、ネットワーク１２を介してバッチ実行管理待機サーバ１１のネットワークインタフェース部２１２に接続される。
【００２４】
また、上記各部は、ＣＰＵバスなどから構成されるバス（ＢＵＳ）により相互に接続されている。
【００２５】
記憶部２０１には、バッチ実行プログラム２０５やバッチ情報データベース２０６などが格納されている。バッチ実行プログラム２０５は、入力部２０２を介して入力されたバッチジョブの情報などを入力データとし、バッチジョブの内容や結果などを表示部２０３に表示させる。また、バッチ情報データベース２０６には、バッチ実行プログラム２０５により実行されるバッチジョブの情報が格納されている。
【００２６】
（３−２）バッチ実行管理待機サーバの構成
次に、図３を参照して、バッチ実行管理待機サーバ１１の構成について説明する。図３に示すように、バッチ実行管理待機サーバ１１は、制御部２０８、記憶部２０９、入力部２１０、表示部２１１及びネットワークインタフェース部２１２などから構成される。
【００２７】
制御部２０８は、記憶部２０９に格納された各種プログラムを実行し、バッチ実行管理待機サーバ１１内の動作全般を制御する。制御部２０８は、例えば、ＣＰＵやマイクロプロセッサなどである。
【００２８】
記憶部２０９は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などであり、ＲＯＭは、制御部２０８が使用するプログラムや演算パラメータ等を記憶し、ＲＡＭは、制御部２０８の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。また、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などのストレージ装置であってもよい。
【００２９】
入力部２１０は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、制御部２０８に出力する入力制御回路などから構成されている。
【００３０】
表示部２１１は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｓｐｌａｙ）装置およびランプなどの表示装置で構成される。
【００３１】
ネットワークインタフェース部２１２は、例えば、ネットワーク１２に接続するための通信デバイス等で構成された通信インタフェースである。また、ネットワークインタフェース部は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）対応通信装置であっても、ワイヤレスＵＳＢ対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。ネットワークインタフェース部２１２は、ネットワーク１２を介してバッチ実行管理本番サーバ１０のネットワークインタフェース部２０４に接続される。
【００３２】
また、上記各部は、ＣＰＵバスなどから構成されるバス（ＢＵＳ）により相互に接続されている。
【００３３】
記憶部２０９には、バッチ実行プログラム２１３、バッチ情報データベース２１４及び監視用データベース２１５などが格納されている。バッチ実行プログラム２１３は、入力部２２０を介して入力されたバッチジョブの情報などを入力データとし、バッチジョブの内容や結果などを表示部２２２に表示させる。また、バッチ情報データベース２１４には、バッチ実行プログラム２１３により実行されるバッチジョブの情報が格納されている。
【００３４】
また、監視用データベース２１５は、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５をバッチ実行管理待機サーバ１１のバッチ実行プログラム２１３が状態監視する周期の情報が格納される。また、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５が異常となった場合に、バッチジョブの実行をバッチ実行管理待機サーバ１１に切替える際のバッチジョブの実行開始時間の情報が格納されている。
【００３５】
（４）各種データベース
次に、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１に格納されている各種データベースについて説明する。
【００３６】
バッチ実行管理本番サーバ１０の記憶部２０１に格納されているバッチ情報データベース２０６は、バッチ実行プログラム２０５により実行されるバッチジョブの実行時間や実行場所の情報を管理するデータベースであって、入力部２０２から新規のジョブ情報が登録、変更または削除された場合に、バッチ実行プログラム２０５による更新されるデータベースである。
【００３７】
図４に示すように、バッチ情報データベース２０６は、開始時刻欄３０１、ジョブ名称欄３０２、実行時間欄３０３、再実行の可否欄３０４及び前提実行ジョブ欄３０５から構成されている。開始時刻欄３０１には、バッチ実行管理本番サーバ１０で実行されるジョブの開始時刻が格納される。ジョブの開始時刻は、予め入力部２０２から入力される。ジョブ名称欄３０２には、バッチ実行管理本番サーバ１０で実行されるジョブの名称が格納される。ジョブの名称は、予め入力部２０２から入力される。実行時間欄３０３には、バッチ実行管理本番サーバ１０で実行されるジョブの実行時間が格納される。ジョブの実行時間は、予め入力部２０２から入力される。
【００３８】
再実行の可否欄３０４には、バッチ実行管理本番サーバ１０で実行されるジョブがバッチ実行管理待機サーバ１１に切り替えられた後、バッチ実行プログラム２１３により再実行されても問題ないか否かの情報が格納される。具体的に、再実行しても問題ない場合はＹＥＳが格納され、再実行してはいけない場合はＮＯが格納される。ジョブの再実行可否の情報は、予め入力部２０２から入力される。また、前提実行ジョブ欄３０５には、バッチ実行管理本番サーバ１０で実行されるジョブの実行前に必ず処理を終了している必要のあるジョブがあるかを示す情報が格納される。具体的に、前提実行ジョブ欄３０５には、ジョブを実行する前に必ず処理する必要があるジョブ（前提実行ジョブ）がある場合には、該ジョブの名称が格納される。前提実行ジョブは、予め入力部２０２から入力される。
【００３９】
図４では、例えば、ジョブＢは開始時刻が９時３０分に設定され、ジョブの実行時間は１５分、再実行は可（ＹＥＳ）、ジョブＢの前提実行ジョブはジョブＡに設定されていることがわかる。
【００４０】
次に、バッチ実行管理待機サーバ１１の記憶部２０９に格納されているバッチ情報データベース２１４について説明する。バッチ情報データベース２１４は、バッチ実行プログラム２１３により実行されるバッチジョブの実行時間や実行場所の情報を管理するデータベースである。
【００４１】
図５Ａに示すように、バッチ情報データベース２１４は、開始時刻欄３０６、ジョブ名称欄３０７、実行時間欄３０８、再実行の可否欄３０９、実行有無欄３１０及び前提実行ジョブ欄３１１から構成されている。開始時刻欄３０６には、バッチ実行管理待機サーバ１１で実行されるジョブの開始時刻が格納される。ジョブの開始時刻は、バッチ実行管理本番サーバ１０のバッチ情報データベース２０６の値と、監視用データベース２１５の監視間隔３１２と切替時間３１３とを加算した値である。開始時刻欄３０６に格納されるジョブの開始時刻については、後で詳細に説明する。ジョブ名称欄３０７には、バッチ実行管理本番サーバ１０のバッチ情報データベース２０６から取得されたジョブの名称が格納される。実行時間欄３０８には、バッチ実行管理待機サーバ１１で実行されるジョブの実行時間が格納される。
【００４２】
再実行の可否欄３０９には、バッチ実行管理本番サーバ１０で実行されるジョブがバッチ実行管理待機サーバ１１に切り替えられた後、バッチ実行プログラム２１３で再実行されても問題ないか否かの情報が格納される。具体的に、再実行しても問題ない場合はＹＥＳが格納され、再実行してはいけない場合はＮＯが格納される。実行有無欄３１０には、バッチ実行プログラム２１３で実行されたジョブの実行結果が格納される。具体的に、ジョブが実行されていない場合は未が格納され、ジョブが実行された場合には済が格納される。また、前提実行ジョブ欄３１１には、バッチ実行管理待機サーバ１１で実行されるジョブの実行前に必ず処理を終了している必要のあるジョブがあるかを示す情報が格納される。具体的に、前提実行ジョブ欄３１１には、ジョブを実行する前に必ず処理する必要があるジョブ（前提実行ジョブ）がある場合には、該ジョブの名称が格納される。
【００４３】
バッチ実行プログラム２１３は、バッチ実行管理本番サーバ１０のバッチ情報データベース２０６から値を取得して、バッチ実行管理待機サーバ１１のバッチ情報データベース２１４に取得した値や、取得した値に基づく値を格納する。したがって、バッチ実行管理本番サーバ１０のバッチ情報データベース２０６から値が取得される前には、図５Ａの書き込み前に示すように、バッチ情報データベース２１４には、何らの値も格納されていない。そして、バッチ実行管理本番サーバ１０のバッチ情報データベース２０６から値が取得された後には、図５Ｂの書き込み後に示すように、バッチ情報データベース２１４には、バッチ実行管理本番サーバ１０のバッチ情報データベース２０６から取得された値が格納される。さらに、バッチ実行管理本番サーバ１０でバッチジョブが実行されると、図５Ｃに示すように、バッチジョブの実行結果を示す情報が実行有無欄３１０に格納される。
【００４４】
図６に示す監視用データベース２１５は、バッチ実行管理待機サーバ１１の記憶部２０９に格納されており、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５の稼働状態を監視するためのテーブルである。
【００４５】
図６に示すように、監視用データベース２１５は、監視間隔欄３１２及び切替時間欄３１３から構成される。監視間隔欄３１２には、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５の稼働状態を確認する監視間隔の情報が格納される。切替時間欄３１３には、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５に異常が格納された場合に、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３が動作を開始するまでの切替時間が格納される。切替時間欄３１３に格納される切替時間は、バッチ実行管理待機サーバ１１の入力部２１０から予め入力される。
【００４６】
（５）サーバの動作の詳細
次に、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１の動作の詳細を説明する。まず、図７を参照して、バッチ実行管理待機サーバ１１におけるバッチ情報データベース２１４のテーブル情報の取得処理及び更新処理について説明する。バッチ実行プログラム２１３は、入力部２１０により起動されて（Ｓ１０１）、バッチ実行管理本番サーバ１０に格納されているバッチ情報データベース２０６の最新テーブルを更新する（Ｓ１０２）。
【００４７】
そして、バッチ情報データベース２０６は、バッチ実行管理本番サーバ１０が正常時のジョブスケジュールテーブルからジョブ情報を取得して（Ｓ１０３）、ジョブの開始時刻に監視間隔及び切替時間を加算して再スケジュールテーブルに登録する（Ｓ１０４）。
【００４８】
具体的に、バッチ実行プログラム２１３は、ステップＳ１０３及びＳ１０４で、バッチ情報データベース２０６の各欄の値をバッチ情報データベース２１４の対応する欄に格納する。例えば、バッチ情報データベース２０６の開始時刻欄３１０の値を取得し、開始時刻欄３１０の値に監視間隔及び切替時間を加算してバッチ情報データベース２１４の開始時刻欄３０６に格納する。また、バッチ情報データベース２０６の実行時間欄３０３の値をバッチ情報データベース２１４の実行時間欄３０８に格納し、バッチ情報データベース２０６の再実行の可否欄３０４の値をバッチ情報データベース２１４の再実行の可否欄３０９に格納し、バッチ情報データベース２０６の前提実行ジョブ欄３０５の値をバッチ情報データベース２１４の前提実行ジョブ３１１欄に格納する。
【００４９】
そして、バッチ実行プログラム２１３は、バッチ情報データベース２０６の次の行を検索して、次のジョブがあるかを判定する（Ｓ１０５）。ステップＳ１０５において、次のジョブがあると判定された場合には、ステップＳ１０３及びステップＳ１０４の処理を繰り返し、同様にデータを取得してバッチ情報データベース２１４に格納する。一方、ステップＳ１０５において、次のジョブがないと判定された場合には、バッチ情報データベース２０６の検索を終了して、ステップＳ１０６の処理を実行する。
【００５０】
続いて、バッチ実行プログラム２１３は、監視間隔及び切替時間を取得して監視用データベース２１５に登録する（Ｓ１０６）。具体的に、バッチ実行プログラム２１３は、入力部２１０から入力された監視間隔及び切替時間を取得して監視用データベース２１５に登録する。既に監視用データベース２１５にデータ値が格納されている場合には、表示部２１１に格納されている監視間隔及び切替時間を表示部２１１に表示して、表示されたデータを登録するか否かをユーザに促すようにしてもよい。表示部２１１に監視間隔及び切替時間が表示され、ユーザにより、データが入力され、ＯＫボタン等が押下された場合には、入力されたデータを監視間隔欄３１２及び切替時間欄３１３に格納する。
【００５１】
次に、バッチ実行管理本番サーバ１０におけるバッチジョブの実行結果の取得処理について説明する。図８に示すように、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５は、バッチ情報データベース２０６の開始時刻欄３０１の値及びジョブ名称欄３０２の値を読み取り（Ｓ２０１）、ステップＳ２０１において読み取った開始時刻にジョブを実行する（Ｓ２０２）。
【００５２】
そして、バッチ実行プログラム２０５は、ステップＳ２０２において実行したジョブの実行結果を取得する（Ｓ２０３）。具体的に、バッチ実行プログラム２０５は、実行結果として、バッチジョブのリターンコードを取得する。リターンコードが正常値の場合には、バッチジョブが正常に実行されたことを意味する。バッチ実行プログラム２０５は、ステップＳ２０３で取得した実行結果をバッチ実行管理待機サーバ１１に送信する（Ｓ２０４）。
【００５３】
そして、バッチ実行プログラム２０５は、バッチ情報データベース２０６において、次に指定されているジョブがあるかを判定（Ｓ２０５）し、次のジョブがある場合にはステップＳ２０１以降の処理を繰り返す。一方、ステップＳ２０４において、次のジョブが指定されていないと判定された場合には、バッチ実行プログラム２０５は、処理を終了する。
【００５４】
ステップＳ２０４において、バッチジョブの実行結果を受信したバッチ実行管理待機サーバ１１は、当該実行結果をバッチ情報データベース２１４の実行されたバッチジョブに対応する実行有無欄３１０に実行結果を格納する。具体的に、実行結果が正常値である場合には、実行有無欄３１０に済を示す値を格納する。
【００５５】
次に、バッチ実行管理待機サーバ１１におけるバッチジョブの稼働状況監視処理について説明する。図９に示すように、まず、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３は、監視用データベース２１５の監視間隔欄３１２に格納されている監視間隔でバッチ実行管理本番サーバ１０のバッチ実行プログラム２０５の稼働状況を確認するためのコマンドをバッチ実行管理本番サーバ１０に送信する（Ｓ３０１）。
【００５６】
図示していないが、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５は、ステップＳ３０１において送信された稼働状況を確認するためのコマンドを受信し、バッチ実行プログラムの動作を確認して、バッチ実行プログラムの動作状況をバッチ実行管理待機サーバ１１に送信する。
【００５７】
そして、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３は、バッチ実行管理本番サーバ１０から送信されたバッチ実行プログラムの動作状況を受信し（Ｓ３０２）、動作状況を示す返値が正常か異常かを判定する（Ｓ３０３）。ステップＳ３０３において、返値が正常であると判定された場合には、バッチ実行プログラム２１３は、ステップＳ３０１以降の処理を繰り返す。一方、ステップＳ３０３において、返値が異常であると判定された場合には、バッチ実行プログラム２１３は、再度、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５の稼働状況を確認するためのコマンドをバッチ実行管理本番サーバ１０に送信する（Ｓ３０４）。
【００５８】
図示していないが、バッチ実行管理本番サーバ１０のバッチ実行プログラム２０５は、ステップＳ３０４において送信された稼働状況を確認するためのコマンドを受信し、バッチ実行プログラムの動作を確認して、バッチ実行プログラムの動作状況をバッチ実行管理待機サーバ１１に送信する。
【００５９】
そして、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３は、バッチ実行管理本番サーバ１０から送信されたバッチ実行プログラムの動作状況を受信し（Ｓ３０５）、動作状況を示す返値が正常か異常か判定する（Ｓ３０６）。ステップＳ３０６において、返値が正常であると判定された場合には、バッチ実行プログラム２１３は、ステップＳ３０１以降の処理を繰り返す。一方、ステップＳ３０６において、返値が異常であると判定された場合には、バッチ実行プログラム２１３は、バッチジョブの実行サーバを、バッチ実行管理本番サーバ１０からバッチ実行管理待機サーバ１１に切り替えるための切替処理を行う（Ｓ３０７）。
【００６０】
上記処理では、ステップＳ３０６で返値が異常であった場合に、再度、ステップＳ３１２でバッチ実行管理本番サーバ１０のバッチ実行プログラム動作状況を確認している。これは、ステップＳ３０６において、返値が異常値であっても、異常値が、バッチ実行管理一時的なエラーやキューが溜まっていることによるタイムアウトなどによるものである場合に、バッチ実行管理本番サーバ１０が障害であると判断されることを防ぐためである。
【００６１】
一時的なエラーとしては、例えば、バッチジョブのプロセスを管理するプロセス管理部との通信時にエラーが発生した場合（リターンコード１）や、バッチジョブの実行権限がなく、一部のプロセスのみ起動している場合や、異常終了したプロセスがあるためバッチジョブが停止処理中である場合（リターンコード４）、すべてのプロセスが終了している場合（リターンコード８）、一時的なエラーによってバッチジョブ実行プログラムの状態が求まらない場合や、バッチジョブ実行プログラムの状態を取得するための要求処理がタイムアウトした場合（リターンコード１２）などが挙げられる。
【００６２】
次に、図１０を参照して、図９のステップＳ３１３における切替処理の詳細について説明する。図１０に示すように、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３は、まず、バッチ実行管理本番サーバ１０に対してシャットダウンコマンドを実行する（Ｓ３１１）。ステップＳ３１１においてバッチ実行管理本番サーバ１０をシャットダウンさせることにより、バッチ実行管理本番サーバ１０が復帰した場合に、バッチ実行管理本番サーバ１０とバッチ実行管理待機サーバ１１とが同時にバッチジョブを実行することを防ぐことができる。
【００６３】
続いて、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３は、現在時刻をＯＳから取得する（Ｓ３１２）。そして、バッチ実行プログラム２１３は、バッチ情報データベース２１４の開始時刻から、監視間隔と切替時間を減算して、本番機の開始時刻を算出する（Ｓ３１３）。
【００６４】
そして、バッチ実行プログラム２１３は、ステップＳ３１２において取得した現在時刻とステップＳ３１３において算出した開始時刻とを比較して、実行中のジョブを取得する（Ｓ３１４）。そして、バッチ実行プログラム２１３は、ステップＳ３１４で取得したジョブとバッチ実行管理本番サーバ１０から送信された実行済ジョブとを照合する（Ｓ３１５）。
【００６５】
そして、バッチ実行プログラム２１３は、ステップＳ３１５で照合した結果、ステップＳ３１５で取得したジョブが終了済みかを判定する（Ｓ３１６）。ステップＳ３１６において、ジョブが終了済みであると判定された場合には、バッチ実行プログラム２１３は、バッチ情報データベース２１４を参照して、当該ジョブの次に実行されるジョブを取得して（Ｓ３２２）、ジョブを登録する（Ｓ３２３）。一方、ステップＳ３１６において、ジョブが終了済みではないと判定された場合には、バッチ実行プログラム２１３は、当該ジョブの再実行の可否を判定する（Ｓ３１７）。
【００６６】
ステップＳ３１７において、当該ジョブが再実行可能であると判定された場合には、バッチ実行プログラム２１３は、当該ジョブの再実行開始時刻を取得する（Ｓ３１８）。一方、ステップＳ３１７において、当該ジョブが再実行不可であると判定された場合には、バッチ実行プログラム２１３は、表示部２１１にジョブ入力画面を表示して（Ｓ３１９）、ジョブ入力画面から実行ジョブと実行開始時刻を入力させる（Ｓ３２０）。そして、バッチ実行プログラム２１３は、ステップＳ３２０で入力された実行ジョブと実行開始時刻を取得して（Ｓ３２１）、ジョブを登録する（Ｓ３２３）。
【００６７】
次に、図１１Ａ〜図１１Ｃを参照して、上記した監視間隔及び切替時間のバッチジョブの開始時刻への加算について説明する。バッチ実行管理待機サーバ１１において、バッチジョブの開始時刻に監視間隔及び切替時間を加算するのは、サーバの切替処理時にバッチジョブの実行漏れが発生することを防ぐためである。
【００６８】
図１１Ａは、バッチ実行管理本番サーバ１０におけるバッチジョブの状態監視の直前でバッチ実行管理本番サーバ１０のバッチ実行プログラム２０５に障害が発生した場合を示す。この場合には、切替にかかる時間分、バッチジョブの開始時刻をずらすことにより、障害発生後サーバ切替までの間に実行されるべきバッチジョブの実行漏れを防ぐことができる。
【００６９】
また、図１１Ｂは、バッチ実行管理本番サーバ１０におけるバッチジョブの状態監視と同じタイミングでバッチ実行管理本番サーバ１０のバッチ実行プログラム２０５に障害が発生した場合を示す。この場合には、切替に係る時間分、バッチジョブの開始時刻をずらすことにより、障害発生後サーバ切替までの間に実行されるべきバッチジョブの実行漏れを防ぐことができる。
【００７０】
また、図１１Ｃは、バッチ実行管理待機サーバ１１のバッチ実行プログラム２１３からバッチ実行管理本番サーバ１０のバッチ実行プログラム２０５の状態監視を行った直後に障害が発生した場合を示す。この場合には、切替に係る時間分に加えて、監視間隔も開始時刻に加算した時刻を、バッチ実行管理待機サーバ１１におけるバッチジョブの開始時刻とする。これにより、状態監視を行った直後に障害が発生した場合でも、障害発生後、次の状態監視までの時間に実行されるバッチジョブ及び次の状態監視後サーバ切替までの間に実行されるべきバッチジョブの実行漏れを防ぐことができる。
【００７１】
本実施の形態では、図１１Ａ〜図１１Ｃのいずれの場合であっても、バッチ実行管理待機サーバ１１に切り替えられた後に実行されるべきバッチジョブの実行漏れを防ぐために、バッチジョブの開始時刻に監視間隔及び切替時間を加算した時刻をバッチ実行管理待機サーバ１１のバッチジョブの実行開始時刻としている。
【００７２】
また、バッチジョブの処理時間が、状態監視間隔及び切替時間を加算した時間より長い場合も考えられる。例えば、図１２に示すように、バッチジョブ１の開始後、状態監視時間及び切替時間を加算した時間より後に障害が発生した場合、バッチ実行管理待機サーバ１１に切替後、バッチジョブ１の開始時刻は既に過ぎてしまっていることとなる。バッチ実行管理待機サーバ１１のバッチ情報データベース２１４に設定されたバッチジョブ１の開始時刻は、バッチ実行管理本番サーバ１０におけるバッチジョブ１の開始時刻に状態監視間隔及び切替時間を加算した時刻である。
【００７３】
したがって、バッチジョブ１の開始後、状態監視時間及び切替時間を加算した時間より後に障害が発生した場合、バッチ実行管理待機サーバ１１に切替後には既にバッチジョブ１の開始時刻が経過してしまっている。そこで、状態監視間隔＋切替時間より、バッチジョブの実行時間が長い場合には、バッチジョブのバッチ実行管理待機サーバ１１における当該バッチジョブの開始時刻を状態監視間隔＋切替時間＋実行時間とすることにより、バッチジョブが状態監視間隔＋切替時間であっても障害発生後、サーバ切替までの間に実行されるべきバッチジョブの実行漏れを防ぐことができる。
【００７４】
（６）本実施の形態の効果
以上のように、本実施の形態によれば、バッチ実行管理待機サーバ１１の記憶部２０９には、本番サーバのバッチ実行プログラムの動作状況を確認する監視間隔と、バッチ実行管理本番サーバ１０のバッチ実行プログラムの異常時にバッチ実行管理待機サーバ１１に切り替えてバッチ実行プログラム２１３を実行するまでに要する切替時間とを監視用データベースに記憶し、前記本番サーバにおける前記バッチジョブの開始時刻に前記監視間隔及び前記切替時間を加算した時刻を前記待機サーバにおける前記バッチジョブの実行開始時刻とし、本番サーバの異常時に、本番サーバに代わってバッチ実行プログラムを実行する。これにより、共有サーバを導入することなく本番サーバの障害時にバッチジョブを継続させて、安価なシステムでバッチジョブの運用における信頼性を確保することができる。
【００７５】
（７）他の実施の形態
例えば、本明細書のバッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。
【００７６】
また、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１などに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上述したバッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【００７７】
また、上述の実施形態においては、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１に格納されている各種プログラムに基づいて、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１の制御部が本発明の各種機能を実現しているが、かかる例に限定されない。例えば、制御部をバッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１とは別体の他の装置に設けて、当該制御部と協同して各種機能を実現するようにしてもよい。また、バッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１に格納されている各種プログラムをバッチ実行管理本番サーバ１０及びバッチ実行管理待機サーバ１１とは別体の他の装置に設けて、当該プログラムが制御部に呼び出されることにより各種機能を実現するようにしてもよい。
【符号の説明】
【００７８】
１      計算機システム
１０    バッチ実行管理本番サーバ
１１    バッチ実行管理待機サーバ
２００  制御部
２０１  記憶部
２０２  入力部
２０３  表示部
２０４  ネットワークインタフェース部
２０５  バッチ実行プログラム
２０６  バッチ情報データベース
２０８  制御部
２０９  記憶部
２１０  入力部
２１１  表示部
２１２  ネットワークインタフェース部
２１３  バッチ実行プログラム
２１４  バッチ情報データベース
２１５  監視用データベース
２２０  入力部
２２２  表示部
【図１】
2014120123.tif 000003
【図２】
2014120123.tif 000004
【図３】
2014120123.tif 000005
【図４】
2014120123.tif 000006
【図５Ａ】
2014120123.tif 000007
【図５Ｂ】
2014120123.tif 000008
【図５Ｃ】
2014120123.tif 000009
【図６】
2014120123.tif 000010
【図７】
2014120123.tif 000011
【図８】
2014120123.tif 000012
【図９】
2014120123.tif 000013
【図１０】
2014120123.tif 000014
【図１１Ａ】
2014120123.tif 000015
【図１１Ｂ】
2014120123.tif 000016
【図１１Ｃ】
2014120123.tif 000017
【図１２】
2014120123.tif 000018