JP6342070B2 - ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム - Google Patents

ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム Download PDF

Info

Publication number
JP6342070B2
JP6342070B2 JP2017519017A JP2017519017A JP6342070B2 JP 6342070 B2 JP6342070 B2 JP 6342070B2 JP 2017519017 A JP2017519017 A JP 2017519017A JP 2017519017 A JP2017519017 A JP 2017519017A JP 6342070 B2 JP6342070 B2 JP 6342070B2
Authority
JP
Japan
Prior art keywords
job
execution
definition information
executed
retry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017519017A
Other languages
English (en)
Other versions
JPWO2017046939A1 (ja
Inventor
雄規 藤井
雄規 藤井
秀哉 柴田
秀哉 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2017046939A1 publication Critical patent/JPWO2017046939A1/ja
Application granted granted Critical
Publication of JP6342070B2 publication Critical patent/JP6342070B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Description

本発明は、ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラムに関するものである。
ユーザが事前に定義した順序に従って複数の処理を実行するバッチ処理を周期的又は不定期に繰り返し実行するためのジョブ管理技術がある。バッチ処理は、「ジョブ」と呼ばれる。ジョブを構成する複数の処理の1つ1つは、「ジョブステップ」と呼ばれる。
あるジョブ管理技術(例えば、特許文献1参照)では、毎回実行する必要がないジョブステップをスキップするために、ユーザが、ジョブ内の各ジョブステップについて、ジョブステップ別の実行間隔を設定できる。即ち、ジョブを実行する際、前回の実行時刻からユーザが指定した間隔以上の時間が経過しているジョブステップを実行するようにできる。
データをデータベースのテーブルに投入するジョブステップと、そのテーブルのバックアップを取るジョブステップとからなるジョブがあるとする。このジョブにおいて、バックアップを毎回取ると、1回当たりのジョブの実行時間が長くなる。しかし、上記の技術を使えば、バックアップを1日に1回だけ実行するようにできる。
実行間隔を設定可能なジョブ管理技術の目的として、以下の2種類がある。
第1の目的は、ユーザが指定した2つのジョブステップについて、依存関係を成立させつつ、あるジョブステップが異常終了した場合には、任意のタイミングでリトライ実行できるように当該ジョブステップが異常終了した状態を保つことである。依存関係としては、あるジョブで先行する方のジョブステップを実行する場合には、必ず後続する方のジョブステップを実行するという第1の依存関係がある。或いは、あるジョブで後続する方のジョブステップを実行する場合には、必ず先行する方のジョブステップが実行済であるという第2の依存関係がある。第1の目的が達成できれば、ジョブ管理技術を適用するシステムの安全性を確保できる。
1つの例として、データベースのテーブルからデータを抽出して一時ファイルに上書きするジョブステップと、抽出したデータを別のテーブルへ投入するジョブステップとからなるジョブがあるとする。このジョブにおいて、データ抽出のジョブステップを実行した後に、データ投入のジョブステップをスキップした場合、次に起動したジョブでデータ抽出のジョブステップを実行すると、一時ファイルに残っていた、別のテーブルに未投入のデータが消失するという問題が生じる。或いは、データ投入のジョブステップが異常終了した場合、次に起動したジョブでデータ抽出のジョブステップを実行すると、投入に失敗したデータが消失するという問題が生じる。よって、データ投入のジョブステップがリトライ実行されて正常終了するまでは、データ抽出のジョブステップを実行しないようにして、第1の依存関係を成立させつつ、データ投入のジョブステップが異常終了した状態を保つ必要がある。
別の例として、定期的に収集したデータが投入される蓄積用テーブルと、蓄積用テーブルから抽出及び加工したデータが格納される参照用テーブルとの2つのテーブルを有するシステムがあるとする。また、このシステムにおいて、データを蓄積用テーブルへ投入するジョブステップと、蓄積用テーブルのバックアップを行うジョブステップと、蓄積用テーブルからデータを抽出して一時ファイルに上書きするジョブステップと、抽出したデータを参照用テーブルへ投入するジョブステップと、参照用テーブルのバックアップを行うジョブステップとの5つのジョブステップを順に実行するジョブが繰り返し実行されるものとする。このジョブにおいて、参照用テーブルのバックアップを実行する場合には必ず蓄積用テーブルのバックアップが実行済であるという第2の依存関係を成立させることで、蓄積用テーブルのバックアップと参照用テーブルのバックアップとの整合性が保たれる。このため、データ復元時に蓄積用テーブルと参照用テーブルとを並列にリストアすることでリストア時間が短縮される。また、システムの安全性を高めることができる。
第1の目的と関連する技術として、特許文献1では、実行間隔の設定のみで、ジョブステップ間の依存関係を表現する方法が開示されている。特許文献2では、実行間隔の設定とは別に、ジョブステップ間の依存関係をユーザに明示的に設定させる方法が開示されている。
第2の目的は、あるジョブステップが異常終了した場合に、そのジョブステップよりも前にある一部のジョブステップの繰り返し実行を継続することである。この目的が達成できれば、ジョブ管理技術を適用するシステムの可用性が高まる。
第2の目的と関連する技術として、特許文献3では、異常終了したジョブステップを特定し、リトライ実行する方法が開示されている。
特開平6−59913号公報 特開2009−282577号公報 特開平8−227368号公報
従来の技術では、異常終了したジョブステップに後続するジョブステップと、異常終了したジョブステップに先行するジョブステップとの間に依存関係がある場合に、それら2つのジョブステップの状態に不整合が生じる。一例として、第1のテーブルへのデータ投入、第1のテーブルのバックアップ、第1のテーブルからのデータ抽出、抽出したデータの第2のテーブルへの投入、第2のテーブルのバックアップを順に実行するジョブを繰り返し実行することを仮定する。第1のテーブルのバックアップと第2のテーブルのバックアップとの間に第2の依存関係があるとする。あるジョブにおいて、第1のテーブルのバックアップを実行した後に第1のテーブルからのデータ抽出が異常終了したとする。その後、第1のテーブルへのデータ投入の繰り返し実行を継続したとする。従来の方法(例えば、特許文献3参照)により自動でリトライ実行すると、第1のテーブルからのデータ抽出からジョブが再開され、抽出したデータの第2のテーブルへの投入、第2のテーブルのバックアップが実行される。しかし、リトライ実行時に取られる第2のテーブルのバックアップは、第1のテーブルからのデータ抽出が異常終了した後に第1のテーブルへ投入されたデータを含む。そのため、第2のテーブルのバックアップが、第1のテーブルからのデータ抽出が異常終了した際に取られた第1のテーブルのバックアップと整合しないという問題が生じる。このように、従来の技術では、上記の第1及び第2の目的を両立させることができない。
本発明は、異常終了したジョブステップに後続するジョブステップと、異常終了したジョブステップに先行するジョブステップとの間に依存関係がある場合に、それら2つのジョブステップの状態に不整合が生じない範囲でジョブの繰り返し実行を継続することを目的とする。即ち、本発明は、上記の第1及び第2の目的を両立させることを目的とする。なお、第1の目的は、第2の目的よりも優先される。
本発明の一態様に係るジョブ管理装置は、
プロセッサを用いてジョブを実行する実行部と、
前記実行部により実行されるジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付ける受け付け部と、
前記定義情報に従って前記実行部により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を前記実行部に停止させる制御部とを備える。
本発明では、ある2つのジョブステップが依存関係にある場合にも、後続する方のジョブステップが異常終了した場合には、次回以降のジョブでは、定義情報に従い、それら2つのジョブステップの状態に不整合が生じない範囲でジョブの繰り返し実行を継続することができる。このため、本発明に係る装置等が適用されるシステムの安全性を確保しつつ、可用性を高めることができる。
実施の形態1に係るデータ管理システムの構成を示すブロック図。 実施の形態1に係るジョブ管理装置の構成を示すブロック図。 実施の形態1に係るジョブ管理装置が保持する実行情報の内容を示す図。 実施の形態1に係るジョブ管理装置に入力される定義情報の例を示す図。 実施の形態1に係るジョブ管理装置に入力される定義情報の例を示す図。 実施の形態1に係るジョブ管理装置に入力される定義情報の例を示す図。 実施の形態1に係るジョブ管理装置が生成するリトライジョブの例を示す図。 実施の形態1に係るジョブ管理装置の通常動作を示すフローチャート。 実施の形態1に係るジョブ管理装置のリトライ動作を示すフローチャート。 図9のステップS24の詳細を示すフローチャート。 図10のステップS35の詳細を示すフローチャート。 図11のステップS42の詳細を示すフローチャート。 図11のステップS43の詳細を示すフローチャート。 実施の形態1に係るジョブ管理装置がジョブを実行した結果の例を示す表。 実施の形態1に係るジョブ管理装置がジョブを実行した結果の例を示す表。 実施の形態1に係るジョブ管理装置が生成するリトライジョブの例を示す図。 実施の形態1の変形例に係るジョブ管理装置の構成を示すブロック図。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
実施の形態1.
本実施の形態に係るシステム及び装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
***構成の説明***
図1を参照して、本実施の形態に係るシステムであるデータ管理システム100の構成を説明する。
データ管理システム100は、ジョブ管理装置200を用いて、データベースへのデータの投入のコマンド、及び、データのバックアップのコマンドを実行する。データは、任意のデータでよいが、本実施の形態では機器データである。
データ管理システム100は、ジョブ管理装置200に加えて、データ収集装置101と、DBMS103(DataBase・Management・System)と、プログラム起動装置107とを備える。
データ収集装置101は、データ管理システム100の外部の機器からデータを収集する。データ収集装置101は、収集したデータを含むデータファイル102をデータ管理システム100の内部に出力する。なお、データの収集と、収集したデータの出力は、データ収集装置101ではなく、ジョブ管理装置200が行ってもよい。
DBMS103が実行する種々のデータ管理用のコマンドは、種々の実行条件とともに定義情報111で定義されている。コマンド及び実行条件は、任意の形式で定義されてよいが、本実施の形態ではジョブ定義文という形式、即ち、テキスト形式で記述されている。
プログラム起動装置107は、ジョブ管理装置200を周期的に起動する。なお、ジョブ管理装置200をいつ起動するかというスケジューリングは、プログラム起動装置107ではなく、ジョブ管理装置200が行ってもよい。また、ジョブ管理装置200は、周期的に起動される必要はなく、不定期に起動されてもよい。
ジョブ管理装置200は、プログラム起動装置107により起動されると、定義情報111を読み込む。ジョブ管理装置200は、定義情報111に従って、DBMS103のデータ管理用のコマンドを実行する。これにより、ジョブ管理装置200は、データファイル102のデータを蓄積用テーブル104、一時参照用テーブル105、参照用テーブル106に出力する。
図2を参照して、本実施の形態に係る装置であるジョブ管理装置200の構成を説明する。
ジョブ管理装置200は、受け付け部201と、実行部202と、制御部203と、情報を記憶するための記憶部204とを備える。
本実施の形態において、ジョブ管理装置200は、コンピュータである。ジョブ管理装置200の機能は、ソフトウェアで実現される。ジョブ管理装置200は、プロセッサ901、記憶装置902、入力装置903、通信装置904といったハードウェアを備える。プロセッサ901は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ901は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ901は、具体的には、CPU(Central・Processing・Unit)である。
記憶装置902は、補助記憶装置及びメモリを含む。補助記憶装置は、具体的には、ROM(Read・Only・Memory)、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)である。メモリは、具体的には、RAM(Random・Access・Memory)である。記憶部204は、記憶装置902により実現される。記憶部204は、特にメモリにより実現される。
入力装置903は、具体的には、マウス、キーボード、又は、タッチパネルである。
ジョブ管理装置200は、ハードウェアとして、ディスプレイを備えていてもよい。
ディスプレイは、具体的には、LCD(Liquid・Crystal・Display)である。
通信装置904は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。通信装置904は、具体的には、通信チップ又はNIC(Network・Interface・Card)である。
補助記憶装置には、受け付け部201、実行部202、制御部203といった「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリにロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。補助記憶装置には、OS(Operating・System)も記憶されている。OSの少なくとも一部がメモリにロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
ジョブ管理装置200は、1つのプロセッサ901のみを備えていてもよいし、複数のプロセッサ901を備えていてもよい。複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
「部」の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置、メモリ、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital・Versatile・Disc)等の可搬記録媒体に記憶されてもよい。
受け付け部201は、定義情報111の入力を受け付ける。具体的には、受け付け部201は、通信装置904を用いて定義情報111をジョブ管理装置200の外部から受信し、定義情報111を記憶装置902に書き込む。なお、受け付け部201は、入力装置903を用いて定義情報111の入力を受け付け、定義情報111を記憶装置902に書き込んでもよい。
定義情報111は、実行部202により実行されるジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する情報を含む。各ジョブステップの実行条件としては、任意の条件が定義されてよいが、本実施の形態では各ジョブステップの実行間隔が定義される。
本実施の形態において、定義情報111は、さらに、上記複数のジョブステップのうち、他のジョブステップに異常終了が発生しても実行されるべきジョブステップを優先ステップとして定義する情報を異常状態動作定義121として含む。
本実施の形態において、定義情報111は、さらに、上記複数のジョブステップの種別を定義する情報をリトライ動作定義122として含む。
実行部202は、プロセッサを用いてジョブを実行する。このプロセッサは、ジョブ管理装置200に搭載されるプロセッサ901でもよいが、本実施の形態ではDBMS103に備えられるプロセッサである。即ち、実行部202は、ジョブを直接実行してもよいが、本実施の形態ではDBMS103によるジョブの実行を管理することでジョブを間接的に実行する。具体的には、実行部202は、各ジョブステップを外部プログラムとして起動し、外部プログラムから実行結果を受け取る。そのための方法としては、任意の方法を採用することができるが、本実施の形態ではOSの提供するAPI(Application・Programming・Interface)を利用する方法が採用される。外部プログラムを起動するためのAPIとしては、OSがWindows(登録商標)であれば、CreateProcess、OSがUnix(登録商標)であれば、execlp等を利用することができる。外部プログラムから実行結果を受け取るためのAPIとしては、OSがWindows(登録商標)であれば、GetExitCodeProcess、OSがUnix(登録商標)であれば、waitpid等を利用することができる。
制御部203は、後述する異常状態動作制御部231及びリトライ動作制御部232を有する。
制御部203は、定義情報111に従って実行部202により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、リトライジョブ221を生成し、リトライジョブ221を実行部202に実行させる。具体的には、実行部202は、定義情報111に従ってジョブを実行している際に、そのジョブに含まれるジョブステップに異常終了が発生した場合、プロセッサ901に例外を通知する。この例外の通知によってリトライジョブ221の生成処理が起動され、制御部203が、プロセッサ901を用いてリトライジョブ221を生成し、リトライジョブ221をメモリに展開する。実行部202は、メモリ上のリトライジョブ221を実行する。リトライジョブ221は、異常終了が発生したジョブステップである再開ステップと、定義情報111で定義された実行順序が再開ステップよりも後であり、定義情報111で定義された実行条件を再開ステップの異常終了の発生時に満たすジョブステップとを含むジョブである。
制御部203は、少なくともリトライジョブ221の実行が完了するまでは、定義情報111で定義された実行順序が再開ステップ以降のジョブステップの実行を実行部202に停止させる。制御部203は、本実施の形態では、少なくともリトライジョブ221の実行が完了するまでは、定義情報111で定義された実行順序が再開ステップよりも前であり、定義情報111で優先ステップとして定義されていないジョブステップの実行も実行部202に停止させる。具体的には、実行部202は、定義情報111に従ってジョブを実行している際に、そのジョブに含まれるジョブステップごとに、ジョブステップの実行を停止すべきかどうかを判断するための情報を制御部203から取得する。この情報は、制御部203が、後述する実行情報212に基づき、プロセッサ901を用いて生成する情報である。制御部203は、記憶部204に記憶された実行情報212を基に生成した情報を実行部202に通知することで、所望のジョブステップの実行を実行部202に停止させる。
したがって、本実施の形態では、上記複数のジョブステップのいずれかに異常終了が発生した場合、異常終了が発生したジョブステップよりも実行順序が前の優先ステップ以外のジョブステップが実行周期に達しても、そのジョブステップの実行はスキップされる。このように実行周期に達したジョブステップの実行がスキップされる状態は、リトライジョブ221に含まれるジョブステップに異常終了が発生せずにリトライジョブ221の実行が完了した場合に解除される。
本実施の形態において、制御部203は、定義情報111で定義された種別によって、リトライジョブ221に含めるジョブステップを決定する。また、制御部203は、定義情報111で定義された種別によって、リトライジョブ221に含まれるジョブステップの実行順序を決定する。リトライジョブ221に含まれるジョブステップの実行順序は、リトライジョブ221におけるジョブステップの並び順によって表される。リトライジョブ221に含めるジョブステップの具体的な決定方法、及び、ジョブステップの実行順序の具体的な決定方法については後述する。
以下では、実行部202が定義情報111に従ってジョブを実行する動作をジョブ管理装置200の「通常動作」、制御部203がリトライジョブ221を生成し、実行部202がリトライジョブ221を実行する動作をジョブ管理装置200の「リトライ動作」と呼ぶ。
リトライ動作は、自動的に開始されてもよいが、本実施の形態では、ユーザから、ジョブを指定してジョブのリトライ実行を指示するリトライ実行命令131が入力されたときに開始される。通常動作は、リトライ動作中は停止されている。ただし、通常動作の周期的な実行は、リトライ動作が開始されるまでは継続される。
本実施の形態において、実行部202は、ジョブステップごとに、実行情報212を記憶部204に書き込む。記憶部204には、図3に示すように、ジョブステップの個数分の実行情報212がジョブ実行情報211として記憶される。各ジョブステップの実行情報212は、ジョブステップ識別子と、前回実行時のジョブ起動時刻と、異常終了フラグと、異常終了時のジョブ起動時刻とを含む。ジョブステップ識別子は、ジョブステップを識別する情報である。前回実行時のジョブ起動時刻は、ジョブステップの前回の実行時刻を示す情報である。異常終了フラグは、ジョブステップの異常終了の発生の有無を示す情報である。異常終了時のジョブ起動時刻は、ジョブステップの異常終了の発生時刻を示す情報である。
通常動作中、実行部202は、定義情報111で定義された実行順序に沿って、実行情報212で示された前回の実行時刻から定義情報111で定義された実行間隔以上の時間が経過したジョブステップを実行する。即ち、実行部202は、実行順序に沿って、実行周期に達したジョブステップを実行する。実行部202は、実行したジョブステップについて、実行情報212を更新する。具体的には、実行部202は、実行したジョブステップの実行情報212で示された前回の実行時刻を、実行中のジョブの起動時刻に書き換える。
一方、リトライ動作中、実行部202は、制御部203により決定される実行順序に沿って、リトライジョブ221に含まれるジョブステップを実行する。具体的には、実行部202は、リトライジョブ221におけるジョブステップの並び順に沿って、リトライジョブ221に含まれるジョブステップを実行する。リトライ動作の終了時に、実行部202は、上記複数のジョブステップについて、実行情報212で示された前回の実行時刻を共通の時刻に変更する。即ち、実行部202は、全てのジョブステップの実行情報212で示される前回の実行時刻を、同じ時刻に書き換える。
通常動作中、いずれかのジョブステップに異常終了が発生すると、実行部202は、異常終了が発生したジョブステップについて、実行情報212を更新する。具体的には、実行部202は、異常終了が発生したジョブステップの実行情報212に含まれる異常終了フラグを「オン」に変更する。即ち、実行部202は、再開ステップの実行情報212を、異常終了が発生したことを示す情報に更新する。
リトライ動作中、実行部202は、再開ステップについて、異常終了が発生しなければ、実行情報212を更新する。具体的には、実行部202は、再開ステップの実行情報212に含まれる異常終了フラグを「オフ」に変更する。即ち、実行部202は、再開ステップの実行情報212を、異常終了が発生していないことを示す情報に更新する。
リトライ動作中、制御部203は、実行情報212で異常終了が発生したことが示されたジョブステップが複数ある場合、実行情報212で異常終了が発生したことが示されたジョブステップがなくなるまで、リトライジョブ221を生成し、リトライジョブ221を実行部202に実行させる処理を繰り返す。制御部203は、リトライジョブ221を生成する際に、定義情報111で定義された実行順序が後のジョブステップを先に再開ステップに決定する。即ち、制御部203は、実行情報212で異常終了が発生したことが示されたジョブステップのうち、定義情報111で定義された実行順序が最後のジョブステップを再開ステップとしてリトライジョブ221に含める。
ここで、図4及び図5及び図6に定義情報111の例を示す。
定義情報111には、ジョブステップの実行順序を判定するための情報が含まれる。
また、定義情報111には、各ジョブステップについて、ジョブステップ識別子と、実行するコマンドの内容が含まれる。
本実施の形態では、異常状態動作定義121として、あるジョブステップが異常終了した後に各ジョブステップを実行すべきかどうかを判定するための優先実行フラグが含まれる。優先実行フラグは、各ジョブステップが優先ステップであるかどうかを示す情報に相当する。
本実施の形態では、リトライ動作定義122として、ジョブステップを分類するためのジョブステップカテゴリと、ジョブステップカテゴリごとのリトライ動作を定義するためのリトライ種別とが含まれる。リトライ種別は、前述したジョブステップの種別に相当する。ジョブステップカテゴリとしては、「backup」と「part・of・transaction」とを指定可能である。ジョブステップカテゴリ「backup」については、リトライ種別として、「after・other・category」と「negative」とを指定可能である。ジョブステップカテゴリ「part・of・transaction」については、リトライ種別として「negative」を指定可能である。ジョブステップカテゴリとリトライ種別との組み合わせごとに、リトライ動作制御部232によるリトライジョブ221の生成手順が定められている。ただし、リトライ種別としてどのようなものが指定可能であるか、リトライ種別ごとにどのようにリトライジョブ221を生成及び変更するかは、適宜決定することができる。
図4から図6の例において、定義情報111に含まれるジョブ定義文は、複数のjobstepセクションと、複数のcategoryセクションとからなる。jobstepセクションには、実行するジョブステップの情報が記述される。1つのjobstepセクションが1つのジョブステップに対応する。jobstepセクションの記載順序が、ジョブステップの実行順序となる。
jobstepセクションは、「キー」=「値」という形式の行からなる。キーには、jobstepidキーと、commandキーと、intervalキーと、priorityキーと、categoryキーとがある。jobstepidキーは、ジョブステップ識別子を定義するためのキーである。commandキーは、ジョブステップ識別子に対応するジョブステップで実行するコマンドの内容を定義するためのキーである。intervalキーは、当該ジョブステップの実行間隔を定義するためのキーである。priorityキーは、当該ジョブステップを、他の1つのジョブステップが異常終了した後に実行すべきかどうかを判定するためのキーである。categoryキーは、当該ジョブステップのジョブステップカテゴリを指定するためのキーである。
commandキーは、任意の形式でコマンドを指定するものであってよいが、本実施の形態では、OSに備わったコマンドラインインタプリタが受け付け可能なコマンドの名称を値として持つことでコマンドを指定するものとなっている。実行部202は、commandキーで指定されたコマンドを、コマンドラインインタプリタを介して実行する。コマンドラインインタプリタとしては、OSがWindows(登録商標)であれば、cmd.exe、OSがUnix(登録商標)であれば、sh等を利用することができる。図4から図6の例では、説明を簡単にするため、疑似的なコマンドを記載している。それぞれの擬似的なコマンドの意味については後述する。
jobstepセクションが「priority=1」という行を含む場合、当該jobstepセクションに対応するジョブステップの優先実行フラグが「オン」であることになる。
intervalキーには、ジョブステップの実行間隔が時間単位付きで指定される。「interaval=1minute」の場合の実行間隔は1分である。「interaval=1hour」の場合の実行間隔は1時間である。「interaval=1day」の場合の実行間隔は1日である。
categoryセクションは、「キー」=「値」という形式の行からなる。キーには、categoryキーと、retry・typeキーとがある。categoryキーは、ジョブステップカテゴリを指定するためのキーである。retry・typeキーは、当該ジョブステップカテゴリに属するジョブステップのリトライ種別を定義するためのキーである。
図4に示すように、第1のジョブステップは、ジョブステップ識別子が「jobstep01」であり、データファイル102のデータを蓄積用テーブル104へ投入するコマンドを5分ごとに実行するように指定されたジョブステップである。
第2のジョブステップは、ジョブステップ識別子が「jobstep02」であり、蓄積用テーブル104の増分バックアップを取るコマンドを1日ごとに実行するように指定されたジョブステップである。
第3のジョブステップは、ジョブステップ識別子が「jobstep03」であり、蓄積用テーブル104から差分を抽出し、差分を中間ファイルに上書きするコマンドを1時間ごとに実行するように指定されたジョブステップである。差分とは、最後に差分を抽出した後に蓄積用テーブル104に投入されたデータのことである。
第4のジョブステップは、ジョブステップ識別子が「jobstep04」であり、第3のジョブステップによって抽出された差分、即ち、中間ファイルのデータを一時参照用テーブル105へ投入するコマンドを1時間ごとに実行するように指定されたジョブステップである。
第5のジョブステップは、ジョブステップ識別子が「jobstep05」であり、一時参照用テーブル105の増分バックアップを取るコマンドを1日ごとに実行するように指定されたジョブステップである。
第6のジョブステップは、ジョブステップ識別子が「jobstep06」であり、一時参照用テーブル105から非欠損レコードを抽出し、非欠損レコードを中間ファイルに上書きするコマンドを1日ごとに実行するように指定されたジョブステップである。
図5に示すように、第7のジョブステップは、ジョブステップ識別子が「jobstep07」であり、第6のジョブステップによって抽出された非欠損レコード、即ち、中間ファイルのデータを参照用テーブル106へ投入するコマンドを1日ごとに実行するように指定されたジョブステップである。
第8のジョブステップは、ジョブステップ識別子が「jobstep08」であり、参照用テーブル106の増分バックアップを取るコマンドを1日ごとに実行するように指定されたジョブステップである。
第9のジョブステップは、ジョブステップ識別子が「jobstep09」であり、一時参照用テーブル105から欠損レコードを抽出し、欠損レコードを中間ファイルに上書きするコマンドを2日ごとに実行するように指定されたジョブステップである。
第10のジョブステップは、ジョブステップ識別子が「jobstep10」であり、一時参照用テーブル105内のデータを全件削除するコマンドを2日ごとに実行するように指定されたジョブステップである。
第11のジョブステップは、ジョブステップ識別子が「jobstep11」であり、第9のジョブステップによって抽出された欠損レコード、即ち、中間ファイルのデータを一時参照用テーブル105に投入するコマンドを2日ごとに実行するように指定されたジョブステップである。
図6に示すように、第12のジョブステップは、ジョブステップ識別子が「jobstep12」であり、一時参照用テーブル105の増分バックアップを取るコマンドを2日ごとに実行するように指定されたジョブステップである。
図4から図6の例では、蓄積用テーブル104と一時参照用テーブル105と参照用テーブル106とのバックアップの整合が取れるように、各ジョブステップの実行間隔が設定されている。具体的には、第2のジョブステップの実行間隔と第5のジョブステップの実行間隔と第8のジョブステップの実行間隔とが同一に設定されている。また、第12のジョブステップの実行間隔が、第2のジョブステップ及び第8のジョブステップの実行間隔の倍数に設定されている。これにより、ある周期に実行されたジョブにおいて、第5のジョブステップで一時参照用テーブル105の増分バックアップが取られた後に第10のジョブステップ及び第11のジョブステップが実行されて一時参照用テーブル105のデータが更新された場合にも、バックアップの整合をとることができる。
図6に示すように、ジョブステップカテゴリ「backup」に対しては、リトライ種別「after・other・category」が指定されている。
このように、本実施の形態では、複数のジョブステップのうち、データをバックアップするジョブステップに対して定義情報111で定義される種別が、共通の種別「after・other・category」になっている。
制御部203は、定義情報111で定義された実行順序が再開ステップよりも前であり、定義情報111で定義された種別が共通の種別「after・other・category」であるジョブステップをリトライジョブ221に含める。
また、制御部203は、リトライジョブ221に含まれるジョブステップのうち、定義情報111で定義された種別が共通の種別「after・other・category」であるジョブステップの実行順序を、定義情報111で定義された種別が他の種別であるジョブステップよりも後にする。なお、定義情報111で定義された種別が他の種別であるジョブステップには、定義情報111で定義された種別が種別「negative」であるジョブステップだけでなく、定義情報111で定義された種別がないジョブステップも該当する。
このように、本実施の形態では、定義情報111で定義される1つの種別として、「after・other・category」がある。この1つの種別「after・other・category」は、制御部203に対し、リトライジョブ221に含まれるジョブステップのうち、定義情報111で定義された種別が当該1つの種別であるジョブステップの実行順序を、定義情報111で定義された種別が他の種別であるジョブステップよりも後にさせる種別である。また、この1つの種別「after・other・category」は、制御部203に対し、定義情報111で定義された実行順序が再開ステップよりも前であり、定義情報111で定義された種別が当該1つの種別であるジョブステップをリトライジョブ221に含めさせる種別である。
図6に示すように、ジョブステップカテゴリ「part・of・transaction」に対しては、リトライ種別「negative」が指定されている。
このように、本実施の形態では、複数のジョブステップのうち、トランザクション処理を行うジョブステップに対して定義情報111で定義される種別が、共通の種別「negative」になっている。
制御部203は、上記複数のジョブステップの中に、定義情報111で定義された実行順序が再開ステップ以前にあり、定義情報111で定義された種別が共通の種別「negative」であるジョブステップがない場合、定義情報111で定義された実行順序が再開ステップよりも後であり、定義情報111で定義された種別が共通の種別「negative」であるジョブステップをリトライジョブ221から除く。
このように、本実施の形態では、定義情報111で定義される1つの種別として、「negative」がある。この1つの種別「negative」は、制御部203に対し、上記複数のジョブステップの中に、定義情報111で定義された実行順序が再開ステップ以前にあり、定義情報111で定義された種別が当該1つの種別であるジョブステップがない場合、定義情報111で定義された実行順序が再開ステップよりも後であり、定義情報111で定義された種別が当該1つの種別であるジョブステップをリトライジョブ221から除かせる種別である。
本実施の形態において、受け付け部201は、図4から図6の例のようなジョブ定義文の内容を読み取る。
実行部202は、受け付け部201が読み込んだジョブ定義文とジョブ実行情報211とを基に、ジョブの開始処理及び終了処理を行う。実行部202は、さらに、ジョブ内のジョブステップの開始処理及び終了処理を行う。実行部202は、ジョブステップの開始処理及び終了処理を行う度に、ジョブ実行情報211の内容を変更する。
制御部203の異常状態動作制御部231は、ジョブ実行情報211に基づいて、あるジョブステップが異常終了した後のジョブの実行動作を制御する。制御部203のリトライ動作制御部232は、入力装置903を用いてリトライ実行命令131の入力をユーザから受け付ける。リトライ動作制御部232は、リトライ実行命令131が入力されると、ジョブ実行情報211を基に、メモリ上に図7の例のようなリトライジョブ221を生成して実行部202を起動する。このメモリは、ジョブ管理装置200に搭載されるメモリであるが、リトライジョブ221は、最終的には実行部202によってDBMS103に備えられるメモリに展開され、DBMS103によって実行される。即ち、実行部202は、本実施の形態ではDBMS103を利用してリトライジョブ221を間接的に実行する。なお、実行部202は、リトライジョブ221を直接実行してもよい。
リトライジョブ221には、実行対象となるジョブステップの実行順序を判定するための情報と、各ジョブステップの識別子が含まれている。図7の例において、リトライジョブ221は、jobstepid=「ジョブステップ識別子」という形式の行からなる。ジョブステップ識別子の記載順序が、リトライジョブ221におけるジョブステップの実行順序となる。
***動作の説明***
図8から図13を参照して、本実施の形態に係る装置であるジョブ管理装置200の動作を説明する。ジョブ管理装置200の動作は、本実施の形態に係るジョブ管理方法に相当する。ジョブ管理装置200の動作は、本実施の形態に係るジョブ管理プログラムの処理手順に相当する。
図8は、ジョブ管理装置200の通常動作のフローを示している。
ステップS11において、受け付け部201は、ジョブを定義する定義情報111を実行部202に渡す。具体的には、受け付け部201は、通信装置904を用いて定義情報111を含む1つ又は複数のファイルを受信する。受け付け部201は、受信したファイルを記憶装置902に保存する。受け付け部201は、記憶装置902に保存したファイルのアドレス情報を実行部202に入力する。実行部202は、受け付け部201から入力されたアドレス情報によって特定されるファイルを取得する。実行部202は、取得したファイルに含まれる定義情報111を読み込む。
ステップS12において、実行部202は、ステップS11で読み込んだ定義情報111を参照し、未実行のジョブステップがあるかどうかを判定する。未実行のジョブステップがある場合には、実行部202は、未実行のジョブステップのうち、実行順序が最初のものを読み込む。即ち、実行部202は、定義情報111で定義された実行順序が次のジョブステップを選択する。そして、フローはステップS13へ進む。未実行のジョブステップがない場合には、フローは終了する。
ステップS13において、実行部202は、異常状態動作制御部231に対して、異常終了フラグが「オン」となっているジョブステップが存在するかどうかを問い合わせる。異常状態動作制御部231は、ジョブ実行情報211を参照し、問い合わせ結果を実行部202に返す。実行部202は、問い合わせ結果を参照する。異常終了フラグが「オン」となっているジョブステップが存在する場合には、フローはステップS14へ進む。異常終了フラグが「オン」となっているジョブステップが存在しない場合には、フローはステップS15へ進む。
ステップS14において、実行部202は、ステップS11で読み込んだ定義情報111を参照する。実行対象のジョブステップの優先実行フラグが「オン」になっている場合には、フローはステップS15へ進む。実行対象のジョブステップの優先実行フラグが「オフ」になっている場合には、フローは終了する。実行対象のジョブステップとは、ステップS12で選択されたジョブステップのことである。
ステップS15において、実行部202は、ステップS11で読み込んだ定義情報111とジョブ実行情報211とを参照し、実行対象のジョブステップの実行間隔が、現在実行中のジョブの起動時刻と当該ジョブステップの前回実行時のジョブ起動時刻との差分以上であるか否かを判定する。現在実行中のジョブの起動時刻と当該ジョブステップの前回実行時のジョブ起動時刻との差分が、当該ジョブステップの実行間隔以上である場合には、実行部202は、当該ジョブステップが実行周期に達しているものと判定する。そして、フローはステップS16へ進む。現在実行中のジョブの起動時刻と当該ジョブステップの前回実行時のジョブ起動時刻との差分が、当該ジョブステップの実行間隔未満である場合には、実行部202は、当該ジョブステップが実行周期に達していないものと判定する。そして、フローはステップS12へ戻る。
ステップS16において、実行部202は、異常状態動作制御部231に対して、実行対象のジョブステップの異常終了フラグが「オン」になっているかどうかを問い合わせる。異常状態動作制御部231は、ジョブ実行情報211を参照し、問い合わせ結果を実行部202に返す。実行部202は、問い合わせ結果を参照する。当該ジョブステップの異常終了フラグが「オン」になっている場合には、フローは終了する。当該ジョブステップの異常終了フラグが「オフ」になっている場合には、フローはステップS17へ進む。
ステップS17において、実行部202は、ステップS12で選択したジョブステップを実行する。そして、フローはステップS18へ進む。
ステップS18において、実行部202は、ステップS17のジョブステップの実行結果を参照し、ジョブ実行情報211に含まれる当該ジョブステップの実行情報212を更新する。具体的には、ステップS17のジョブステップの実行結果が正常終了であった場合には、実行部202は、当該ジョブステップの実行情報212の前回実行時のジョブ起動時刻を、現在実行中のジョブの起動時刻で置き換える。当該ジョブステップの実行結果が異常終了であった場合には、実行部202は、当該ジョブステップの実行情報212の異常終了フラグを「オン」にする。また、実行部202は、当該ジョブステップの実行情報212の異常終了時のジョブ起動時刻を、現在実行中のジョブの起動時刻で置き換える。そして、フローはステップS19へ進む。
ステップS19において、実行部202は、ステップS17のジョブステップの実行結果を参照する。当該ジョブステップの実行結果が正常終了であった場合には、フローはステップS12へ戻る。当該ジョブステップの実行結果が異常終了であった場合には、フローは終了する。
図9は、ジョブ管理装置200のリトライ動作のフローを示している。
リトライ動作制御部232は、リトライ実行命令131に応じて起動する。リトライ動作制御部232は、起動時に、ステップS11で記憶装置902に保存されたファイルのアドレス情報を実行部202から取得する。リトライ動作制御部232は、取得したアドレス情報によって特定されるファイルに含まれる定義情報111を読み込む。
ステップS21において、リトライ動作制御部232は、ジョブ実行情報211を参照して、リトライ実行命令131で指定されたジョブにおいて異常終了フラグが「オン」になっているジョブステップがあるかどうかを判定する。リトライ実行命令131で指定されたジョブにおいて異常終了フラグが「オン」になっているジョブステップがある場合には、フローはステップS22へ進む。リトライ実行命令131で指定されたジョブにおいて異常終了フラグが「オン」になっているジョブステップがない場合には、フローはステップS29へ進む。
ステップS22において、リトライ動作制御部232は、ジョブ実行情報211を参照して、リトライ実行命令131で指定されたジョブにおいて異常終了フラグが「オン」になっているジョブステップのうち、実行順序が最後のものを再開位置として取得する。そして、フローはステップS23へ進む。
ステップS23において、リトライ動作制御部232は、ジョブ実行情報211を参照して、再開位置に対応するジョブステップの実行情報212の異常終了時のジョブ起動時刻をリトライジョブ221の起動時刻として取得する。そして、フローはステップS24へ進む。なお、再開位置に対応するジョブステップは、前述した再開ステップに相当する。
ステップS24において、リトライ動作制御部232は、ジョブ実行情報211及び定義情報111を参照して、リトライジョブ221を生成する。リトライ動作制御部232は、リトライジョブ221を起動する。具体的には、リトライ動作制御部232は、実行部202を起動して、実行部202にリトライジョブ221を実行させる。
ステップS25において、実行部202は、通常動作のステップS12と同じように、未実行のジョブステップがあるかどうかを判定する。未実行のジョブステップがある場合には、実行部202は、未実行のジョブステップのうち、実行順序が最初のものを読み込む。即ち、実行部202は、リトライジョブ221で実行順序が次のジョブステップを選択する。そして、フローはステップS26へ進む。未実行のジョブステップがない場合には、フローはステップS21へ戻る。
ステップS26及びステップS27の動作については、通常動作のステップS17及びステップS18と同じである。
ステップS28において、実行部202は、通常動作のステップS19と同じように、ステップS26のジョブステップの実行結果を参照する。当該ジョブステップの実行結果が正常終了であった場合には、フローはステップS25へ戻る。当該ジョブステップの実行結果が異常終了であった場合には、フローは終了する。
ステップS29において、実行部202は、ステップS24でリトライジョブ221が1つ以上生成された場合には、ジョブ実行情報211に含まれる全ての実行情報212の前回実行時のジョブ起動時刻を、現在時刻で置き換える。ここで、全ての実行情報212の前回実行時のジョブ起動時刻を同一の時刻に揃える点が本質であり、全ての実行情報212の前回実行時のジョブ起動時刻が現在時刻とは異なる時刻に置き換えられてもよい。
以下、図10を用いて、ステップS24の詳細を説明する。
ステップS31において、リトライ動作制御部232は、ステップS22で取得した再開位置から最後尾までのジョブステップのうち、実行周期に達しているもののみを実行するジョブを、暫定リトライジョブとして生成する。各ジョブステップが実行周期に達しているかどうかは、各ジョブステップの異常終了時のジョブ起動時刻と各ジョブステップの前回実行時のジョブ起動時刻との差分が、各ジョブステップの実行間隔以上であるか否かで判定される。そして、フローはステップS32へ進む。
ステップS32において、リトライ動作制御部232は、起動時に読み込んだ定義情報111に含まれるジョブステップカテゴリの一覧を取得する。そして、フローはステップS33へ進む。
ステップS33において、リトライ動作制御部232は、ステップS32で取得したジョブステップカテゴリのうち、ステップS34及びステップS35の処理を実施していないジョブステップカテゴリがあるかどうかを判定する。ステップS34及びステップS35の処理を実施していないジョブステップカテゴリがある場合には、リトライ動作制御部232は、そのようなジョブステップカテゴリを1つ取得する。即ち、リトライ動作制御部232は、ステップS32で取得した一覧から次のジョブステップカテゴリを選択する。そして、フローはステップS34へ進む。ステップS34及びステップS35の処理を実施していないジョブステップカテゴリがない場合には、フローはステップS36へ進む。
ステップS34において、リトライ動作制御部232は、起動時に読み込んだ定義情報111を参照して、ステップS33で取得したジョブステップカテゴリに対応するリトライ種別を取得する。そして、フローはステップS35へ進む。
ステップS35において、リトライ動作制御部232は、起動時に読み込んだ定義情報111を参照して、ステップS33で取得したジョブステップカテゴリとステップS34で取得したリトライ種別との組み合わせに応じて、暫定リトライジョブを変更する。そして、フローはステップS33へ戻る。
ステップS36において、リトライ動作制御部232は、暫定リトライジョブをリトライジョブ221として採用する。そして、フローはステップS25へ進む。
以下、図11を用いて、ステップS35の詳細を説明する。
ステップS41において、リトライ動作制御部232は、定義情報111で指定されたジョブステップカテゴリとリトライ種別との組み合わせが「backup」と「after・other・category」との組み合わせである場合には、フローはステップS42へ進む。指定されたジョブステップカテゴリとリトライ種別との組み合わせが「backup」と「negative」との組み合わせ又は「part・of・transaction」と「negative」との組み合わせである場合には、フローはステップS43へ進む。
ステップS42において、リトライ動作制御部232は、第1のリトライジョブ変更処理を実行する。そして、フローはステップS33へ戻る。
ステップS43において、リトライ動作制御部232は、第2のリトライジョブ変更処理を実行する。そして、フローはステップS33へ戻る。
以下、図12を用いて、ステップS42の詳細を説明する。
ステップS51において、リトライ動作制御部232は、起動時に読み込んだ定義情報111からジョブステップの一覧を取得する。そして、フローはステップS52へ進む。
ステップS52において、リトライ動作制御部232は、ステップS51で取得したジョブステップのうち、ステップS53の処理を実施していないジョブステップがあるかどうかを判定する。ステップS53の処理を実施していないジョブステップがある場合には、リトライ動作制御部232は、そのようなジョブステップのうち、実行順序が最初のものを取得する。即ち、リトライ動作制御部232は、ステップS51で取得した一覧から次のジョブステップを選択する。そして、フローはステップS53へ進む。ステップS53の処理を実施していないジョブステップがない場合には、フローはステップS33へ戻る。
ステップS53において、リトライ動作制御部232は、ステップS52で取得したジョブステップが指定されたジョブステップカテゴリに属するかどうかを判定する。ステップS52で取得したジョブステップが指定されたジョブステップカテゴリに属する場合には、フローはステップS54へ進む。ステップS52で取得したジョブステップが指定されたジョブステップカテゴリに属さない場合には、フローはステップS52へ戻る。
ステップS54において、リトライ動作制御部232は、ステップS52で取得したジョブステップが暫定リトライジョブに既に含まれていれば、そのジョブステップを暫定リトライジョブの最後尾に移動する。リトライ動作制御部232は、ステップS52で取得したジョブステップが暫定リトライジョブに含まれていなければ、そのジョブステップを暫定リトライジョブの最後尾に追加する。そして、フローはステップS52へ戻る。
以下、図13を用いて、ステップS43の詳細を説明する。
ステップS61において、リトライ動作制御部232は、起動時に読み込んだ定義情報111からジョブステップの一覧を取得する。そして、フローはステップS62へ進む。
ステップS62において、リトライ動作制御部232は、ステップS61で取得したジョブステップのうち、ステップS63の処理を実施していないジョブステップがあるかどうかを判定する。ステップS63の処理を実施していないジョブステップがある場合には、リトライ動作制御部232は、そのようなジョブステップのうち、実行順序が最初のものを取得する。即ち、リトライ動作制御部232は、ステップS61で取得した一覧から次のジョブステップを選択する。そして、フローはステップS63へ進む。ステップS63の処理を実施していないジョブステップがない場合には、フローはステップS33へ戻る。
ステップS63において、リトライ動作制御部232は、ステップS62で取得したジョブステップが指定されたジョブステップカテゴリに属するかどうかを判定する。ステップS62で取得したジョブステップが指定されたジョブステップカテゴリに属する場合には、フローはステップS64へ進む。ステップS62で取得したジョブステップが指定されたジョブステップカテゴリに属さない場合には、フローはステップS62へ戻る。
ステップS64において、リトライ動作制御部232は、ステップS62で取得したジョブステップがステップS22で取得した再開位置に対応するジョブステップより実行順序が後かどうかを判定する。ステップS62で取得したジョブステップが再開位置に対応するジョブステップより実行順序が後である場合には、フローはステップS65へ進む。ステップS62で取得したジョブステップの実行順序が再開位置に対応するジョブステップ以前にある場合には、フローはステップS33へ戻る。
ステップS65において、リトライ動作制御部232は、ステップS62で取得したジョブステップを暫定リトライジョブから削除する。そして、フローはステップS62へ戻る。
***実施の形態の効果の説明***
本実施の形態では、ある2つのジョブステップが依存関係にある場合にも、後続する方のジョブステップが異常終了した場合には、次回以降のジョブでは、定義情報111に従い、それら2つのジョブステップの状態に不整合が生じない範囲でジョブの繰り返し実行を継続することができる。このため、本実施の形態に係るジョブ管理装置200、ジョブ管理方法、又は、ジョブ管理プログラムが適用されるデータ管理システム100の安全性を確保しつつ、可用性を高めることができる。
本実施の形態では、異常状態動作制御部231により、あるジョブステップが異常終了した後の通常動作を柔軟に変更することが可能となる。これにより、データ管理システム100の安全性を保ちつつ、システムの可用性を高めることができる。また、リトライ動作制御部232により、リトライ実行の効率を高めることができる。
以下、定義情報111の内容が図4から図6に示したものであり、プログラム起動装置107がジョブ管理装置200を起動する周期が5分であるケースを例にとって、本実施の形態の効果を説明する。
図14は、どのジョブステップも正常終了している場合のジョブの実行結果の例を示している。
本実施の形態では、異常終了フラグを用いることにより、異常終了したジョブステップ以降の実行状態を保存可能とする。以下、詳細を説明する。
10月3日0時0分に起動されたジョブで第4のジョブステップが異常終了したとする。ジョブは第1のジョブステップから順に実行され、第3のジョブステップで蓄積用テーブル104からデータを抽出した際に中間ファイルを上書きする。本実施の形態から異常終了フラグを除いた場合には、10月3日0時0分のジョブで一時参照用テーブル105に投入できなかったデータが消失するという問題が発生する。本実施の形態では、10月3日0時0分に起動されたジョブにおいて、ステップS18の処理で第4のジョブステップが異常終了したことが異常終了フラグに記録される。10月4日1時0分に起動されたジョブではステップS16の処理により第4のジョブステップの実行前にジョブが終了される。そのため、上記の問題は回避される。即ち、異常終了フラグを用いることにより、異常終了したジョブステップ以降の実行状態が保存されていることになる。したがって、本実施の形態では、データ管理システム100の安全性を高めることができる。
本実施の形態では、異常終了フラグに加えて優先実行フラグを用いることで、あるジョブステップが異常終了した後に実行されるジョブにおいてどのジョブステップまでを実行するかを調整可能である。以下、詳細を説明する。
10月3日0時0分に起動されたジョブで第4のジョブステップが異常終了したとする。本実施の形態から優先実行フラグを除いた場合、次にジョブが起動された場合には、ジョブステップは1件も実行されない。本実施の形態では、第1のジョブステップと第2のジョブステップとが実行される。一方、第3のジョブステップは実行されない。そのため、10月3日0時0分のジョブで一時参照用テーブル105に投入できなかったデータは中間ファイルに残るため、第4のジョブステップが異常終了した状態を保存することができる。このように、本実施の形態では、データ管理システム100の安全性を保ちつつ、可用性を高めることができる。可用性を高める点については、具体的には、一時参照用テーブル105へのデータ投入に失敗した場合であっても、データ管理システム100の動作を継続するため、データの喪失を防ぐことが可能となる。このような点は、近年盛んに活用されているエネルギーマネジメントシステム等の機器データ収集及び管理の事業において有用である。
本実施の形態では、あるジョブステップが異常終了した後に異常終了したジョブステップからリトライ実行したい場合に、ジョブ管理装置200が自動的に再開位置を取得してリトライジョブ221を生成及び実行する。そのため、データ管理システム100のユーザがログファイル等を解析して再開位置を判定したり、手動でリトライジョブ221を生成したりする手間がかからない。したがって、本実施の形態では、データ管理システム100におけるリトライ実行の効率性を高めることができる。
本実施の形態では、異常終了したジョブステップが複数ある場合に、ステップS22の処理で異常終了した時刻が最も古いジョブステップを再開位置とする。そのため、異常終了した時刻が古いジョブステップから順番にリトライ実行される。これにより、データ管理システム100に保存したデータの整合性を保ってリトライ実行することが可能となる。したがって、本実施の形態では、データ管理システム100の安全性を確保することができる。
本実施の形態では、ステップS29で全てのジョブステップの前回実行時刻を揃える。そのため、実行周期によって示されるジョブステップ間の依存関係を、リトライ実行成功後のジョブにおいて保つことが可能となる。以下、詳細を、図15を用いて説明する。
図15は、本実施の形態からステップS29を除いた場合のジョブの実行結果の例を上部に示し、本実施の形態におけるジョブの実行結果の例を下部に示している。
図4に示したように、第5のジョブステップの実行周期は1日である。図6に示したように、第12のジョブステップの実行周期は2日である。即ち、第12のジョブステップの実行周期は、第5のジョブステップの実行周期の2倍である。よって、ステップS15の処理により、第5のジョブステップと第12のジョブステップとの間には、第12のジョブステップが実行されるジョブにおいては、必ず第5のジョブステップが実行されるという依存関係が成立する。図15の例では、10月2日0時0分に起動されたジョブで第1、第5及び第12のジョブステップが実行されている。そして、10月3日0時0分に起動されたジョブで第1及び第5のジョブステップが実行されている。10月3日0時0分に起動されたジョブでは、第12のジョブステップは、実行周期に達していないため、実行されていない。10月3日0時5分に起動されたジョブで第1のジョブステップが異常終了した後、10月3日0時10分にジョブがリトライ実行されている。図4に示したように、第5のジョブステップのジョブステップカテゴリは「backup」で、ジョブステップカテゴリ「backup」のリトライ種別は「after・other・category」である。よって、ステップS42の処理により、リトライジョブ221に第5のジョブステップが含まれる。リトライ実行時にステップS29の処理を省くと、ステップS23及びS27の処理により、リトライ実行後の第5のジョブステップの前回実行時刻は、第1のジョブステップの異常終了時のジョブ起動時刻である10月3日0時5分となる。一方、図6に示したように、第12のジョブステップのジョブステップカテゴリは「part・of・transaction」で、ジョブステップカテゴリ「part・of・transaction」のリトライ種別は「negative」である。よって、ステップS43の処理により、リトライジョブ221に第12のジョブステップは含まれない。即ち、第12のジョブステップの前回実行時刻は10月2日0時0分のままとなる。よって、図15の例では、10月4日0時0分に起動されたジョブでは、第5のジョブステップがスキップされるにも関わらず、第12のジョブステップが実行されてしまう。即ち、第5のジョブステップと第12のジョブステップとの間にあった依存関係が破たんする。リトライ実行時に、ステップS29で全てのジョブステップの前回実行時刻を揃えておけば、このようなことは起こらない。本実施の形態では、ステップS29で全てのジョブステップの前回実行時刻を揃えることで、実行周期によって示されるジョブステップ間の依存関係を、リトライ実行成功後のジョブにおいて保つことが可能である。したがって、本実施の形態では、データ管理システム100の安全性を確保することができる。
本実施の形態では、ステップS23の処理により再開位置に対応するジョブステップが異常終了したときのジョブの起動時刻をリトライジョブ221の起動時刻とする。そのため、ステップS26の処理により再開位置に対応するジョブステップが異常終了したときに実行予定であったジョブステップのみを実行することができる。したがって、本実施の形態では、データ管理システム100におけるリトライ実行の効率性を高めることができる。
本実施の形態では、ジョブ管理装置200がリトライ動作定義122を用いることでリトライ実行時の動作を柔軟に制御することが可能となる。したがって、本実施の形態では、データ管理システム100におけるリトライ実行の効率性を高めることができる。以下、リトライ動作定義122のリトライ種別ごとに詳細を説明する。
リトライ種別「negative」については、リトライ実行で実行する必要のないジョブステップをスキップすることで、リトライ実行時の実行時間を短縮し、リトライ実行の効率性を高める効果がある。図4から図6に示したジョブ定義文の場合、第4のジョブステップ、第7のジョブステップ、第10から第12までのジョブステップのジョブステップカテゴリが「part・of・transaction」である。ジョブステップカテゴリ「part・of・transaction」のリトライ種別は「negative」に設定されている。よって、蓄積用テーブル104に対する処理を実行する第1のジョブステップが異常終了した後にリトライ実行する際には、一時参照用テーブル105又は参照用テーブル106に対する処理を実行する第4のジョブステップ、第7のジョブステップ、第10から第12までのジョブステップがスキップされる。これは、第4のジョブステップ、第7のジョブステップ、第10から第12までのジョブステップを実行しなくても、各テーブルの整合性が保たれるからである。
リトライ種別「after・other・category」についても、リトライ実行の効率性を高める効果がある。以下、詳細を説明する。
10月3日0時0分に第3のジョブステップが異常終了し、10月3日1時0分までジョブが実行された状況で、10月3日1時5分にリトライ実行すると仮定する。図4から図6に示したジョブ定義文の場合、第2のジョブステップ、第5のジョブステップ、第8のジョブステップのジョブステップカテゴリが「backup」である。ジョブステップカテゴリ「backup」のリトライ種別は「after・other・category」に設定されている。ジョブステップカテゴリ「backup」の設定がないと仮定すると、10月3日1時5分にリトライ実行する際にジョブ管理装置200が生成するリトライジョブ221は、図16の上部のような内容となる。即ち、リトライジョブ221は、第3、第4、第5、第6、第8、第9のジョブステップを順番に実行するジョブとなる。このリトライジョブ221を実行すると、10月3日0時0分に第2のジョブステップで実行した蓄積用テーブル104のバックアップの結果と、10月3日1時5分にリトライジョブ221の第5のジョブステップで実行した一時参照用テーブル105のバックアップの結果の間に不整合が生じる。この理由は次の通りである。
10月3日0時0分に第2のジョブステップで実行した蓄積用テーブル104のバックアップの結果には10月3日0時0分までのデータしか含まれていないが、10月3日1時0分まで第1のジョブステップにより蓄積用テーブル104へデータが投入されている。そのため、10月3日1時5分にリトライ実行する際には、蓄積用テーブル104に10月3日0時0分から10月3日1時0分までのデータがある。10月3日1時5分のリトライ実行時には、第3のジョブステップにより蓄積用テーブル104から10月3日0時0分から10月3日1時0分までのデータが差分として抽出され、第4のジョブステップで一時参照用テーブル105へ投入される。10月3日1時5分のリトライジョブ221において第5のジョブステップで一時参照用テーブル105の増分バックアップを取ると、一時参照用テーブル105の増分バックアップの結果は10月3日0時0分から10月3日1時0分までのデータを含む。このデータは第2のジョブステップで実行した蓄積用テーブル104のバックアップの結果には含まれないため、不整合が生じることとなる。
上記のような不整合を生じさせない単純な方法としては、データ管理システム100のユーザがジョブ管理装置200のログファイル等を参照して10月3日0時0分に第3のジョブステップが異常終了したことを把握し、第3のジョブステップから手動でリトライ実行するという方法がある。しかし、リトライ実行の効率が悪いという問題がある。
本実施の形態では、10月3日1時5分にリトライ実行する際にジョブ管理装置200が生成するリトライジョブ221は、図16の下部のような内容となる。即ち、リトライジョブ221は、第3、第4、第6、第9、第2、第5、第8のジョブステップを順番に実行するジョブとなる。このリトライジョブ221を10月3日1時5分に実行すると、第3のジョブステップにより蓄積用テーブル104から10月3日0時0分から10月3日1時0分までのデータが差分として抽出され、第4のジョブステップで一時参照用テーブル105へ投入された後、第2、第5、第8のジョブステップが実行される。そのため、蓄積用テーブル104のバックアップと一時参照用テーブル105のバックアップとの整合が取られる。また、リトライジョブ221をジョブ管理装置200が自動で生成及び実行するため、手動でリトライ実行する方法よりも効率が良い。
本実施の形態において、ステップS64の処理は、あるジョブで先行する方のジョブステップを実行する場合には、必ず後続する方のジョブステップを実行するという第1の依存関係を保つために実施される。以下、データベースのテーブルからデータを抽出して一時ファイルに上書きするジョブステップカテゴリ「part・of・transaction」のジョブステップと、抽出したデータを変換して一時ファイルに上書きするジョブステップと、変換したデータを別のテーブルへ投入するジョブステップカテゴリ「part・of・transaction」のジョブステップとからなるジョブを例に挙げて詳細を説明する。
ジョブをある時刻に起動した際に、変換のジョブステップが異常終了したとする。もしステップS64の処理がなければ、リトライ実行時に生成されるリトライジョブ221は変換のみを実行するジョブである。このリトライジョブ221を実行した後に、通常実行を行うと、変換の実行時に、リトライ実行後にテーブルへ投入されずに一時ファイルとして残っていた変換データが消失するという問題が生じる。ステップS64の処理を実施することで、再開ステップより前にジョブステップカテゴリ「part・of・transaction」の処理がある場合には暫定リトライジョブをステップS65の処理で変更しないようにできる。
本実施の形態によれば、リトライジョブ221の生成時に定義情報111に従ってジョブを変更することでリトライジョブ221の実行時に2つのジョブステップの状態に不整合が生じないようにできる。このため、ジョブ管理装置200が適用されるシステムの安全性を確保することができる。
***他の構成***
本実施の形態に係るジョブ管理装置200が適用されるシステムの構成は、図1に示したようなデータ管理システム100に限らない。具体的には、ジョブ管理装置200は、蓄積用テーブル104、一時参照用テーブル105、参照用テーブル106とは異なる1つ以上のテーブルを利用するシステムに適用することができる。
また、本実施の形態では、ジョブ管理装置200の機能がソフトウェアで実現されるが、変形例として、ジョブ管理装置200の機能がハードウェアで実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図17を参照して、本実施の形態の変形例に係るジョブ管理装置200の構成を説明する。
ジョブ管理装置200は、処理回路909、入力装置903、通信装置904といったハードウェアを備える。
処理回路909は、前述した「部」及び記憶部204の機能を実現する専用の電子回路である。処理回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate・Array)、ASIC(Application・Specific・Integrated・Circuit)、又は、FPGA(Field−Programmable・Gate・Array)である。
「部」及び記憶部204の機能は、1つの処理回路909で実現されてもよいし、複数の処理回路909に分散して実現されてもよい。
別の変形例として、ジョブ管理装置200の機能がソフトウェアとハードウェアとの組み合わせで実現されてもよい。即ち、ジョブ管理装置200の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
プロセッサ901、記憶装置902、及び、処理回路909を、総称して「プロセッシングサーキットリ」という。つまり、ジョブ管理装置200の構成が図2及び図17のいずれに示した構成であっても、「部」及び記憶部204の機能は、プロセッシングサーキットリにより実現される。
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
以上、本発明の実施の形態について説明したが、この実施の形態を部分的に実施しても構わない。具体的には、この実施の形態の説明において「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 データ管理システム、101 データ収集装置、102 データファイル、103 DBMS、104 蓄積用テーブル、105 一時参照用テーブル、106 参照用テーブル、107 プログラム起動装置、111 定義情報、121 異常状態動作定義、122 リトライ動作定義、131 リトライ実行命令、200 ジョブ管理装置、201 受け付け部、202 実行部、203 制御部、204 記憶部、211 ジョブ実行情報、212 実行情報、221 リトライジョブ、231 異常状態動作制御部、232 リトライ動作制御部、901 プロセッサ、902 記憶装置、903 入力装置、904 通信装置、909 処理回路。

