(57)【要約】【課題】データ量の増減による処理時間の変化に対応することができ、効率の良いジョブの実行制御を行うことができるスケジュール管理システムを提供する。【解決手段】スケジュール管理システムにおいて、ジョブのログ情報に基づいて、各ジョブ単位に処理時間を計算し、各ジョブ単位の過去最長処理時間を計算する実績更新部１０６と、実績更新部１０６で計算されたジョブの過去最長処理時間に基づいて、各ジョブ単位の優先度を変更する判定部１０５と、判定部１０５で変更された各ジョブ単位の優先度に基づいて、ジョブの実行制御を行う実行部１１３とを備えた。【選択図】図１
2014119860.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの実行スケジュールを管理するスケジュール管理システムであって、
前記ジョブのログ情報に基づいて、前記ジョブ毎に処理時間を計算し、前記ジョブ毎の処理時間に基づいて、前記ジョブ毎の過去最長処理時間を更新する実績更新部と、
前記実績更新部で更新された前記ジョブ毎の前記過去最長処理時間に基づいて、前記ジョブ毎の優先度を変更する判定部と、
前記判定部で変更された前記ジョブ毎の前記優先度に基づいて、前記ジョブの実行制御を行う実行部と、を備えたスケジュール管理システム。
【請求項２】
請求項１に記載のスケジュール管理システムにおいて、
前記実績更新部は、前記ジョブのログ情報に基づいて、前記ジョブ毎に異常終了時にリカバリした復旧時間を計算し、前記ジョブ毎の復旧時間に基づいて、前記ジョブ毎の過去最長復旧時間を更新し、
前記判定部は、前記実績更新部で更新された前記ジョブ毎の前記過去最長復旧時間および前記過去最長復旧時間に基づいて、前記各ジョブ単位の前記優先度を変更する、スケジュール管理システム。
【請求項３】
請求項２に記載のスケジュール管理システムにおいて、
前記実績更新部は、前記ジョブ毎に設定された前記ジョブの終了時刻を制御する指定時刻、および現在時刻に基づいて、前記ジョブ毎の残時間を計算し、
前記判定部は、前記実績更新部で計算された前記ジョブ毎の前記残時間に基づいて、前記ジョブ毎の前記優先度を変更する、スケジュール管理システム。
【請求項４】
請求項３に記載のスケジュール管理システムにおいて、
前記判定部は、前記ジョブにトリガーとなる先行ジョブが存在した場合、前記先行ジョブを含めて前記優先度を変更する、スケジュール管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッチ処理などのジョブのスケジュールを管理するスケジュール管理システムに関し、特に、ジョブ実行優先度を動的に制御する技術に関するものである。
【背景技術】
【０００２】
近年、企業におけるバッチ処理によるジョブの実行が増えており、今後、さらにバッチ処理によるジョブの複雑化が進みつつある。
【０００３】
また、従来、ジョブの実行を管理する技術として、例えば、特開２００２−２４４８７０号公報（特許文献１）に記載のものがある。
【０００４】
これは、ジョブの実行やサービスの実行の運用を定めた運用ルールを複数設け、運用ルール毎に実行するための条件を設定し、ログ情報から条件を満たす運用ルールに基づいてサーバを制御するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４４８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のバッチ処理によるジョブの複雑化が進み、データ量の増減による処理時間の変化が無視できない状況になりつつある。
【０００７】
そこで、ジョブのスケジュールの管理が重要となってきており、特許文献１に記載の技術は、ジョブのスケジュール管理におけるジョブ実行優先度を動的に制御するものではなく、ジョブ実行優先度を動的に制御するシステムの登場が望まれていた。
【０００８】
そこで、本発明の目的は、ジョブのスケジュール管理におけるジョブ実行優先度を動的に制御し、データ量の増減による処理時間の変化に対応することができ、効率の良いジョブの実行制御を行うことができるスケジュール管理システムを提供することにある。
【０００９】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１１】
すなわち、代表的なものの概要は、ジョブの実行スケジュールを管理するスケジュール管理システムであって、ジョブのログ情報に基づいて、ジョブ毎に処理時間を計算し、ジョブ毎の処理時間に基づいて、ジョブ毎の過去最長処理時間を更新する実績更新部と、実績更新部で更新されたジョブ毎の過去最長処理時間に基づいて、ジョブ毎の優先度を変更する判定部と、判定部で変更されたジョブ毎の優先度に基づいて、ジョブの実行制御を行う実行部と、を備えたものである。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００１３】
すなわち、代表的なものによって得られる効果は、実績処理時間および実績復旧時間を更新し、実績処理時間および実績復旧時間に基づいて、各ジョブの優先度を動的に更新し、各ジョブの優先度に基づいたジョブの実行制御を行うようにしたので、データ量の増減による処理時間の変化に対応でき、効率の良いジョブの実行制御を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態に係るスケジュール管理システムの構成を示す構成図である。
【図２】本発明の一実施の形態に係るスケジュール管理システムで使用されるスケジュール情報テーブルの項目およびデータ例を示す図である。
【図３】本発明の一実施の形態に係るスケジュール管理システムで使用されるログ情報テーブルの項目およびデータ例を示す図である。
【図４】本発明の一実施の形態に係るスケジュール管理システムで使用される判定条件テーブルの項目およびデータ例を示す図である。
【図５】本発明の一実施の形態に係るスケジュール管理システムで使用されるリカバリ実績テーブルの項目およびデータ例を示す図である。
【図６】本発明の一実施の形態に係るスケジュール管理システムで使用される履歴テーブルの項目およびデータ例を示す図である。
【図７】本発明の一実施の形態に係るスケジュール管理システムの判定部の動作を示すフローチャートである。
【図８】本発明の一実施の形態に係るスケジュール管理システムの実績更新部の動作を示すフローチャートである。
【図９】本発明の一実施の形態に係るスケジュール管理システムの実行部の動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
＜スケジュール管理システムの構成＞
図１により、本発明の一実施の形態に係るスケジュール管理システムの構成について説明する。図１は本発明の一実施の形態に係るスケジュール管理システムの構成を示す構成図である。
【００１７】
図１において、スケジュール管理システムは、ユーザが操作するコンピュータ１０１、ジョブの管理を行うスケジュール管理装置１０４、ジョブの実行処理を行う複数のジョブスケジューラ１１２から構成されている。
【００１８】
また、スケジュール管理装置１０４は、サーバ１０３上で稼動し、ジョブスケジューラ１１２は、サーバ１１１上で稼動している。
【００１９】
コンピュータ１０１とスケジュール管理装置１０４が稼動しているサーバ１０３はネットワーク１０２を介して接続され、スケジュール管理装置１０４とジョブスケジューラ１１２が稼動しているサーバ１１１はネットワーク１１０を介して接続されている。
【００２０】
スケジュール管理装置１０４は、判定部１０５、実績更新部１０６、判定条件テーブル１０７、リカバリ実績テーブル１０８、および履歴テーブル１０９を有している。
【００２１】
ジョブスケジューラ１１２は、実行部１１３、ログ情報テーブル１１４、およびスケジュール情報テーブル１１５を有している。
【００２２】
ユーザは、コンピュータ１０１から、ネットワーク１０２を経由して、スケジュール管理装置１０４の判定条件テーブル１０７へアクセスし、データを初期登録し、ジョブの終了時刻を制御するための指定時刻は任意で登録する。
【００２３】
スケジュール管理装置１０４の判定部１０５は、ジョブスケジューラ１１２がリアルタイムに更新するログ情報テーブル１１４と、判定条件テーブル１０７およびリカバリ実績テーブル１０８の過去実績から、最適なジョブ実行順序を判定し、ジョブスケジューラ１１２のスケジュール情報テーブル１１５の優先度を動的に変更する。
【００２４】
スケジュール管理装置１０４の実績更新部１０６は、ジョブスケジューラ１１２が有するログ情報テーブル１１４から、各ジョブ単位に処理時間を計算し、過去最長処理時間を判定条件テーブル１０７へ登録する。
【００２５】
また、リカバリしたジョブの復旧時間を計算し、過去最長復旧時間をリカバリ実績テーブル１０８へ登録する。
【００２６】
ジョブスケジューラ１１２の実行部１１３は、ログ情報テーブル１１４、スケジュール情報テーブル１１５から、実行可能なジョブの中で最も優先度の高いジョブを実行する。
【００２７】
＜各テーブルの項目およびデータ例＞
次に、図２〜図６により、本発明の一実施の形態に係るスケジュール管理システムで使用される各テーブルの項目およびデータ例について説明する。
【００２８】
図２〜図６は本発明の一実施の形態に係るスケジュール管理システムで使用される各テーブルの項目およびデータ例を示す図であり、図２はスケジュール情報テーブル１１５、図３はログ情報テーブル１１４、図４は判定条件テーブル１０７、図５はリカバリ実績テーブル１０８、図６は履歴テーブル１０９の項目およびデータ例を示している。
【００２９】
図２〜図６においては、それぞれ（ａ）は項目の説明、（ｂ）はデータ例を示している。
【００３０】
スケジュール情報テーブル１１５は、図２（ａ）に示すように、サーバＩＤ、ジョブＩＤ、先行サーバＩＤ、先行ジョブＩＤ、優先度の項目を有している。
【００３１】
サーバＩＤは、ジョブスケジューラ１１２が実装された対象サーバ１１１を特定するための項目である。本実施の形態では、複数のサーバ１１１上でジョブスケジューラ１１２が稼動することを想定している。
【００３２】
ジョブＩＤは、ジョブの識別番号である。サーバＩＤとジョブＩＤの組合せで、キー項目となるためにユニークになる必要がある。
【００３３】
先行サーバＩＤは、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブを実行するためのトリガーとなる先行ジョブがスケジュールされているサーバＩＤである。
【００３４】
先行ジョブＩＤは、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブを実行するためのトリガーとなるジョブＩＤである。
【００３５】
優先度は、ジョブの実行優先度を１から１０までの数値で表したものであり、数値が高いほど優先度が高く、ジョブが優先的に実行される。
【００３６】
スケジュール情報テーブル１１５のデータ例は、図２（ｂ）に示すように、例えば、サーバＩＤは、ｓｅｒｖｅｒ０１〜ｓｅｒｖｅｒ０６などのサーバを特定するＩＤが格納され、ジョブＩＤは、ｊｏｂ０１〜ｊｏｂ０６などのジョブの識別番号が格納される。
【００３７】
先行サーバＩＤおよび先行ジョブＩＤは、トリガーとなる先行ジョブおよび先行ジョブがスケジュールされているサーバがあれば、そのサーバＩＤおよびジョブＩＤが格納され、トリガーとなる先行ジョブおよび先行ジョブがスケジュールされているサーバがなければ、空欄となる。
【００３８】
優先度は、サーバＩＤとジョブＩＤの組合せで特定されるジョブが実行される際の優先度の情報が格納される。
【００３９】
ログ情報テーブル１１４は、図３（ａ）に示すように、サーバＩＤ、ジョブＩＤ、開始時刻、終了時刻、ステータスの項目を有している。
【００４０】
サーバＩＤは、ジョブスケジューラ１１２が実装された対象サーバ１１１を特定するための項目である。
【００４１】
ジョブＩＤは、ジョブの識別番号である。ジョブが異常終了してリカバリを実施した場合は、サーバＩＤとジョブＩＤの組合せで、複数のログ情報が存在する。
【００４２】
開始時刻は、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブの実行を開始した時刻である。
【００４３】
終了時刻は、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブの実行が終了した時刻である。
【００４４】
ステータスは、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブの実行結果を、正常終了または異常終了で表した終了ステータスである。
【００４５】
ログ情報テーブル１１４のデータ例は、図３（ｂ）に示すように、例えば、サーバＩＤは、ｓｅｒｖｅｒ０１〜ｓｅｒｖｅｒ０４などのサーバを特定するＩＤが格納され、ジョブＩＤは、ｊｏｂ０１〜ｊｏｂ０４などのジョブの識別番号が格納される。
【００４６】
開始時刻は、２１：００などのジョブの実行を開始した時刻が格納され、終了時刻は、２１：３０などのジョブの実行が終了した時刻が格納される。
【００４７】
ステータスは、ジョブの実行結果が正常であれば正常終了、ジョブの実行結果が異常であれば異常終了が格納される。
【００４８】
判定条件テーブル１０７は、図４（ａ）に示すように、サーバＩＤ、ジョブＩＤ、指定時刻、実績処理時間の項目を有している。
【００４９】
サーバＩＤは、ジョブスケジューラが実装された対象サーバを特定するための項目である。
【００５０】
ジョブＩＤは、ジョブの識別番号である。サーバＩＤとジョブＩＤの組合せで、キー項目となるためにユニークになる必要がある。
【００５１】
指定時刻は、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブの終了時刻を制御するための時刻である。
【００５２】
実績処理時間は、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブの過去最長処理時間（分）である。
【００５３】
判定条件テーブル１０７のデータ例は、図４（ｂ）に示すように、例えば、サーバＩＤは、ｓｅｒｖｅｒ０１〜ｓｅｒｖｅｒ０４などのサーバを特定するＩＤが格納され、ジョブＩＤは、ｊｏｂ０１〜ｊｏｂ０４などのジョブの識別番号が格納される。
【００５４】
指定時刻は、ユーザにより登録されていれば、２２：３０などの指定時刻が格納され、ユーザにより登録されていなければ、空欄となる。
【００５５】
実績処理時間は、スケジュール管理装置１０４の実績更新部１０６により登録された、４０などの過去最長処理時間が格納される。
【００５６】
リカバリ実績テーブル１０８は、図５（ａ）に示すように、サーバＩＤ、ジョブＩＤ、実績復旧時間の項目を有している。
【００５７】
サーバＩＤは、ジョブスケジューラが実装された対象サーバを特定するための項目である。
【００５８】
ジョブＩＤは、ジョブの識別番号である。サーバＩＤとジョブＩＤの組合せで、ユニークになる必要がある（キー項目）。
【００５９】
実績復旧時間は、当該レコードで指定したサーバＩＤ、ジョブＩＤで示すジョブが異常終了した際に、復旧に要した過去最長復旧時間（分）である。
【００６０】
リカバリ実績テーブル１０８のデータ例は、図５（ｂ）に示すように、例えば、サーバＩＤは、ｓｅｒｖｅｒ０４などのサーバを特定するＩＤが格納され、ジョブＩＤは、ｊｏｂ０４などのジョブの識別番号が格納される。
【００６１】
実績復旧時間は、スケジュール管理装置１０４の実績更新部１０６により登録された、１５などの過去最長復旧時間が格納される。
【００６２】
履歴テーブル１０９は、図６（ａ）に示すように、最終判定時刻、最終実行時刻の項目を有している。
【００６３】
最終判定時刻は、最後にスケジュール管理装置１０４の判定部１０５を実行した時刻である。
【００６４】
最終実行時刻は、最後にジョブスケジューラ１１２の実行部１１３を実行した時刻である。
【００６５】
履歴テーブル１０９のデータ例は、図６（ｂ）に示すように、例えば、最終判定時刻は、最後にスケジュール管理装置１０４の判定部１０５を実行した２１：００などの時刻が格納され、最終実行時刻は、最後にジョブスケジューラ１１２の実行部１１３を実行した２０：３０などの時刻が格納される。
【００６６】
＜スケジュール管理システムの動作＞
次に、図７〜図９により、本発明の一実施の形態に係るスケジュール管理システムの動作について説明する。図７は本発明の一実施の形態に係るスケジュール管理システムの判定部の動作を示すフローチャート、図８は本発明の一実施の形態に係るスケジュール管理システムの実績更新部の動作を示すフローチャート、図９は本発明の一実施の形態に係るスケジュール管理システムの実行部の動作を示すフローチャートである。
【００６７】
スケジュール管理装置１０４の判定部１０５の動作は、全てのジョブが終了するまで、一定のサイクルで繰り返し実行を行う。繰り返し実行のインターバルは、短時間で終了するジョブが多い場合は短く設定し、長時間掛かるジョブが多い場合は長く設定する。
【００６８】
まず、図７に示すように、履歴テーブル１０９から取得した最終判定時刻と、ジョブスケジューラ１１２のログ情報テーブル１１４の終了時刻、ステータスから、前回判定時刻以降に正常終了したジョブのログ情報を取得する（ステップＳ１０１）。
【００６９】
ステップＳ１０１では、前回判定以降に正常終了したジョブのログ情報の取得後に履歴テーブル１０９の最終判定時刻を、サーバ１０３のシステム時刻で更新する。
【００７０】
そして、ステップＳ１０１で取得したログ情報の取得件数を判定し（ステップＳ１０２）、ステップＳ１０２で取得件数が０件より多い場合、後続ジョブとの関連線のパターン数を表す分岐ラインをカウントする変数をインクリメントする（ステップＳ１０３）。
【００７１】
そして、ステップＳ１０１で取得したログ情報のサーバＩＤ、ジョブＩＤが、先行サーバＩＤ、先行ジョブＩＤに設定されているスケジュール情報を、ジョブスケジューラ１１２のスケジュール情報テーブル１１５から全件取得する（ステップＳ１０４）。
【００７２】
そして、ステップＳ１０４で取得したスケジュール情報の取得件数を判定し（ステップＳ１０５）、ステップＳ１０５で取得件数が０件の場合、後続ジョブはないため、ステップＳ１０１に戻り、次のログ情報を取得する。
【００７３】
また、ステップＳ１０５で取得件数が０件より多い場合、ステップＳ１０６〜ステップＳ１０８で、分岐ライン別に実績時間累計と残時間累計を計算する。
【００７４】
まず、ステップＳ１０４で取得したスケジュール情報のサーバＩＤ、ジョブＩＤから、判定条件テーブル１０７の実績処理時間を取得し、分岐ライン別の実績時間累計へ加算する（ステップＳ１０６）。
【００７５】
そして、ステップＳ１０４で取得したスケジュール情報のサーバＩＤ、ジョブＩＤから、判定条件テーブル１０７の指定時刻を取得し、現在時刻からの残時間を計算して、分岐ライン別の残時間累計へ加算する。なお、指定時刻が設定されたジョブがない場合は、残時間累計に最大時間を設定する（ステップＳ１０７）。
【００７６】
そして、ステップＳ１０４で取得したスケジュール情報のサーバＩＤ、ジョブＩＤから、リカバリ実績テーブル１０８の実績復旧時間を取得し、分岐ライン別の実績時間累計へ加算し（ステップＳ１０８）、ステップＳ１０４に戻る。
【００７７】
また、ステップＳ１０２で取得件数が０件の場合、分岐ラインのカウント数を判定し（ステップＳ１０９）、ステップＳ１０９でカウント数が０件の場合、判定部１０５の処理を終了する。
【００７８】
また、ステップＳ１０９でカウント数が０件より多い場合、ステップＳ１１０、ステップＳ１１１で分岐ライン別に優先度設定を行う。
【００７９】
まず、分岐ライン別に計算した残時間累計を判定し、分岐ラインに配置されている各ジョブの優先度を、ジョブスケジューラ１１２のスケジュール情報テーブル１１５へ設定する（ステップＳ１１０）。
【００８０】
残時間累計に対する優先度の設定基準は以下の通りである。
【００８１】
残時間累計≦３０分…優先度へ７を設定
残時間累計＞３０分かつ残時間累計≦１２０分…優先度へ４を設定
残時間累計＞１２０分…優先度へ３を設定
※３０分＝３０分００秒を表す。
【００８２】
そして、分岐ライン別に計算した実績時間累計を判定し、分岐ラインに配置されている各ジョブの優先度を、ジョブスケジューラ１１２のスケジュール情報テーブル１１５へ加算し（ステップＳ１１１）、判定部の処理を終了する。
【００８３】
実績時間累計に対する優先度の設定基準は以下の通りである。
【００８４】
実績時間累計≧１８０分…優先度へ３を加算
実績時間累計＜１８０分かつ実績時間累計≧６０分…優先度へ２を加算
実績時間累計＜６０分…優先度へ１を加算
※１８０分＝１８０分００秒を表す。
【００８５】
また、スケジュール管理装置１０４の実績更新部１０６は、当日の全てのジョブが終了している時刻を想定して、日に１回実行を行う。
【００８６】
まず、図８に示すように、ジョブスケジューラ１１２のログ情報テーブル１１４から、サーバＩＤ、ジョブＩＤ毎にログ情報を取得し（ステップＳ２０１）、ステップＳ２０１で取得したログ情報の取得件数を判定し（ステップＳ２０２）、ステップＳ２０２でサーバＩＤ、ジョブＩＤ毎にログ情報がなくＥＯＦ状態の場合、実績更新部１０６の処理を終了する。
【００８７】
また、ステップＳ２０２でサーバＩＤ、ジョブＩＤ毎にログ情報の取得件数が１件の場合、ステップＳ２０３〜ステップＳ２０６で処理時間の判定と、判定条件テーブルの更新を行う。
【００８８】
まず、ステップＳ２０１で取得したログ情報の開始時刻と終了時刻から、処理時間を計算し（ステップＳ２０３）、ステップＳ２０１で取得したログ情報のサーバＩＤ、ジョブＩＤから、判定条件テーブル１０７の判定条件を取得する（ステップＳ２０４）。
【００８９】
そして、ステップＳ２０３で計算した処理時間と、ステップＳ２０４で取得した判定条件の実績処理時間を比較する（ステップＳ２０５）。
【００９０】
ステップＳ２０５で、処理時間が実績処理時間より大きい場合、ステップＳ２０３で計算した処理時間で、判定条件テーブル１０７の実績処理時間を更新し（ステップＳ２０６）、ステップＳ２０１に戻り、次のサーバＩＤ、ジョブＩＤのログ情報を取得する。
【００９１】
また、ステップＳ２０５で、処理時間が実績処理時間以下の場合、実績処理時間を更新せずにステップＳ２０１に戻り、次のサーバＩＤ、ジョブＩＤのログ情報を取得する。
【００９２】
また、ステップ２０２でサーバＩＤ、ジョブＩＤ毎にログ情報の取得件数が１件より多い場合、ステータスが異常終了のログ情報があることになり、ステップＳ２０１で取得したログ情報の中で、終了時刻が最新かつログ情報が正常終了のステータスになっているかを判定する（ステップＳ２０７）。
【００９３】
ステップＳ２０７で終了時刻が最新かつログ情報が正常終了のステータスになっていない場合、ステップＳ２０１に戻り、次のサーバＩＤ、ジョブＩＤのログ情報を取得する。
【００９４】
ステップＳ２０７で終了時刻が最新かつログ情報が正常終了のステータスになっている場合、ステップＳ２０８〜ステップＳ２１１で復旧時間の判定と、リカバリ実績テーブル１０８の更新を行う。
【００９５】
まず、ステップＳ２０１で取得したログ情報のうち、最も早い終了時刻と、最も遅い開始時刻から、復旧に要した復旧時間を計算し（ステップＳ２０８）、ステップＳ２０１で取得したログ情報のサーバＩＤ、ジョブＩＤから、リカバリ実績テーブル１０８のリカバリ情報を取得する（ステップＳ２０９）。
【００９６】
そして、ステップＳ２０８で計算した復旧時間と、ステップＳ２０９で取得したリカバリ情報の実績復旧時間を比較する（ステップＳ２１０）。
【００９７】
ステップＳ２１０で復旧時間が実績復旧時間より大きい場合、ステップＳ２０８で計算した復旧時間で、リカバリ実績テーブル１０８の実績復旧時間を更新し（ステップＳ２１１）、ステップＳ２０１に戻り、次のサーバＩＤ、ジョブＩＤのログ情報を取得する。
【００９８】
また、ステップＳ２１０で復旧時間が実績復旧時間以下の場合、ステップＳ２０１に戻り、次のサーバＩＤ、ジョブＩＤのログ情報を取得する。
【００９９】
また、ジョブスケジューラ１１２の実行部１１３は、スケジュール管理装置１０４の判定部１０５と同じサイクルで実行を行う。
【０１００】
ただし、判定部１０５のインターバルを長く設定している場合、ジョブが実行可能な状態でも実行されない待ち状態になることが考えられる。その場合、実行部１１３のインターバルを、判定部１０５のインターバルよりも短く設定する。
【０１０１】
まず、図９に示すように、スケジュール管理装置１０４の履歴テーブル１０９から取得した最終実行時刻と、ログ情報テーブル１１４の終了時刻、ステータスから、前回実行時刻以降に正常終了したジョブのログ情報を取得する（ステップＳ３０１）。
【０１０２】
ステップＳ３０１では、前回判定時刻以降に正常終了したジョブのログ情報の取得後にスケジュール管理装置１０４の履歴テーブル１０９の最終実行時刻を、サーバ１１１のシステム時刻で更新する。
【０１０３】
そして、ステップＳ３０１で取得したログ情報の取得件数を判定し（ステップＳ３０２）、ステップＳ３０２で取得件数が０件の場合、実行部１１３の処理を終了する。
【０１０４】
ステップＳ３０２で取得件数が０件より多い場合、ステップＳ３０１で取得したログ情報のサーバＩＤ、ジョブＩＤが、先行サーバＩＤ、先行ジョブＩＤに設定されているスケジュール情報を、スケジュール情報テーブル１１５から全件取得する（ステップＳ３０３）。
【０１０５】
そして、ステップＳ３０３で取得したスケジュール情報の取得件数を判定し（ステップＳ３０４）、ステップＳ３０４で取得件数が０件の場合、実行部１１３の処理を終了する。
【０１０６】
また、ステップＳ３０４で取得件数が０件より多い場合、ステップＳ３０５〜ステップＳ３０８でジョブの実行を行う。
【０１０７】
まず、ジョブスケジューラ１１２から実行可能なジョブ数を取得し（ステップＳ３０５）、ステップＳ３０５で取得したジョブ数を判定し（ステップＳ３０６）、ステップＳ３０６で実行可能なジョブ数が０本の場合、実行部１１３の処理を終了する。
【０１０８】
また、ステップＳ３０６で実行可能なジョブ数が０本より多い場合、ステップＳ３０７、ステップＳ３０８で最も優先度の高いジョブから順次実行を行う。
【０１０９】
まず、ステップＳ３０３で取得したスケジュール情報の優先度を、スケジュール情報テーブル１１５から取得し、最も優先度の高いジョブをジョブスケジューラ１１２へ渡して実行を行い（ステップＳ３０７）、ステップＳ３０５で取得したジョブ数をデクリメントし（ステップＳ３０８）、ステップＳ３０６に戻る。
【０１１０】
以上のように、本実施の形態では、スケジュール管理装置１０４の実績更新部１０６で実績処理時間および実績復旧時間を更新し、スケジュール管理装置１０４の判定部１０５で、スケジュール情報テーブル１１５の各ジョブの優先度を動的に更新し、ジョブスケジューラ１１２の実行部１１３で優先度に基づいたジョブの実行制御を行うようにしたので、データ量の増減による処理時間の変化に対応でき、効率の良いジョブの実行制御を行うことができる。
【０１１１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１１２】
例えば、本実施の形態では、スケジュール管理装置に判定部１０５および実績更新部１０６を設け、ジョブスケジューラ１１２に実行部１１３を設けているが、これに限らず、判定部１０５、実績更新部１０６、および実行部１１３の処理を行うことができれば、他のサーバなどに設けられても良い。
【符号の説明】
【０１１３】
１０１…コンピュータ、１０２…ネットワーク、１０３…サーバ、１０４…スケジュール管理装置、１０５…判定部、１０６…実績更新部、１０７…判定条件テーブル、１０８…リカバリ実績テーブル、１０９…履歴テーブル、１１０…ネットワーク、１１１…サーバ、１１２…ジョブスケジューラ。
【図１】
2014119860.tif 000003
【図２】
2014119860.tif 000004
【図３】
2014119860.tif 000005
【図４】
2014119860.tif 000006
【図５】
2014119860.tif 000007
【図６】
2014119860.tif 000008
【図７】
2014119860.tif 000009
【図８】
2014119860.tif 000010
【図９】
2014119860.tif 000011