(57)【要約】【課題】不特定タイミングや複数回処理の実行が必要となるインタフェース処理において、前日のジョブの処理にエラーが発生した場合にも、当日にファイルの不当な飛び越し処理をすることのなく、ファイルの処理順序を担保する。【解決手段】ジョブ管理方法は、情報処理装置上で、ジョブのステータスにより、ジョブの実行を管理するジョブ管理方法であって、ジョブを実行する世代と、ジョブを実行する期間が周期的に定義されており、エラーが発生したジョブを検知するステップと、エラーが発生したジョブの実行された期間の次の期間において実行される世代のジョブの情報を取得し、次の期間において実行される世代のジョブに対して保留属性を設定するステップと、保留属性が設定されたジョブに対して保留ステータスとするステップとからなる。【選択図】  図５
2019067287.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置上で、ジョブのステータスにより、ジョブの実行を管理するジョブ管理方法であって、
ジョブを実行する世代と、ジョブを実行する期間が周期的に定義されており、
エラーが発生したジョブを検知するステップと、
前記エラーが発生したジョブの実行された期間の次の期間において実行される世代のジョブの情報を取得し、次の期間において実行される世代のジョブに対して保留属性を設定するステップと、
保留属性が設定されたジョブに対して保留ステータスとするステップとからなることを特徴とするジョブ管理方法。
【請求項２】
さらに、あるジョブの前世代のジョブの終了ステータスを判断し、
前世代のジョブの終了ステータスが異常終了のときには、そのジョブのステータスを保留ステータスとすることを特徴とする請求項１記載のジョブ管理方法。
【請求項３】
情報処理装置上で、ジョブの実行をおこなうジョブ実行部と、
ジョブの実行を管理するジョブ実行管理部からなるジョブ管理装置であって、
前記ジョブ実行管理部は、
ジョブの実行世代を管理する世代管理部と、
ジョブを実行する期間が周期的に定義された場合のジョブのスケジュールによる実行を管理するスケジュール管理部と、
ジョブのエラーログを検知するエラーログ検知部と、
ジョブの対象となるファイルを検知するファイル検知部と、
ジョブの実効ステータスを制御するステータス制御部とを有し、
前記エラーログ検知部により、エラーが発生したジョブを検知し、
前記ステータス制御部は、前記エラーが発生したジョブの実行された期間の次の期間において実行される世代のジョブの情報を取得し、次の期間において実行される世代のジョブに対して保留属性を設定し、
前記ステータス制御部は、保留属性が設定されたジョブに対してそのジョブのステータスを保留ステータスとすることを特徴とするジョブ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ管理方法、および、ジョブ管理装置に係り、特に、ファイルの処理順序に整合性が求められるジョブのジョブ管理に用いて好適なジョブ管理方法、および、ジョブ管理装置に関する。
【背景技術】
【０００２】
システム間インタフェース処理のバッチジョブの実行を制御するにあたって、ジョブ管理システムが用いられる場合がある。
【０００３】
ジョブの実行の制御技術に関して、例えば、特許文献１がある。特許文献１に記載されたジョブ管理システムにおいては、前日のジョブの完了が遅延した場合であっても、前日のジョブと翌日のジョブとの間で運用日をまたいで実行順序や実行タイミングなどを制御している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１８３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
システム間インタフェース処理を実行する際には、対象データの存在をトリガー（以下、「ファイル監視起動」という）として処理を実施する必要があるときに、そのデータの処理順序を担保する要件は必須になることがある。例えば、会計処理などで、トランザクションにある仕分伝票ファイルが他のサーバから送られてきたときに、受信したサーバ側で、会計マスタファイルに書き込むジョブなどが考えられる。
【０００６】
一方、データの静止点確保の要件からインタフェース処理のオフライン時間を設定するなど、ジョブの実行タイミングを制御する必要もある。
【０００７】
ジョブの実行タイミングという要件を満たそうとする場合、ジョブをスケジュール起動とする必要があるが、その際には、前日の処理でエラーとなった際にも、翌日にジョブが起動してしまう事象が発生することになる。このときには、ファイルの処理順序を担保するという要件を満たすことができない結果となる。
【０００８】
システム間インタフェース処理の特性上、不特定のタイミングに複数回の処理実行が必要であるケースが多く、その際には、ファイル監視起動による実行制御をすることになる。
【０００９】
例えば、複数のファイルを検知し処理が実行された際には、先ずは、実行される分の世代が作成され、順次、その世代毎に処理が順次実行される。この場合に、仮に、初回の世代で処理エラーとなった場合には、２世代目以降の処理のステータスは、前の処理が正常終了されていないことから、実行待ち（待機）状態となり、インタフェースの処理順序性は保たれる。
【００１０】
また、データの静止点の観点から、他システムとの連携時間を制限するケースも多く、その際には、１日の単位の中で、処理実行する時間帯を設定した上で、毎日のスケジュール起動による制御をすることになる。例えば、８：００〜２４：００のみの処理実行時間帯とし、その上で日次起動とする設定である。
【００１１】
例えば、日次の起動の際に、前回世代の処理ステータスのエラー有無を参照し、起動の可否を判断することは一般的であり、このスケジュール起動による制御によって、インタフェースの処理順序性は保たれる。
【００１２】
しかしながら、上記のファイル監視起動による実行制御とスケジュール起動による制御の二つの設定を組み合わせた場合には、必ずしも順序性が保たれることは保障できないという問題点がある。
【００１３】
スケジュール起動時の起動可否の判断は、前回世代の処理ステータスのエラー有無のみを確認するため、前日に複数世代が作成されており、その最後の世代が実行待ち状態の場合には、当日の起動判断結果としては、エラーステータスではないため、起動可との判断により処理が実行されることとなる。
【００１４】
この点、例えば、特許文献１に記載された技術では、前日のジョブの完了が遅延した場合であっても、前日のジョブと翌日のジョブとの間で運用日をまたいで実行順序や実行タイミングなどを制御しているが、エラー発生時や、複数処理起動の条件の場合については有効でない。
【００１５】
本発明の目的は、不特定タイミングや複数回処理の実行が必要となるインタフェース処理において、前日のジョブの処理にエラーが発生した場合にも、当日にファイルの不当な飛び越し処理をすることなく、ファイルの処理順序を担保するジョブ管理方法を提供することにある。
【課題を解決するための手段】
【００１６】
本発明のジョブ管理方法の構成は、好ましくは、情報処理装置上で、ジョブのステータスにより、ジョブの実行を管理するジョブ管理方法であって、ジョブを実行する世代と、ジョブを実行する期間が周期的に定義されており、エラーが発生したジョブを検知するステップと、エラーが発生したジョブの実行された期間の次の期間において実行される世代のジョブの情報を取得し、次の期間において実行される世代のジョブに対して保留属性を設定するステップと、保留属性が設定されたジョブに対して保留ステータスとするステップとからなるようにしたものである。
【発明の効果】
【００１７】
本発明によれば、不特定タイミングや複数回処理の実行が必要となるインタフェース処理において、前日のジョブの処理にエラーが発生した場合にも、当日にファイルの不当な飛び越し処理をすることなく、ファイルの処理順序を担保することができる。
【図面の簡単な説明】
【００１８】
【図１】ジョブ管理装置の構成図である。
【図２】ジョブ状態遷移図である。
【図３Ａ】ジョブ実行管理処理を示すフローチャートである（その一）。
【図３Ｂ】ジョブ実行管理処理を示すフローチャートである（その二）。
【図４】ジョブ実行状態管理処理を示すフローチャートである。
【図５】バッジ処理によるジョブ実行のスケジュールと世代のモデルの一例を説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態を、図１ないし図５を用いて説明する。
【００２０】
先ず、図１を用いて一実施形態に係るジョブ管理装置の構成について説明する。
ジョブ管理装置１００は、機能構成として、図１に示されるように、ジョブ実行管理部１１０、ジョブ実行部１２０から構成される。
【００２１】
ジョブ実行部１２０は、ジョブ実行管理部１１０の指示に基づき、ジョブ情報１３０に係るジョブを実行する機能部である。
【００２２】
ジョブ実行管理部１１０は、ジョブ情報１３０、カレンダ情報１４０、ユーザコマンド１５０に基づいて、ジョブの実行を管理し、ジョブ実行部１２０にジョブの実行の指示をおこなう機能部である。
ジョブ実行管理部１１０は、世代管理部１１１、スケジュール管理部１１２、エラーログ検知部１１３、ファイル検知部１１４、ステータス制御部１１５のサブコンポーネントからなる。
【００２３】
世代管理部１１１は、ジョブの実行世代を管理する機能部である。ジョブの実行世代とは、ジョブの実行順序を制御するためのファクタの一つであり、第Ｎ（Ｎは、１以上の整数）世代に属するジョブの次に、第Ｎ＋１世代に属するジョブを実行するようにするスケジュール管理部１１２は、カレンダ情報１４０に基づき、ジョブの実行順序を制御する。カレンダ情報１４０には、あるジョブが何日の何時何分何秒に実行される、あるジョブが毎日の何時何分何秒に実行されるなどが記載されている。エラーログ検知部１１３は、ジョブ実行部１２０が出力するエラーログを検知する機能部である。ファイル検知部１１４は、ジョブの入力／出力、中間ファイルなどの対象ジョブの存在を検知する機能部である。ステータス制御部１１５は、ジョブステータスを制御する機能部である。
【００２４】
ジョブ管理装置１００は、一般的なサーバ装置、ＰＣなどの情報処理装置により、実現される。各機能部は、プログラムとしてインストールされ、そのプログラムは、ＨＤＤ（Hard Disk Drive）、ＳＤＤ（Solid State Drive）などの補助記憶装置に格納され、実行時には、主記憶装置上にロードされて、ＣＰＵ（Central Processing Unit：中央処理装置）により実行されるのが一般的である。
【００２５】
次に、図２を用いてジョブステータスについて説明する。
本実施形態のジョブ管理におけるジョブステータスとしては、図２に示されるように、実行ＳＴ００、正常終了ＳＴ０１、異常終了ＳＴ０２、保留ＳＴ０３、開始時刻待ちＳＴ０４、未起動終了ＳＴ０５のステータスがある。
【００２６】
実行ＳＴ００は、そのジョブが実行されている状態であり、正常終了ＳＴ０１はそれぞれ、そのジョブが正常に終わった場合、異常終了ＳＴ０２は、ジョブが正常に終わった場合に終わった場合の状態である。保留ＳＴ０３は、そのジョブの実行が保留にされている状態である。開始時刻待ちＳＴ０４は、保留ＳＴ０３の状態が解除されて、開始時刻まで実行されるのを待っている状態である。未起動終了ＳＴ０５は、保留ＳＴ０３、開始時刻待ちＳＴ０４の状態から起動せずに、ジョブが終了した状態である。
【００２７】
次に、図３Ａないし図５を用いてジョブ管理の処理を具体例に基づいて説明する。
ジョブが開始された際には、ジョブ実行管理部１１０は、自世代のジョブの保留属性の設定有無を取得する（Ｓ１０１）。そして、保留属性が設定されている場合には（Ｓ１０２：有）、自世代のステータスを保留ステータスに変更する（Ｓ１０３）。このとき、保留ステータスが解除されるまで、ジョブ実行は抑止される。次に、エラー時のリカバリ対応として、システム管理者によるＳ１０３にて保留ステータスが解除された場合で、保留ステータスから開始時刻待ちステータスに遷移したとき（Ｓ１０４）、一定時刻経過後に、Ｓ１０５に行く。保留属性が設定されていない場合にも（Ｓ１０２：無）、Ｓ１０５に行く。
【００２８】
次に、当該ジョブの前世代のステータスを取得する（Ｓ１０５）。当該ジョブの前世代のステータスが、異常終了ステータスである場合には（Ｓ１０６：異常終了）、自世代のステータスを保留ステータスに変更する（Ｓ１０７）。このとき、システム管理者による保留ステータスが解除されるまで、ジョブ実行は抑止される
次に、エラー時のリカバリ対応として、保留ステータスが解除された場合で保留ステータスから開始時刻待ちステータスに遷移したとき（Ｓ１０８）、一定時刻経過後に、Ｓ１０９に行く。前世代のステータスが、異常ステータス以外の場合にも、Ｓ１０９に行く。
【００２９】
次に、ジョブ実行管理部１１０のファイル検知部１１４は、ファイル監視をし（Ｓ１０９）、対象ファイルを検知したときには（Ｓ１１０：有）、Ｓ１１１に行き、対象ファイルを検知しないときには（Ｓ１１０：無）、ファイル監視を継続する。
【００３０】
次に、当該ジョブにて実装されている処理を実行する（Ｓ１１１）。
【００３１】
そして、そのジョブが異常終了したときには（Ｓ１１２：異常終了）、ジョブ実行エラーのエラーログを出力することとする（Ｓ１１３）。
【００３２】
次に、図４を用いてジョブ実行状態管理処理について説明する。
先ず、ジョブ実行管理部１１０のエラーログ検知部１１３は、常時エラーログを監視する（Ｓ２０１）。
【００３３】
そして、エラーログを検知した際には（Ｓ２０２：有）、該当のジョブＩＤなどのエラー対象ジョブ情報を取得する（Ｓ２０２）。次に、取得したジョブＩＤ情報に基づいて、翌日実行世代の情報を取得する（Ｓ２０４）。
【００３４】
そして、取得した対象ジョブの翌日の実行世代のジョブ情報を用いて、翌日の実行世代のジョブに対して、保留属性を設定する（Ｓ２０５）。
【００３５】
Ｓ２０４の実行により、ジョブエラーが発生した時点で、当該ジョブの翌日実行世代に対して保留属性が設定される。
【００３６】
このことにより、図３ＡのフローチャートのＳ１０２において、実行しようとするジョブが保留属性有りの判断となるため、翌日実施のジョブが実行されることはなく、ファイルの実行の順序性が保たれることとなる（具体例は、後述）。
【００３７】
次に、図５を用いてバッジ処理によるジョブ実行のスケジュールと世代のモデルの一例を説明する。
ジョブＡは、毎日８：００からのスケジュール起動であり、ファイル監視時間帯を８：００〜２４：００としたジョブであるとする。
【００３８】
運用日Ｎ日のファイル監視時間帯にて、複数ファイル検知した場合、ファイル数分の実行世代を作成し、順次処理を実施する。
【００３９】
ここで、ファイルＸを実行対象とした運用日Ｎ日の世代を、世代Ｎ＿０１、ファイルＹを実行対象とした運用日Ｎ日の世代を、世代Ｎ＿０２、ファイルＺを実行対象とした運用日Ｎ日の世代を、世代Ｎ＿０３とする。そして、ジョブＡにおいては、ファイルの処理順序に論理的関係性があり、ファイルＸ→ファイルＹ→ファイルＺの順番に処理されなければならないとする
世代Ｎ＿０１のジョブにおいて、エラーとなった場合、前世代である世代Ｎ＿０１のジョブがエラーステータスであることより（Ｓ１０６）、世代Ｎ＿０１の次世代であるＮ＿０２のジョブが保留ステータスとなり実行は抑止される（Ｓ１０７）。
【００４０】
また、世代Ｎ＿０１のジョブにおいて、エラーとなった場合、処理対象ファイルＸはアーカイブフォルダに移動することとし、この運用によりリカバリ手順の軽減を図ることとする。
【００４１】
本実施形態の処理を実行しない場合、運用日Ｎ＋１日の世代Ｎ＋１＿０１のジョブは、起動待ちステータスのままであるため、そのまま運用日Ｎ＋１日を迎えると、Ｎ＋１日の８：００にてスケジュール起動により、後続処理に遷移することとなる。
【００４２】
また、前世代である前日の世代Ｎ＿０３のジョブのステータスを判断するため、異常終了以外のステータスによりジョブが実行される。
【００４３】
このことで、ファイルＸのエラーファイルはアーカイブ処理が実施され、処理対象フォルダには存在していないことから、世代Ｎ＋１＿０１のジョブは、ファイルＹを処理対象と判断し、処理が実行される。このように、本実施形態の処理を実行しない場合には、ファイルＹの追い越し処理が実行され、ファイル処理順序の整合性が保たれないこととなる。
【００４４】
一方、本願の処理を実行した場合、世代Ｎ＿０１のジョブにてエラーとなった場合、即座に、予め予定されている運用日Ｎ＋１日の世代Ｎ＋１＿０１のジョブは、保留属性が設定される（Ｓ２０５）。
【００４５】
そして、運用日Ｎ＋１を迎えた際、Ｎ＋１日の８：００にてスケジュール起動により、自世代は保留属性ありとの判断により（Ｓ１０２）、ジョブ実行が抑制される（Ｓ１０３、Ｓ１０４）。
【００４６】
このように、本実施形態によれば、運用日Ｎ＋１日のジョブについて、ファイルＹの追い越し処理が抑止することが可能となり、ファイル処理順序の整合性が保たれることとなる。
【図１】
2019067287.tif 000003
【図２】
2019067287.tif 000004
【図３Ａ】
2019067287.tif 000005
【図３Ｂ】
2019067287.tif 000006
【図４】
2019067287.tif 000007
【図５】
2019067287.tif 000008