Claims (15)

  1. プロセッサを用いてジョブを実行する実行部と、
    前記実行部により実行されるジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付ける受け付け部と、
    前記定義情報に従って前記実行部により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を前記実行部に停止させる制御部と
    を備え
    前記制御部は、前記定義情報に従って前記実行部により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記再開ステップと、前記定義情報で定義された実行順序が前記再開ステップよりも後であり、前記定義情報で定義された実行条件を前記再開ステップの異常終了の発生時に満たすジョブステップとを含むジョブをリトライジョブとして生成し、前記リトライジョブを前記実行部に実行させるジョブ管理装置。
  2. 前記制御部は、少なくとも前記リトライジョブの実行が完了するまでは、前記定義情報で定義された実行順序が前記再開ステップ以降のジョブステップの実行を前記実行部に停止させる請求項に記載のジョブ管理装置。
  3. 前記定義情報は、さらに、前記複数のジョブステップの種別を定義する情報を含み、
    前記制御部は、前記定義情報で定義された種別によって、前記リトライジョブに含まれるジョブステップの実行順序を決定する請求項又はに記載のジョブ管理装置。
  4. 前記定義情報で定義される1つの種別として、前記制御部に対し、前記リトライジョブに含まれるジョブステップのうち、前記定義情報で定義された種別が当該1つの種別であるジョブステップの実行順序を、前記定義情報で定義された種別が他の種別であるジョブステップよりも後にさせる種別がある請求項に記載のジョブ管理装置。
  5. 前記定義情報は、さらに、前記複数のジョブステップの種別を定義する情報を含み、
    前記制御部は、前記定義情報で定義された種別によって、前記リトライジョブに含めるジョブステップを決定する請求項又はに記載のジョブ管理装置。
  6. 前記定義情報で定義される1つの種別として、前記制御部に対し、前記定義情報で定義された実行順序が前記再開ステップよりも前であり、前記定義情報で定義された種別が当該1つの種別であるジョブステップを前記リトライジョブに含めさせる種別がある請求項に記載のジョブ管理装置。
  7. 前記定義情報で定義される1つの種別として、前記制御部に対し、前記複数のジョブステップの中に、前記定義情報で定義された実行順序が前記再開ステップ以前にあり、前記定義情報で定義された種別が当該1つの種別であるジョブステップがない場合、前記定義情報で定義された実行順序が前記再開ステップよりも後であり、前記定義情報で定義された種別が当該1つの種別であるジョブステップを前記リトライジョブから除かせる種別がある請求項に記載のジョブ管理装置。
  8. 情報を記憶するための記憶部
    をさらに備え、
    前記定義情報は、前記複数のジョブステップの実行条件として、前記複数のジョブステップの実行間隔を定義する情報を含み、
    前記実行部は、ジョブステップごとに、前回の実行時刻を示す実行情報を前記記憶部に書き込み、前記定義情報に従ってジョブを実行する場合、前記定義情報で定義された実行順序に沿って、前記実行情報で示された前回の実行時刻から前記定義情報で定義された実行間隔以上の時間が経過したジョブステップを実行し、実行したジョブステップについて、前記実行情報で示された前回の実行時刻を実行中のジョブの起動時刻に書き換え、前記リトライジョブを実行する場合、前記制御部により決定される実行順序に沿って、前記リトライジョブに含まれるジョブステップを実行し、前記複数のジョブステップについて、前記実行情報で示された前回の実行時刻を共通の時刻に変更する請求項からのいずれか1項に記載のジョブ管理装置。
  9. 情報を記憶するための記憶部
    をさらに備え、
    前記実行部は、ジョブステップごとに、異常終了の発生の有無を示す実行情報を前記記憶部に書き込み、前記定義情報に従ってジョブを実行する場合、異常終了が発生したジョブステップについて、前記実行情報を、異常終了が発生したことを示す情報に更新し、前記リトライジョブを実行する場合、前記再開ステップについて、異常終了が発生しなければ、前記実行情報を、異常終了が発生していないことを示す情報に更新し、
    前記制御部は、前記実行情報で異常終了が発生したことが示されたジョブステップが複数ある場合、前記実行情報で異常終了が発生したことが示されたジョブステップがなくなるまで、前記定義情報で定義された実行順序が後のジョブステップを先に前記再開ステップに決定して前記リトライジョブを生成し、前記リトライジョブを前記実行部に実行させる処理を繰り返す請求項からのいずれか1項に記載のジョブ管理装置。
  10. 前記定義情報は、さらに、前記複数のジョブステップのうち、他のジョブステップに異常終了が発生しても実行されるべきジョブステップを優先ステップとして定義する情報を含み、
    前記制御部は、前記定義情報に従って前記実行部により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が前記再開ステップよりも前であり、前記定義情報で前記優先ステップとして定義されていないジョブステップの実行を前記実行部に停止させる請求項1からのいずれか1項に記載のジョブ管理装置。
  11. プロセッサを用いてジョブを実行する実行部と、
    前記実行部により実行されるジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付ける受け付け部と、
    前記定義情報に従って前記実行部により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を前記実行部に停止させる制御部と
    を備え
    前記定義情報は、さらに、前記複数のジョブステップのうち、他のジョブステップに異常終了が発生しても実行されるべきジョブステップを優先ステップとして定義する情報を含み、
    前記制御部は、前記定義情報に従って前記実行部により実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が前記再開ステップよりも前であり、前記定義情報で前記優先ステップとして定義されていないジョブステップの実行を前記実行部に停止させるジョブ管理装置。
  12. コンピュータが、プロセッサを用いてジョブを実行し、
    前記コンピュータが、実行するジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付け、
    前記コンピュータが、前記定義情報に従って実行したジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を停止し、
    前記コンピュータが、前記定義情報に従って実行したジョブに含まれるジョブステップに異常終了が発生した場合、前記再開ステップと、前記定義情報で定義された実行順序が前記再開ステップよりも後であり、前記定義情報で定義された実行条件を前記再開ステップの異常終了の発生時に満たすジョブステップとを含むジョブをリトライジョブとして生成し、前記リトライジョブを実行するジョブ管理方法。
  13. コンピュータが、プロセッサを用いてジョブを実行し、
    前記コンピュータが、実行するジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付け、
    前記コンピュータが、前記定義情報に従って実行したジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を停止し、
    前記定義情報は、さらに、前記複数のジョブステップのうち、他のジョブステップに異常終了が発生しても実行されるべきジョブステップを優先ステップとして定義する情報を含み、
    前記コンピュータが、前記定義情報に従って実行したジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が前記再開ステップよりも前であり、前記定義情報で前記優先ステップとして定義されていないジョブステップの実行を停止するジョブ管理方法。
  14. コンピュータに、
    プロセッサを用いてジョブを実行する処理と、
    実行されるジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付ける処理と、
    前記定義情報に従って実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を停止する処理と
    を実行させ
    前記コンピュータに、
    前記定義情報に従って実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記再開ステップと、前記定義情報で定義された実行順序が前記再開ステップよりも後であり、前記定義情報で定義された実行条件を前記再開ステップの異常終了の発生時に満たすジョブステップとを含むジョブをリトライジョブとして生成し、前記リトライジョブを実行する処理
    を実行させるジョブ管理プログラム。
  15. コンピュータに、
    プロセッサを用いてジョブを実行する処理と、
    実行されるジョブの構成要素となる複数のジョブステップの実行順序及び実行条件を定義する定義情報の入力を受け付ける処理と、
    前記定義情報に従って実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が、異常終了が発生したジョブステップである再開ステップ以降のジョブステップの実行を停止する処理と
    を実行させ
    前記定義情報は、さらに、前記複数のジョブステップのうち、他のジョブステップに異常終了が発生しても実行されるべきジョブステップを優先ステップとして定義する情報を含み、
    前記コンピュータに、
    前記定義情報に従って実行されたジョブに含まれるジョブステップに異常終了が発生した場合、前記定義情報で定義された実行順序が前記再開ステップよりも前であり、前記定義情報で前記優先ステップとして定義されていないジョブステップの実行を停止する処理
    を実行させるジョブ管理プログラム。
