(57)【要約】【課題】前日のジョブの完了が遅延した場合であっても、前日のジョブと翌日のジョブとの間で運用日を跨いで実行順序や実行タイミングなどを制御する。【解決手段】コンピュータ上で日次でのバッチジョブの実行を制御するジョブ管理方法であって、前記コンピュータが、（ａ）運用日の切り替わりの際に、運用日が前日であるバッチジョブのうち未だ実行中のものを抽出する工程と、（ｂ）抽出された第１のバッチジョブがある場合に、これに対応する翌日ジョブ制御情報を保持しているか否かを判定する工程と、（ｃ）前記翌日ジョブ制御情報を保持している場合に、前記翌日ジョブ制御情報に設定されている内容に基づいて、運用日が翌日である第２のバッチジョブの実行を制御する工程とを実行する。【選択図】図１
2016018348.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で日次でのバッチジョブの実行を制御するジョブ管理方法であって、
前記コンピュータが、
（ａ）運用日の切り替わりの際に、運用日が前日であるバッチジョブのうち未だ実行中のものを抽出する工程と、
（ｂ）抽出された第１のバッチジョブがある場合に、これに対応する翌日ジョブ制御情報を保持しているか否かを判定する工程と、
（ｃ）前記翌日ジョブ制御情報を保持している場合に、前記翌日ジョブ制御情報に設定されている内容に基づいて、運用日が翌日である第２のバッチジョブの実行を制御する工程と、
を実行する、ジョブ管理方法。
【請求項２】
請求項１に記載のジョブ管理方法において、
前記（ｃ）の工程では、前記第２のバッチジョブの実行の制御として、前記第１のバッチジョブの実行の完了を待って前記第２のバッチジョブの実行を開始する、もしくは、前記第２のバッチジョブのうちの一部のジョブの実行をスキップする、もしくは、前記第２のバッチジョブのうちの一部のジョブの実行開始時間を変更する、のいずれかを行う、ジョブ管理方法。
【請求項３】
請求項１に記載のジョブ管理方法において、
前記（ｃ）の工程では、前記第２のバッチジョブの実行の制御として、前記第２のバッチジョブにおいて第１の追加ジョブを新たに実行する、ジョブ管理方法。
【請求項４】
請求項３に記載のジョブ管理方法において、
前記（ｃ）の工程では、前記第２のバッチジョブの実行の制御として、さらに、前記第１のバッチジョブの実行の完了を待って第２の追加ジョブを新たに実行する、ジョブ管理方法。
【請求項５】
コンピュータ上で日次でのバッチジョブの実行を制御するジョブ管理システムであって、
運用日の切り替わりの際に、運用日が前日であるバッチジョブのうち未だ実行中のものを抽出し、抽出された第１のバッチジョブがある場合に、これに対応する翌日ジョブ制御情報を保持しているか否かを判定し、前記翌日ジョブ制御情報を保持している場合に、前記翌日ジョブ制御情報に設定されている内容に基づいて、運用日が翌日である第２のバッチジョブの実行を制御する翌日ジョブ制御部を有する、ジョブ管理システム。
【請求項６】
日次でのバッチジョブの実行を制御するジョブ管理システムとして機能するよう、コンピュータに処理を実行させるジョブ管理プログラムであって、
前記コンピュータに、
（ａ）運用日の切り替わりの際に、運用日が前日であるバッチジョブのうち未だ実行中のものを抽出する処理と、
（ｂ）抽出された第１のバッチジョブがある場合に、これに対応する翌日ジョブ制御情報を前記コンピュータが保持しているか否かを判定する処理と、
（ｃ）前記翌日ジョブ制御情報を保持している場合に、前記翌日ジョブ制御情報に設定されている内容に基づいて、運用日が翌日である第２のバッチジョブの実行を制御する処理と、
を実行させる、ジョブ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム上で稼働するジョブの管理技術に関し、特に、日跨がりで運用日の異なるジョブの実行を制御するジョブ管理方法、ジョブ管理システム、およびジョブ管理プログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
コンピュータシステム上で稼働するバッチジョブの実行を制御するため、ジョブ管理システムが用いられる場合がある。ジョブ管理システムでは、一般的には、例えば、実行順序が設定された複数のジョブからなるジョブネットについて、各ジョブの前後関係に基づいて実行を制御する。このとき、例えば、日次で実行されるジョブネットについて、運用日が跨ってしまった場合でも、運用日毎にジョブネット内のジョブの実行を制御することができる。すなわち、前日のジョブがまだ動いている状態でも翌日のジョブの実行を行うことが可能である。
【０００３】
日跨がりの場合も含む、ジョブの実行の制御技術に関して、例えば、特開平１１−２１２７７２号公報（特許文献１）には、状況に応じてジョブの構成を柔軟に変更可能とする技術が記載されている。ここでは、予めジョブ管理ファイルに記憶されたジョブネットワークに従ってジョブ管理テーブルを生成し、これに従ってジョブをオペレーティングシステムに投入するとともに、ジョブの実行状況等をオペレーティングシステムから取得してジョブ管理テーブルに反映する。さらに、システム管理者等によって入力された変更データに従ってジョブネットワーク及びジョブ管理テーブルを変更し、変更後のジョブ管理テーブルに従ってジョブをオペレーティングシステムに投入する。
【０００４】
また、特許第４７２２８９６号公報（特許文献２）には、複数のジョブが混在するバッチ処理において、事前準備を営業日に実施できるようにスケジュール日を設定する技術が記載されている。ここでは、ネットワークマスタデータ、スケジュールマスタデータを用いて基準日を算出し、この基準日が休業日に該当する場合には基準日を移動させる。さらに、この基準日に基づいて、営業日において準備ネットワークを実行する準備日を設定し、この準備日において、準備ネットワークにより、準備対象日における本番ネットワークの予約ファイルを生成し、本番日において、予約ファイルを用いてキューイングして本番ネットワークを実行する。
【０００５】
また、特開平１０−３９９４１号公報（特許文献３）には、伝送データを処理する日次処理システムにおいて、１日に２日分の日次処理を行うことを可能にする技術が記載されている。ここでは、日次処理システムで日付変更後に持ち越した場合に、管理テーブルにより、伝送データの処理対象日付、処理状況を管理する。日付変更後に前日分の処理要求があったとき、管理テーブルを参照し、未処理であった場合に処理を行う一方、前日分が未処理の状態にあるにもかかわらず、当日分の処理要求があった場合には、前日分の処理を処理済みと見なして当日分の処理を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２１２７７２号公報
【特許文献２】特許第４７２２８９６号公報
【特許文献３】特開平１０−３９９４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
日次で実行されるバッチジョブにおいて、一般的なジョブ管理システムでは、運用日を跨いで前後関係を設定することができないことから、運用日を跨いで実行順序等を制御するのは現実には困難である。例えば、データ量が膨大になった等の理由により、前日のジョブがまだ動いている状態で翌日のジョブの実行タイミングとなった場合、特に何の手当も要さずに翌日のジョブを同時に稼働させても問題がない場合もある。一方で、前日のジョブの完了を待ってから翌日のジョブを開始しなければデータの不整合などが生じるような場合や、翌日のジョブの一部について実行時間を変更したりキャンセルしたりする必要がある場合もあるなど、運用は非常に煩雑となる。
【０００８】
この点、例えば、特許文献１に記載された技術では、ジョブの構成を柔軟に変更することができるものの、変更の判断自体は人手により行われるものである。従って、例えば、前日のジョブが運用日を跨いでしまうというイベントをトリガとして動的にジョブの構成を変更するということはできない。
【０００９】
また、特許文献２に記載された技術では、バッチジョブについて運用日を跨いだ管理がなされているが、ここでは、単に準備のためのジョブの実行が休業日にあたらないように設定するものである。また、特許文献３に記載された技術においても、運用日を跨いだ管理がなされているが、ここでは、翌日において前日のデータもしくは翌日のデータのいずれに基づく処理要求があった場合でも処理を行うことを可能とするものである。これらは、いずれも前日のジョブと翌日のジョブとの間での運用日を跨いだ実行順序の制御を行うものではない。
【００１０】
一般的にも、日次のバッチジョブは、運用日が切り替わる時間（例えば、朝６：００など）までに完了することを前提として設計される場合が多く、翌日のジョブとの間では何らの制御も行なっていないシステムも多い。業務上特に必要がある場合には、例えば、トリガファイルなどを用いて実行順序や実行タイミングを制御することが行われるが、アドホックな対応に終始し、上述したような翌日のジョブにおける種々の実行パターンについて統合的な管理を行うものとはなっていない。
【００１１】
そこで本発明の目的は、前日のジョブの完了が遅延した場合であっても、前日のジョブと翌日のジョブとの間で運用日を跨いで実行順序や実行タイミングなどを制御するジョブ管理方法、ジョブ管理システム、およびジョブ管理プログラムを提供することにある。
【００１２】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１４】
本発明の代表的な実施の形態によるジョブ管理方法は、コンピュータ上で日次でのバッチジョブの実行を制御するジョブ管理方法であって、前記コンピュータが、（ａ）運用日の切り替わりの際に、運用日が前日であるバッチジョブのうち未だ実行中のものを抽出する工程と、（ｂ）抽出された第１のバッチジョブがある場合に、これに対応する翌日ジョブ制御情報を保持しているか否かを判定する工程と、（ｃ）前記翌日ジョブ制御情報を保持している場合に、前記翌日ジョブ制御情報に設定されている内容に基づいて、運用日が翌日である第２のバッチジョブの実行を制御する工程と、を実行するものである。
【００１５】
また、本発明は、上記のジョブ管理方法を実装するジョブ管理システム、および当該ジョブ管理システムとして機能するよう、コンピュータに処理を実行させるジョブ管理プログラムにも適用することができる。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１７】
すなわち、本発明の代表的な実施の形態によれば、前日のジョブの完了が遅延した場合であっても、前日のジョブと翌日のジョブとの間で運用日を跨いで実行順序や実行タイミングなどを制御することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態におけるバッチジョブの実行を制御する際の処理の流れの例について概要を示したフローチャートである。
【図２】本発明の一実施の形態における翌日のバッチジョブの実行を制御する際のパターンの例について概要を示した図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
本発明の一実施の形態であるジョブ管理方法は、コンピュータシステム上で実行される日次のバッチジョブについて、運用日の切り替わりタイミングで実行される制御機能により、前日のジョブの完了が遅延している場合に、前日のジョブと翌日のジョブとの間で実行順序や実行タイミングを制御するものである。当該制御には、後述するように、例えば、前日のジョブが完了するのを待って翌日のジョブを開始するよう同期をとったり、翌日のジョブの一部のスキップ（実行しない）、実行開始時間の変更などが含まれる。また、通常時には稼働しない特殊なジョブを追加的に実行するようスケジューリングすることも含まれる。
【００２１】
なお、本実施の形態におけるバッチジョブは、実行順序が設定された複数のジョブからなるジョブネットであってもよいし、単一のジョブであってもよい。また、上記の制御機能は、バッチジョブが実行されるコンピュータシステム上で稼働するジョブやプログラムなどのソフトウェアにより実装される。
【００２２】
＜処理フロー＞
図１は、上記の制御機能により、バッチジョブの実行を制御する際の処理の流れの例について概要を示したフローチャートである。制御機能は、常時起動していてもよいし、運用日が切り替わるタイミング、もしくはこれより所定の時間手前のタイミングで起動するようにしてもよい。制御機能は、まず、前日のバッチジョブの遅延の有無をチェックするタイミング（チェック時間）が到来しているか否かを判定する（Ｓ０１）。このタイミングは、例えば、運用日が切り替わるタイミング、もしくはこれより所定の時間手前に設定されている。チェック時間が到来していない場合は、ステップＳ０１に戻って、チェック時間が到来するまで判定を繰り返す。
【００２３】
ステップＳ０１でチェック時間が到来した場合は、現時点で実行中のバッチジョブの情報を取得する（Ｓ０２）。現時点で実行中のバッチジョブは、運用日を跨いで実行される可能性が高いものであり、翌日のバッチジョブに対して実行の制御が必要と想定されるものである。バッチジョブの情報には、ジョブＩＤなどのバッチジョブを特定する情報に加えて、例えば、処理済みステップ、処理が必要な残データ数などの実行状況や遅延状況に係る情報が含まれていてもよい。その後、実行中の各ジョブについて処理を繰り返すループ処理を開始する（Ｓ０３〜Ｓ０７）。
【００２４】
ループ処理では、まず、対象のバッチジョブに対して予め設定されている翌日ジョブ制御情報を取得する（Ｓ０４）。翌日ジョブ制御情報とは、各バッチジョブに対して、運用日が切り替わるタイミングまで実行が遅延した場合に、翌日のバッチジョブに対して何らかの制御を行う必要があるものについて、その制御内容を予め定義した情報であり、例えば、バッチジョブが実行されるコンピュータシステム上にファイル等の形式で保持されている。
【００２５】
次に、対象のバッチジョブに対応する翌日ジョブ制御情報が取得できたか否か（存在するか否か）を判定する（Ｓ０５）。取得できなかった（存在しない）場合は、次の実行中のジョブに移ってループ処理を継続する（Ｓ０７、Ｓ０３）。一方、取得できた（存在した）場合は、当該翌日ジョブ制御情報に基づいて、翌日のバッチジョブの運用制御に係る設定を変更し（Ｓ０６）、その後、次の実行中のジョブに移ってループ処理を継続する（Ｓ０７、Ｓ０３）。翌日のバッチジョブの設定変更の内容については、詳細は後述するが、例えば、ジョブの起動時間の変更やキャンセル、特殊なジョブの実行のスケジューリングなどが含まれる。ループ処理で全ての実行中のジョブについて処理を完了すると、制御機能を終了する。
【００２６】
＜制御パターン＞
図２は、翌日のバッチジョブの実行を制御する際のパターンの例について概要を示した図である。図中で、ジョブ管理システム１は、バッチジョブが実行されるコンピュータシステム上で、各バッチジョブの実行を制御、管理する機能を有するソフトウェアにより実装されるシステムであり、その中に、バッチジョブの実行が運用日が切り替わるタイミングまで遅延した場合に翌日のジョブの実行を制御する機能を有する翌日ジョブ制御部１０を有していることを示している。
【００２７】
図中では、ジョブ管理システム１の管理下で、運用日Ｎのバッチジョブと、翌日の運用日Ｎ＋１のバッチジョブが左から右への時系列で順次実行されることを模式的に示している。さらに、運用日ＮとＮ＋１の切り替わりのタイミングを跨いで、翌日ジョブ制御部１０が実行され、運用日Ｎのバッチジョブがチェック時間１１においてまだ実行中である場合に、運用日Ｎ＋１のバッチジョブの実行を制御することを模式的に示している。なお、図２の例では、チェック時間１１の到来後に翌日ジョブ制御部１０が処理を実行するように示されているが、翌日ジョブ制御部１０の実行開始後にチェック時間１１が到来するよう設定されていてもよい。
【００２８】
図２の例では、翌日ジョブ制御部１０が翌日のジョブを制御する際のパターンとして（１）〜（４）の４種類を例示している。（１）〜（４）の制御の内容については後述する。なお、これらの制御や設定変更を行う具体的な方法は、ジョブ管理システム１の仕様に従うことになる。例えば、翌日ジョブ制御部１０がジョブ管理システム１により提供されているＡＰＩ（Application Programming Interface）を呼び出して行う場合や、定義ファイル、設定ファイル、データベース等の登録内容を変更して行う場合などが想定されるが、特に限定されない。
【００２９】
（１）同期制御
運用日ＮのジョブＡ（例えば運用日Ｎの最後のジョブ）がチェック時間１１までに終了しない場合に、運用日Ｎ＋１のジョブＢ（例えばサービス開始のジョブ）の実行を同時並行的に行うことができず、開始を遅らせなければならない場合がある。このとき、ジョブＡの終了を待って、その終了をトリガとしてジョブＢ（すなわち、運用日Ｎ＋１のバッチジョブ）の実行を開始するよう翌日ジョブ制御部１０が設定を変更する。例えば、ジョブＢが運用日Ｎ＋１の所定の時間に自動的に実行されるように設定されている場合、当該設定を解除するとともに、翌日ジョブ制御部１０が、ジョブＡの終了を監視し、終了を検知したことをトリガとしてジョブＢを起動する。
【００３０】
（２）特殊ジョブの追加起動
運用日ＮのジョブＣ（例えば運用日Ｎの最後のジョブ）がチェック時間１１までに終了しない場合に、例えば、上記の（１）の同期制御を行う場合、ジョブＣが終了するまで、他のコンピュータシステム等がアクセスしてきた際に「システム調整中」等のメッセージを画面表示させるようにし、ジョブＣが終了して運用日Ｎ＋１のバッチジョブが開始すると当該メッセージの表示を解除して通常状態に戻すという対応をとる場合がある。このとき、翌日ジョブ制御部１０は、ジョブＣの実行の遅延を検知したタイミングで、画面表示を「システム調整中」等に切り替えるための特殊なジョブＤを新たに追加実行する。また、前日のジョブＣが終了したタイミングで、画面表示を通常状態に戻すための特殊なジョブＥを新たに追加実行するようにしてもよい。
【００３１】
（３）一部のジョブのキャンセル（スキップ）
運用日ＮのジョブＦ（例えば運用日Ｎの最後のジョブ）がチェック時間１１までに終了しない場合に、運用日Ｎ＋１のジョブネット中のジョブのうち、例えば、バックアップ処理などの付随的なものであるジョブＧについては、無理に処理することなく、運用日Ｎ＋１についてはキャンセルやスキップして、次のジョブの実行に移ればよいという場合がある。このとき、翌日ジョブ制御部１０は、ジョブＦの実行の遅延を検知したタイミングで、ジョブＧの実行をキャンセルやスキップするよう設定を変更する。
【００３２】
（４）ジョブの実行時間の変更
運用日ＮのジョブＨ（例えば運用日Ｎの最後のジョブ）がチェック時間１１までに終了しない場合に、運用日Ｎ＋１のジョブネット中のジョブのうち、例えば、バックアップ処理などの付随的なものであるジョブＩについては、無理に処理することなく、アクセスの多い時間帯を避けて実行時間を変更すればよいという場合がある。このとき、翌日ジョブ制御部１０は、ジョブＨの実行の遅延を検知したタイミングで、ジョブＩの実行時間を、アクセスが少なくリソースに余裕のある時間帯に変更してジョブＩ’として実行するよう設定を変更する。
【００３３】
以上に説明したように、本発明の一実施の形態であるジョブ管理方法によれば、コンピュータシステム上で実行される日次のバッチジョブについて、運用日の切り替わりタイミングで実行される翌日ジョブ制御部１０により、前日のジョブの完了が遅延している場合に、前日のジョブと翌日のジョブとの間で実行順序や実行タイミングを制御することが可能である。これにより、前日のバッチジョブの実行時間が突発的に長くなって運用日を跨ってしまうような場合でも、適切に翌日のバッチジョブを実行することができる。
【００３４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【産業上の利用可能性】
【００３５】
本発明は、日跨がりで運用日の異なるジョブの実行を制御するジョブ管理方法、ジョブ管理システム、およびジョブ管理プログラムに利用可能である。
【符号の説明】
【００３６】
１…ジョブ管理システム、１０…翌日ジョブ制御部、１１…チェック時間
【図１】
2016018348.tif 000003
【図２】
2016018348.tif 000004