JP2017519017A 2015-09-18 2015-09-18 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム Active JP6342070B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/076649 WO2017046939A1 (ja) 2015-09-18 2015-09-18 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム

Publications (2)

Publication Number Publication Date
JPWO2017046939A1 JPWO2017046939A1 (ja) 2017-09-14
JP6342070B2 true JP6342070B2 (ja) 2018-06-13

Family

ID=58288536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017519017A Active JP6342070B2 (ja) 2015-09-18 2015-09-18 ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム

Country Status (4)

Country Link
US (1) US10346262B2 (ja)
JP (1) JP6342070B2 (ja)
CN (1) CN107924357B (ja)
WO (1) WO2017046939A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102483313B1 (ko) * 2022-10-07 2023-01-02 이데아텍(주) Api 서비스의 일괄 처리를 지원하는 서비스 제공 시스템 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824465B2 (en) * 2017-03-23 2020-11-03 Hewlett Packard Enterprise Development Lp Transaction request epochs
CN111274090A (zh) * 2020-01-16 2020-06-12 泰康保险集团股份有限公司 作业处理方法、装置、介质及电子设备
US11556425B2 (en) * 2021-04-16 2023-01-17 International Business Machines Corporation Failover management for batch jobs
US20220413920A1 (en) * 2021-06-24 2022-12-29 Oracle International Corporation Selecting a node of a work group for executing a target transaction of another work group to execute skippable steps prior to a predicted interruption
US20220413895A1 (en) * 2021-06-24 2022-12-29 Oracle International Corporation Selecting a node dedicated to transactions of a particular work group for executing a target transaction of another work group
US20220413896A1 (en) * 2021-06-24 2022-12-29 Oracle International Corporation Selecting a node group of a work group for executing a target transaction of another work group to optimize parallel execution of steps of the target transaction
CN116880195B (zh) * 2023-07-21 2024-03-26 天筑科技股份有限公司 一种基于规则链引擎的多目标协同自适应方法及装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2291543A1 (fr) * 1974-11-13 1976-06-11 Honeywell Bull Soc Ind Dispositif et methode assurant le traitement des exceptions dans une machine de traitement de donnees
JPH03188528A (ja) 1989-09-27 1991-08-16 Hitachi Ltd ジョブ実行管理方法およびシステム
JPH0659913A (ja) 1992-08-07 1994-03-04 Kanebo Ltd バッチジョブスケジューリングシステム
JPH06103078A (ja) 1992-09-18 1994-04-15 Hitachi Ltd 再実行制御方式
JPH075907A (ja) 1992-09-28 1995-01-10 Toyo Chem Co Ltd ジョブスケジューラ
JP2723068B2 (ja) 1995-02-20 1998-03-09 日本電気株式会社 ジョブ再実行方式
JPH08272626A (ja) * 1995-03-30 1996-10-18 Hitachi Software Eng Co Ltd バッチジョブ処理方法
JPH08286932A (ja) * 1995-04-11 1996-11-01 Hitachi Ltd ジョブの並列実行制御方法
JPH09172436A (ja) * 1995-12-20 1997-06-30 Oki Electric Ind Co Ltd 回線制御システム
JP2809271B2 (ja) 1996-04-15 1998-10-08 日本電気株式会社 ジョブ再実行方式
JPH1078894A (ja) 1996-09-03 1998-03-24 Hitachi Ltd 計算機システムの障害回復支援方法
JPH11353284A (ja) 1998-06-10 1999-12-24 Hitachi Ltd ジョブ再実行方法
US6708224B1 (en) * 1999-01-19 2004-03-16 Netiq Corporation Methods, systems and computer program products for coordination of operations for interrelated tasks
JP3846222B2 (ja) 2001-05-01 2006-11-15 日本電気株式会社 ジョブ再実行方式
US7516458B2 (en) * 2002-07-31 2009-04-07 Sap Aktiengesellschaft Job management in presence of implicit dependency
JP2004164271A (ja) 2002-11-13 2004-06-10 Nec System Technologies Ltd ジョブ実行監視方法及びプログラム
US20040267823A1 (en) * 2003-06-24 2004-12-30 Microsoft Corporation Reconcilable and undoable file system
US7269607B2 (en) * 2003-09-29 2007-09-11 International Business Machines Coproartion Method and information technology infrastructure for establishing a log point for automatic recovery of federated databases to a prior point in time
JP2006103151A (ja) 2004-10-05 2006-04-20 Canon Inc 画像形成装置、その制御方法およびプログラム
US7707451B2 (en) * 2005-06-28 2010-04-27 Alcatel-Lucent Usa Inc. Methods and devices for recovering from initialization failures
US8347291B2 (en) * 2006-12-29 2013-01-01 Sap Ag Enterprise scheduler for jobs performable on the remote system by receiving user specified values for retrieved job definitions comprising metadata representation of properties of jobs
JP4935595B2 (ja) * 2007-09-21 2012-05-23 富士通株式会社 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
JP4989496B2 (ja) 2008-01-15 2012-08-01 三菱電機株式会社 コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5231035B2 (ja) 2008-01-31 2013-07-10 株式会社野村総合研究所 ジョブ処理システムおよびジョブ処理方法
JP5133775B2 (ja) 2008-05-19 2013-01-30 株式会社野村総合研究所 ジョブ管理装置
CN101685452B (zh) * 2008-09-26 2012-06-27 阿里巴巴集团控股有限公司 数据仓库调度方法及调度系统
JP5556380B2 (ja) 2010-05-28 2014-07-23 富士通株式会社 管理装置,管理方法,および管理プログラム
CN103034554B (zh) * 2012-12-30 2015-11-18 焦点科技股份有限公司 一种纠错重启以及自动判断启动的etl调度系统及方法
JP6064734B2 (ja) * 2013-03-27 2017-01-25 富士通株式会社 ワークフロー制御プログラム、装置および方法
US9313133B2 (en) * 2013-09-10 2016-04-12 Robin Systems, Inc. Anticipatory warm-up of cluster resources for jobs processed on multiple cluster nodes
US9417918B2 (en) * 2013-11-20 2016-08-16 International Business Machines Corporation Computing session workload scheduling and management of parent-child tasks
CN103942034A (zh) * 2014-03-21 2014-07-23 深圳华大基因科技服务有限公司 任务调度方法及实现该方法的电子装置
US10142174B2 (en) * 2015-08-25 2018-11-27 Oracle International Corporation Service deployment infrastructure request provisioning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102483313B1 (ko) * 2022-10-07 2023-01-02 이데아텍(주) Api 서비스의 일괄 처리를 지원하는 서비스 제공 시스템 및 방법

Also Published As

Publication number Publication date
CN107924357A (zh) 2018-04-17
US20180217901A1 (en) 2018-08-02
US10346262B2 (en) 2019-07-09
WO2017046939A1 (ja) 2017-03-23
CN107924357B (zh) 2019-07-05
JPWO2017046939A1 (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
JP6342070B2 (ja) ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
US10089185B2 (en) Multi-threaded smart copy
US8121981B2 (en) Database snapshot management
US9244776B2 (en) Reducing reading of database logs by persisting long-running transaction data
JP5970617B2 (ja) 開発支援システム
US8145944B2 (en) Business process error handling through process instance backup and recovery
US8799337B2 (en) System reset and system restore
US9183038B2 (en) Job management system that determines if master data has been updated, then re-executes a sub-job based on available executing computers and data sharing status
JP2008033527A (ja) ストレージ装置、ディスク装置及びデータ復元方法
JP2001014175A (ja) ジョブ運用管理システム、ジョブ運用管理方法及び記憶媒体
US20160147561A1 (en) Information processing method and information processing system
JP6688433B2 (ja) 計算機システム
JP6555908B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4989496B2 (ja) コマンドネット実行装置、コマンドネット実行プログラム及びコマンドネット実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2022133010A (ja) ジョブ管理装置、ジョブ管理方法及びプログラム
US6792609B1 (en) System and method for associating action diaries with a parent class object
CN114661339B (zh) 一种实现本地数据自动提交到远程服务器的方法及装置
JP2014006845A (ja) 管理方法,管理装置および管理プログラム
JP5317182B2 (ja) Pos端末、モジュールアップデート方法およびモジュールアップデートプログラム
US11132260B2 (en) Data processing method and apparatus
JP2006172065A (ja) チェックポイント採取方法、システム及びプログラム
JP2003345747A (ja) 処理実行管理方法、処理実行管理装置、プログラム、及びプログラムを記録した記録媒体
EP3944101A1 (en) Information processing program, information processing method, and information processing device
US20170228295A1 (en) Computer-readable recording medium, restoration process control method, and information processing device
JP2012226504A (ja) プログラムの実行結果の比較方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180515

R150 Certificate of patent or registration of utility model

Ref document number: 6342070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250