JP2018049395A - Job execution control apparatus and program - Google Patents
Job execution control apparatus and program Download PDFInfo
- Publication number
- JP2018049395A JP2018049395A JP2016183485A JP2016183485A JP2018049395A JP 2018049395 A JP2018049395 A JP 2018049395A JP 2016183485 A JP2016183485 A JP 2016183485A JP 2016183485 A JP2016183485 A JP 2016183485A JP 2018049395 A JP2018049395 A JP 2018049395A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- job
- unit
- state
- node unit
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims description 44
- 238000001514 detection method Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Retry When Errors Occur (AREA)
Abstract
Description
本発明の実施形態は、ジョブ実行制御装置およびプログラムに関する。 Embodiments described herein relate generally to a job execution control apparatus and a program.
コンピューター処理において、従来、ジョブの実行を制御する技術が存在する。
ジョブは、入力データと、処理と、出力データとを予め定義したひとまとまりの定義である。また、複数のジョブを連続して実行させるための定義を予め行ったり、条件に応じて異なるジョブを実行させるための定義を予め行ったりすることもある。複数のジョブからなる一連の処理を、例えば「ジョブネット」などと呼ぶことがある。また逆に、1件のジョブを構成する複数の処理単位を、例えば「ジョブステップ」と呼ぶこともある。なお、個々のジョブないしはジョブステップは、正常に実行されて終了する場合もあるし、何らかのエラーにより異常終了する場合もある。
Conventionally, there is a technique for controlling execution of a job in computer processing.
A job is a set of definitions in which input data, processing, and output data are defined in advance. Also, a definition for executing a plurality of jobs continuously may be performed in advance, or a definition for executing different jobs depending on conditions may be performed in advance. A series of processes composed of a plurality of jobs may be called, for example, a “job net”. Conversely, a plurality of processing units constituting one job may be referred to as “job steps”, for example. Each job or job step may be normally executed and terminated, or may be abnormally terminated due to some error.
従来の技術において、ジョブの障害発生時に、ジョブ構成の情報等を参照することによりジョブの再実行を試みるなど、人手を介さずに障害からの回復をしようとするための技術が存在する。しかしながら、従来技術では、ジョブが本当に失敗したのか、単にジョブの状態を示す情報にアクセスできないだけなのか、確認していないため、実際にはまだジョブが稼働しているのに失敗したと判断してしまっている可能性があった。 In the prior art, there is a technique for attempting to recover from a failure without human intervention, such as attempting to re-execute a job by referring to job configuration information or the like when a job failure occurs. However, the conventional technology has not confirmed whether the job really failed or simply cannot access information indicating the status of the job. There was a possibility that.
また、従来の技術において、プログラムの分散型実行環境を用いて、複数のジョブを、複数のノードで並列に実行させる技術が存在する。しかしながら、従来技術では、他の実行ノード上でジョブの再実行を自動的に行うことができず、コンピューターのリソースが効果的に使用されていない可能性があった。 In addition, there is a technology in the related art that executes a plurality of jobs in parallel on a plurality of nodes using a distributed execution environment of a program. However, in the prior art, the job cannot be automatically re-executed on another execution node, and there is a possibility that the computer resources are not effectively used.
本発明が解決しようとする課題は、ジョブの再実行を自動的に他ノード上でも実行することを可能とする、ジョブ実行制御装置およびプログラムを提供することである。 The problem to be solved by the present invention is to provide a job execution control device and a program that enable a job re-execution to be automatically executed on another node.
実施形態のジョブ実行制御装置は、実行マネージャー部と、複数の実行ノード部と、実行状態共有部とを持つ。実行マネージャー部は、ジョブの実行要求および再実行要求を送出する。複数の実行ノード部の各々は、前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する。実行状態共有部は、前記実行ノード部における前記ジョブの実行状態を保持する。且つ、前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものである。また、前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものである。また、前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。 The job execution control apparatus according to the embodiment includes an execution manager unit, a plurality of execution node units, and an execution state sharing unit. The execution manager sends out a job execution request and a re-execution request. Each of the plurality of execution node units executes the requested job based on the execution request or the re-execution request from the execution manager unit. The execution state sharing unit holds the execution state of the job in the execution node unit. The execution node unit writes the execution state of the job being executed in the execution state sharing unit. In addition, when the execution manager unit detects that the execution of the job in the execution node unit has failed, the execution manager unit transmits the re-execution request for the job. Further, when the execution node unit receives the re-execution request for the job from the execution manager unit, the execution node unit refers to the execution state written in the execution state sharing unit to determine the execution state of the job. And confirm whether the job is still being executed in the other execution node unit and whether the job has been processed, and the job is already executed in the other execution node unit. If the job has not been processed, the job is re-executed.
以下、実施形態のジョブ実行制御装置およびプログラムを、図面を参照して説明する。 Hereinafter, a job execution control device and a program according to an embodiment will be described with reference to the drawings.
(第1の実施形態)
図1は、本実施形態によるジョブ実行制御装置1の概略機能構成を示すブロック図である。図示するように、ジョブ実行制御装置1は、実行マネージャー部2と、メッセージブローカー部3と、複数の実行ノード部5と、実行状態共有部6とを含んで構成される。
ジョブ実行制御装置1は、1台の筺体内に収容された装置として実現してもよい。また、複数台の筺体でなる装置を通信ネットワーク等で相互に接続して、全体を1個のシステムとして実現してもよい。具体例としては、複数のサーバーコンピューター等を通信ネットワークで相互に接続して、その全体で構成されるシステムを、ジョブ実行制御装置1としてもよい。ジョブ実行制御装置1を構成する各部の機能は、次の通りである。
(First embodiment)
FIG. 1 is a block diagram showing a schematic functional configuration of a job
The job
実行マネージャー部2は、ジョブフローの定義データに基づいて、ジョブの実行順序を制御する機能を有する。また、実行マネージャー部2は、ジョブ実行要求のメッセージを送出する。また、実行マネージャー部2は、ジョブの実行が成功したか失敗したかを検知し、ジョブを再実行すべきであるか否かを判断する。ジョブを再実行すべきである場合には、実行マネージャー部2は、ジョブの再実行を要求するメッセージを送出する。つまり、実行マネージャー部2は、実行ノード部5におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出する場合がある。
The
なお実行マネージャー部2は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。
The
メッセージブローカー(message broker)部3は、実行マネージャー部2と実行ノード部5との間において通信メッセージの仲介を行う機能を有する。実行マネージャー部2から実行ノード部5の側に送られるメッセージ(実行要求系のメッセージ)は、実行要求キューに格納され、管理される。実行ノード部5から実行マネージャー部2の側に送られるメッセージ(実行結果系のメッセージ)は、実行結果キューに格納され、管理される。
つまり、メッセージブローカー部3は、少なくとも、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡すものである。
The
That is, the
各々の実行ノード部5は、実行マネージャー部2からの実行要求または再実行要求のメッセージに基づき、要求されたジョブを実行するための機能を有するものである。
各実行ノード部5は、異なるノード上で稼働する。つまり、各実行ノード部5は、物理的にあるいは論理的に独立した環境で稼働する。したがって、ある各実行ノード部5で障害が起こっても他の各実行ノード部5にはその障害が波及しないように、システムを構成している。各実行ノード部5は、すべて同一筺体内に収容されていてもよいし、その一部または全部がそれぞれ異なる筺体に収容されていてもよい。
また、実行ノード部5は、実行状態共有部6への、ジョブの実行状態の情報の記録を行う。つまり、実行ノード部5は、実行しているジョブの実行状態を実行状態共有部6に書き込む。また実行ノード部5は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
Each
Each
The
なお、実行ノード部5は、ジョブの再実行に関する制御を行う。即ち、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部5ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。
The
実行ノード部5は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認するようにしてもよい。
実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて複数回(少なくとも2回)、実行状態共有部6に記録された当該ジョブの実行状態を参照し、各回間で実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定するようにしてもよい。
When the
The
また、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する制御を行ってもよい。
Further, when the
実行状態共有部6は、実行ノード部5におけるジョブの実行状態の情報を保持する。これにより、複数の実行ノード部5間で、ジョブの実行状態を共有できるようになる。実行状態共有部6は、データベース管理システム等のよって管理されたデータとして、ジョブの実行状態の情報を保持する。実行状態共有部6は、ジョブの実行IDに関連付けて、ジョブの実行状態の情報を保持する。
実行状態共有部6は、実行ノード部5からの記録要求により、ジョブの実行状態の情報を書き込む。また、実行状態共有部6は、実行ノード部5からの参照要求により、求められる実行IDを有するジョブの実行状態の情報を提供する。
The execution state sharing unit 6 holds information on the job execution state in the
The execution state sharing unit 6 writes job execution state information in response to a recording request from the
図2は、実行マネージャー部2のより詳細な機能構成を示すブロック図である。図示するように、実行マネージャー部2は、ジョブネット実行制御部21と、再実行回数制御部22と、アラート通知部23とを含んで構成される。
FIG. 2 is a block diagram showing a more detailed functional configuration of the
ジョブネット実行制御部21は、ジョブの実行順序を定義したジョブネットについて、その実行制御を行う。
The job net
再実行回数制御部22は、ジョブが再実行された回数を記録し、その回数を参照可能とする。
The re-execution
アラート通知部23は、ジョブの再実行回数が所定の最大値を超えた場合に、アラートを出力する。このアラートを出力することにより、再実行回数が所定値を超えた事象をユーザーに通知することができる。
The
図3は、メッセージブローカー部3のより詳細な機能構成を示すブロック図である。図示するように、メッセージブローカー部3は、実行要求キュー管理部31と、実行結果キュー管理部32と、トランザクション管理部33とを含んで構成される。
FIG. 3 is a block diagram showing a more detailed functional configuration of the
実行要求キュー管理部31は、実行マネージャー部2から渡されるジョブ実行要求メッセージ(以下、単に「ジョブ実行要求」と呼ぶことがある)、およびその他の実行要求系のメッセージを保持するためのキュー(queue)を管理する。このキューは、先入先出方式(first in, first out)のメモリーであり、実行要求キュー管理部31内に存在する。キューに格納されたジョブ実行要求は、順次読み出され、実行ノード部5に渡される。
The execution request
実行結果キュー管理部32は、実行ノード部5から返されるジョブ実行結果メッセージ(以下、単に「ジョブ実行結果」と呼ぶことがある)、およびその他の実行結果系のメッセージを保持するためのキューを管理する。このキューは、先入先出方式のメモリーであり、実行結果キュー管理部32内に存在する。キューに格納されたジョブ実行結果は、順次読み出され、実行マネージャー部2に渡される。
The execution result
トランザクション管理部33は、ジョブ実行要求およびジョブ実行結果のメッセージの受け渡しの処理において、そのトランザクションを管理する機能を有する。
The
図4は、実行ノード部5のより詳細な機能構成を示すブロック図である。図示するように、個々の実行ノード部5は、ジョブフロー定義部51と、ジョブ実行制御部52と、ジョブ再実行制御部53と、実行状態記録部54と、実行状態参照部55と、実行状態確認部56とを含んで構成される。
FIG. 4 is a block diagram showing a more detailed functional configuration of the
ジョブフロー定義部51は、ジョブの処理フローの定義を保持し、または参照する機能を有する。
ジョブ実行制御部52は、ジョブの実行を行うとともに、ジョブの実行状況を制御する。
ジョブ再実行制御部53は、ジョブの再実行に関する制御を行う。ジョブの再実行に関する制御は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認したり、ジョブが完了しているか否かを確認したり、ジョブの再開ポイントを決定したりする処理を含む。
The job flow definition unit 51 has a function of holding or referring to the definition of the job processing flow.
The job
The job
実行状態記録部54は、ジョブの実行状態を、実行状態共有部6に記録する機能を有する。ここで、ジョブの実行状態とは、ジョブフロー中におけるどの部分(ステップ)までが実行されたかを表す情報である。
実行状態参照部55は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
The execution
The execution
実行状態確認部56は、実行状態参照部55が参照したジョブの実行状態の情報に基づいて、ある特定のジョブが実行されているかどうかを判断する。例えば、実行状態確認部56は、実行状態参照部55を介して、ある特定のジョブの前後に実行される他のジョブの実行状態を取得し、それらの実行状態の情報に基づいて、当該特定のジョブが実行されているかどうかを判断する。
実行状態確認部56による処理の詳細については、後で、別の図面を参照しながら説明する。
The execution
Details of the processing by the execution
図5は、ジョブ実行制御装置1にける動作手順の例を示すシーケンスチャートである。同図は、ジョブ実行制御装置1内の各部の動作と、それら各部間の相互作用(データのやりとり等)を示すものである。以下、このシーケンスチャートに沿って、動作手順を説明する。
まず、ステップS1において、実行マネージャー部2は、ジョブ実行要求をメッセージブローカー部3に送る。このとき、ジョブ実行要求は、実行IDの情報を含んでいる。これを受けて、メッセージブローカー部3は、受信したジョブ実行要求を実行要求キューに書き込む。このジョブ実行要求は、一時的に、実行要求キューに保持される。
なお、ステップS1において、メッセージブローカー部3の実行要求キュー管理部31が、上記のジョブ実行要求のメッセージを実行要求キューに書き込む。
FIG. 5 is a sequence chart showing an example of an operation procedure in the job
First, in step S <b> 1, the
In step S1, the execution request
次に、ステップS1.1において、1つの実行ノード部5(実行ノード部A)は、メッセージブローカー部3から、ジョブ実行要求を受け取る。つまり、メッセージブローカー部3は、実行要求キューから上記のジョブ実行要求を取り出し、そのジョブ実行要求を上記の実行ノード部5(実行ノード部A)に送信する。
なお、ステップS1.1において、メッセージブローカー部3の実行要求キュー管理部31が、ジョブ実行要求を実行ノード部5に送信する。
Next, in step S1.1, one execution node unit 5 (execution node unit A) receives a job execution request from the
In step S1.1, the execution request
次に、ステップS2において、上記ステップS1.1でジョブ実行要求を受信した実行ノード部5(実行ノード部A)が、ジョブを実行する。ここで実行されるジョブは、渡されたジョブ実行要求が持つ実行IDによって特定されるジョブである。
なお、ステップS2において、実行ノード部5のジョブ実行制御部52が、上記のジョブの実行を制御する。
Next, in step S2, the execution node unit 5 (execution node unit A) that has received the job execution request in step S1.1 executes the job. The job executed here is a job specified by the execution ID of the passed job execution request.
In step S2, the job
そして、ステップS3において、実行ノード部5(実行ノード部A)は、実行状態共有部6に、ジョブの実行状態を書き込む。このジョブの実行状態の情報は、実行IDを含むものである。これにより、当該実行IDのジョブの実行状態の情報は、共有可能な状態で、実行状態共有部6に記録される。
なお、ステップS3において、実行ノード部5の実行状態記録部54が、ジョブの実行状態を実行状態共有部6に書き込む。
In
In step S3, the execution
次に、ステップS4において、本シーケンス図の流れでは、実行ノード部5(実行ノード部A)が、ジョブの実行を失敗する。つまり、コンピューターでの処理の実行における何らかのエラーにより、ジョブが異常に終了する。 Next, in step S4, in the flow of this sequence diagram, the execution node unit 5 (execution node unit A) fails to execute the job. In other words, the job ends abnormally due to some error in the execution of processing on the computer.
次に、ステップS5において、実行ノード部5(実行ノード部A)は、ステップS4におけるジョブ実行の失敗を受けて、ロールバック(rollback)メッセージをメッセージブローカー部3に返す。このロールバックメッセージは、失敗したジョブの実行IDを含むものである。メッセージブローカー部3は、このロールバックメッセージを、実行結果キューに書き込む。
なお、ステップS5において、メッセージブローカー部3の実行結果キュー管理部32が、上記のロールバックメッセージを実行結果キューに書き込む。
Next, in step S5, the execution node unit 5 (execution node unit A) receives a failure in job execution in step S4, and returns a rollback message to the
In step S5, the execution result
次に、ステップS5.1において、実行マネージャー部2は、メッセージブローカー部3から、上記のロールバックメッセージを受け取る。つまり、メッセージブローカー部3は、実行結果キューから上記のロールバックメッセージを取り出し、そのロールバックメッセージを上記の実行マネージャー部2に送信する。そして、実行マネージャー部2においては、このロールバックメッセージを受けて、当該実行IDによって特定されるジョブの実行回数を記録する。つまり、実行マネージャー部2は、当該実行IDのジョブの実行回数を、1だけ増分させる。
そして、このとき実行マネージャー部2は、当該実行IDのジョブの再実行回数が、予め定められた指定値を超えたか否かを判定する。再実行回数がまだその指定値を超えていない場合には、次にステップS6に進む。再実行回数がその指定値を超えた場合には、次にステップS8に進む。
なお、ステップS5.1において、実行マネージャー部2の再実行回数制御部22が、上記の再実行回数の記録や、再実行回数の値が指定値を超えているか否かに基づく処理の分岐を制御する。また、メッセージブローカー部3の実行結果キュー管理部32が、上記のロールバックメッセージを実行マネージャー部2に送信する。
Next, in step S5.1, the
At this time, the
In step S5.1, the re-execution
次に、ステップS6に進んだ場合、同ステップにおいて、実行マネージャー部2は、ジョブの再実行のメッセージをメッセージブローカー部3に送る。このとき、再実行のメッセージは、実行IDの情報を含んでいる。これを受けて、メッセージブローカー部3は、受信した再実行のメッセージを実行要求キューに書き込む。この再実行メッセージは、一時的に、実行要求キューに保持される。
なお、ステップS6において、メッセージブローカー部3の実行要求キュー管理部31が、上記の再実行のメッセージを実行要求キューに書き込む。
Next, when the process proceeds to step S6, the
In step S6, the execution request
次に、ステップS6.1において、1つの実行ノード部5(実行ノード部B)は、メッセージブローカー部3から、再実行のメッセージを受け取る。つまり、メッセージブローカー部3は、実行要求キューから上記の再実行のメッセージを取り出し、その再実行のメッセージを上記の実行ノード部5(実行ノード部B)に送信する。なお、ここで、実行ノード部Bは、実行ノード部Aとは異なるノードである。
なお、ステップS6.1において、メッセージブローカー部3の実行要求キュー管理部31が、再実行のメッセージを実行ノード部5に送信する。
Next, in step S6.1, one execution node unit 5 (execution node unit B) receives a re-execution message from the
In step S <b> 6.1, the execution request
次に、ステップS6.1.1において、上記の再実行のメッセージを受信した実行ノード部5(実行ノード部B)は、指定された実行IDによって特定されるジョブの実行状態を参照する。具体的には、実行ノード部5(実行ノード部B)は、実行状態共有部6に記録されているジョブの実行状態を参照する。
なお、ステップS6.1.1において、実行ノード部5の実行状態参照部55が、実行状態共有部6に記録されているジョブの実行状態を参照する。
Next, in step S6.1.1, the execution node unit 5 (execution node unit B) that has received the re-execution message refers to the execution state of the job specified by the specified execution ID. Specifically, the execution node unit 5 (execution node unit B) refers to the job execution state recorded in the execution state sharing unit 6.
In step S6.1.1, the execution
次に、ステップS6.1.2において、実行ノード部5(実行ノード部B)は、ステップS6.1.1で実行状態共有部6を参照した結果に基づいて、ジョブ実行状態を確認する。そして、実行ノード部5(実行ノード部B)は、指定された実行IDによって特定されるジョブが、実行されているか否かを判定する。そのジョブが実行されていない場合には、ステップS6.1.3に進む。そのジョブが実行されている場合には、ステップS6.1.5に進む。
なお、ステップS6.1.2において、実行ノード部5の実行状態確認部56が、上記のジョブの実行状態を確認する。
Next, in step S6.1.2, the execution node unit 5 (execution node unit B) checks the job execution state based on the result of referring to the execution state sharing unit 6 in step S6.1.1. Then, the execution node unit 5 (execution node unit B) determines whether or not the job specified by the specified execution ID is being executed. If the job has not been executed, the process proceeds to step S6.1.3. If the job is being executed, the process proceeds to step S6.1.5.
In step S6.1.2, the execution
次に、ステップS6.1.3に進んだ場合、同ステップにおいて、実行ノード部5(実行ノード部B)は、再開ポイントを決定する。具体的には、実行ノード部5(実行ノード部B)は、上で参照したジョブ実行状態に基づいて、再開ポイントを決定する。
なお、ステップS6.1.3において、実行ノード部5のジョブ再実行制御部53が、上記の再開ポイントの決定を行う。
Next, when it progresses to step S6.1.3, the execution node part 5 (execution node part B) determines the restart point in the step. Specifically, the execution node unit 5 (execution node unit B) determines a restart point based on the job execution state referred to above.
In step S6.1.3, the job
次に、ステップS6.1.3.1において、実行ノード部5(実行ノード部B)は、ステップS6.1.3で決定された再開ポイントから、ジョブを再実行する。
なお、ステップS6.1.3.1において、実行ノード部5のジョブ再実行制御部53が、上記の再実行を制御する。
Next, in step S6.1.3.1, the execution node unit 5 (execution node unit B) re-executes the job from the restart point determined in step S6.1.3.
In step S6.1.3.1, the job
次に、ステップS6.1.4において、上で再実行したジョブの終了後に、ジョブ実行結果をメッセージブローカー部3に返す。このジョブ実行結果は、当該ジョブの実行IDを含むものである。
Next, in step S6.1.4, after the job re-executed above is completed, the job execution result is returned to the
次に、ステップS6.2において、実行マネージャー部2は、メッセージブローカー部3から、上記のジョブ実行結果を受け取る。つまり、メッセージブローカー部3は、実行結果キューから上記のジョブ実行結果を取り出し、そのジョブ実行結果を実行マネージャー部2に送信する。
Next, in step S <b> 6.2, the
次に、ステップS7において、実行マネージャー部2は、上記のジョブ実行結果を受けて、当該実行IDによって特定されるジョブの実行完了の処理を行う。つまり、実行マネージャー部2のジョブネット実行制御部21は、当該ジョブの実行が完了したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。
Next, in step S7, the
以上で、ステップS6.1.3に分岐した場合の処理(ジョブ実行状態を確認した結果、実行してなかった場合の処理)を完了する。 This completes the process when the process branches to step S6.1.3 (the process when the job execution state is not executed as a result of checking the job execution state).
次に、ステップS6.1.5に進んだ場合、同ステップにおいて、実行ノード部5(実行ノード部B)は、ジョブの再実行を行わないことを決定する。この処理は、実行ノード部5のジョブ再実行制御部53により行われる。
以上で、ステップS6.1.5に分岐した場合の処理(ジョブ実行状態を確認した結果、実行していた場合の処理)を完了する。
Next, when the process proceeds to step S6.1.5, in this step, the execution node unit 5 (execution node unit B) determines not to re-execute the job. This process is performed by the job
This completes the processing in the case of branching to step S6.1.5 (processing in the case of execution as a result of checking the job execution state).
次に、ステップS8に進んだ場合、同ステップにおいて、実行マネージャー部2は、指定値を超えて再実行してもジョブの実行が失敗した事象に基づいて、当該実行IDによって特定されるジョブに関して、実行失敗の処理を行う。つまり、実行マネージャー部2のジョブネット実行制御部21は、当該ジョブの実行が最終的に失敗したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。
以上で、ステップS8に分岐した場合の処理(再実行回数が指定値を超えていた場合の処理)を完了する。
Next, when the process proceeds to step S8, in the same step, the
This completes the processing when the processing branches to step S8 (processing when the number of re-executions exceeds the specified value).
以上で、シーケンス図全体の処理を終了する。 Above, the process of the whole sequence diagram is complete | finished.
図6は、ジョブフローを定義するデータの構成例を示す概略図である。このジョブフロー定義データは、実行マネージャー部2のジョブネット実行制御部21によって管理される。ただし、このジョブフロー定義データは、ジョブ実行制御装置1内の他の各部からも参照可能な形で保持されている。このジョブフロー定義データは、予めユーザー(例えば、システム運用管理者)によって作成され、ジョブ実行制御装置1に入力されるものである。
同図の左側は、ジョブを構成する複数のステップの処理順序関係を視覚的に表すチャートである。なお、ステップの処理順序は、半順序(partial order)で表される。同図の右側は、そのチャートに対応する、ジョブフロー定義のテキストデータである。このテキストデータは、例えば、XML形式やJSON形式などといったコンピューター処理可能な形式で、ジョブ実行制御装置1内に保持される。なお、XMLは、Extensible Markup Language(エクステンシブル マークアップ ランゲージ,拡張マークアップ言語)の略である。また、JSONは、JavaScript Object Notationの略である。なお、JavaScriptは登録商標である。
FIG. 6 is a schematic diagram illustrating a configuration example of data defining a job flow. The job flow definition data is managed by the job net
The left side of the figure is a chart that visually represents the processing order relationship of a plurality of steps constituting a job. Note that the processing order of the steps is expressed in a partial order. The right side of the figure shows job flow definition text data corresponding to the chart. This text data is held in the job
図示するジョブフロー定義の例においては、5個のステップ(ジョブステップ)が存在し、それらは「Step1」から「Step5」までである。ステップ間の順序関係は、次の通りである。即ち、Step2の処理は、Step1の処理に後続する。Step3の処理は、Step1の処理に後続する。Step2の処理とStep3の処理との間の順序関係は問われない。Step4の処理は、Step2の処理に後続し、且つStep3の処理に後続する。そして、Step5の処理は、Step4の処理に後続する。
In the illustrated example of the job flow definition, there are five steps (job steps), which are “
また、図示するテキストデータにおいて、実体job(ジョブ)は、属性idを有する。この属性idは、既に説明した「実行ID」である。実体jobは、その下位に、実体sequence(シーケンス)または実体parallel(パラレル)を含むことによりジョブフローを定義している。実体sequenceは、その下位に、実体stepや実体parallelを含むことができる。実体parallelは、その下位に、実体stepや、実体sequenceを含むことができる。 In the illustrated text data, the entity job (job) has an attribute id. This attribute id is the “execution ID” already described. The entity job defines a job flow by including an entity sequence (sequence) or an entity parallel (parallel) at a lower level. The entity sequence can include an entity step and an entity parallel below the entity sequence. The entity parallel can include an entity step and an entity sequence below it.
実体sequenceは、複数の要素が順次処理の関係にあることを表す。つまり、下位の要素である実体stepや実体parallelが、記載されている順の先行−後続関係として規定される。
実体parallelは、複数の要素が並列処理の関係にあることを表す。つまり、下位の要素である実体stepや実体sequenceに関して、それら要素間での先行−後続関係が規定されず、並列に実行して良いものであることが規定される。
実体stepは、属性idを有する。このidは、ステップを識別する情報である。個々の実体stepは、ジョブ内の処理ステップに対応する。ジョブフローの定義において、ステップは、処理のまとまりとしての最小単位である。
The entity sequence represents that a plurality of elements are in a sequential processing relationship. That is, the entity step and the entity parallel which are lower elements are defined as the preceding-following relationship in the order in which they are described.
The entity parallel indicates that a plurality of elements are in a parallel processing relationship. In other words, regarding the entity step and entity sequence which are lower elements, the preceding-following relationship between these elements is not defined, and it is defined that they can be executed in parallel.
The entity step has an attribute id. This id is information for identifying a step. Each entity step corresponds to a processing step in the job. In the definition of a job flow, a step is a minimum unit as a unit of processing.
図示するテキストデータでは、1つの要素job(id=job1)が、1つの要素sequence(順次処理)を有する。その順次処理は、要素step(id=step1)と、要素parallelと、要素step(id=step4)と、要素step(id=step5)とを有する。つまり、この記述は、step1、要素parallel、step4、step5が、この順序で実行されるべきものであることを表す。そして、上記の要素parallelは、要素step(id=step2)と、要素step(id=step3)とを有する。つまり、この記述は、step2とstep3とが並列に処理可能であることを表す。以上の通り、このテキストデータによる表現は、図6の左側に示す処理順序関係のチャートと整合している。
In the illustrated text data, one element job (id = job1) has one element sequence (sequential processing). The sequential processing includes an element step (id = step1), an element parallel, an element step (id = step4), and an element step (id = step5). That is, this description indicates that
図7は、実行状態共有部6が保持する、ジョブの実行状態の情報の構成例を示す概略図である。図示するように、ジョブ実行状態の情報は、表形式のデータとして実行状態共有部6に保持される。ジョブ実行状態のデータは、例えば、データベース管理システム(DBMS)を用いて管理され、磁気ハードディスク装置や半導体メモリー等の永続的記憶手段に記憶される。ジョブ実行状態のデータは、実行ID、ステップID(StepID)、入力、出力の各項目を含む。実行IDは、ジョブを識別する情報である。ステップIDは、ジョブ内のステップを識別する情報である。入力は、ステップへの入力データを特定する情報である。出力は、ステップからの出力データを特定する情報である。 FIG. 7 is a schematic diagram illustrating a configuration example of job execution state information held by the execution state sharing unit 6. As shown in the figure, the job execution state information is held in the execution state sharing unit 6 as tabular data. The job execution state data is managed using, for example, a database management system (DBMS) and stored in a permanent storage unit such as a magnetic hard disk device or a semiconductor memory. The job execution state data includes items of execution ID, step ID (StepID), input, and output. The execution ID is information for identifying a job. The step ID is information for identifying a step in the job. The input is information for specifying input data to the step. The output is information for specifying output data from the step.
図示する例では、実行IDが100であり、且つステップIDがStep1、Step2、Step3である3行のデータが存在する。そして、実行IDが100であり、ステップIDがその他であるデータは存在しない。これは、実行IDが100のジョブに関して、Step1とStep2とStep3とは既に完了しているが、その他のステップ(例えば、Step4など)は未完了であることを表している。このように、実行状態共有部6は、ジョブの実行経過を含めた実行状態を表すデータを保持している。
In the example illustrated, there are three rows of data with an execution ID of 100 and step IDs of Step1, Step2, and Step3. And there is no data whose execution ID is 100 and whose step ID is other. This indicates that
図8は、ジョブの実行状態の参照と確認の方法を説明するための概略図である。
例えば、ネットワーク障害などの理由で、一時的に、実行ノード部5にアクセスできない場合にも、その実行ノード部5上では、ジョブがまだ実行されている可能性がある。そのため、他の実行ノード部5上で、ジョブを引き継いで再実行を行う際には、まず当初そのジョブが稼働していた実行ノード部5上での実行状態を確認する。
FIG. 8 is a schematic diagram for explaining a method for referring to and confirming the execution state of a job.
For example, even if the
同図(a)は、実行ノード部間での実行状態の共有の態様を示す。ここに示す例では、ある実行ノード部5(実行ノード部Aと呼ぶ)がジョブを実行し、その実行状態を実行状態共有部6に記録する。そしてその実行ノード部Aが何らかの障害等により一時的にサービス不能となったとき、あるいはネットワークを介した情報としてサービス不能と判断され得るとき、他の実行ノード部5(実行ノード部Bと呼ぶ)上で、ジョブの再実行を試みる。その際、実行ノード部Bは、ジョブの実行IDを鍵として実行状態共有部6に記録されている実行状態の情報を参照し、そのジョブの実行状態を確認する。 FIG. 3A shows a mode of sharing the execution state between the execution node units. In the example shown here, a certain execution node unit 5 (referred to as an execution node unit A) executes a job and records the execution state in the execution state sharing unit 6. When the execution node unit A becomes temporarily incapable of service due to some failure or the like, or when it can be determined that the service is impossible as information via the network, another execution node unit 5 (referred to as an execution node unit B) Try to rerun the job. At that time, the execution node unit B refers to the execution state information recorded in the execution state sharing unit 6 using the execution ID of the job as a key, and confirms the execution state of the job.
同図(b)は、上記の状況において実行ノード部Bが実行状態を確認する方法を示す。具体的には、実行ノード部Bは、所定の時間間隔を有する複数の時刻(例えば、t1とt2の2つの時刻)において、それぞれ、実行状態共有部6が保持するデータベースから、目的とするジョブの実行状態の情報を取得する。なおこのとき、時間間隔(t2とt1との差)の長さは、例えば1つのジョブステップの実行に要する時間等に基づいて適宜定めることとする。そして、実行ノード部Bは、時刻t1における実行状態と、時刻t2における実行状態とを比較する。この比較の結果として、次の3通りのパターンが検出され得る。 FIG. 5B shows a method in which the execution node unit B confirms the execution state in the above situation. Specifically, the execution node unit B receives a target job from a database held by the execution state sharing unit 6 at a plurality of times having a predetermined time interval (for example, two times t1 and t2). Get the execution status information for. At this time, the length of the time interval (difference between t2 and t1) is appropriately determined based on, for example, the time required to execute one job step. Then, the execution node unit B compares the execution state at time t1 with the execution state at time t2. As a result of this comparison, the following three patterns can be detected.
パターン1として、時刻t1において参照した実行状態と、時刻t2において参照した実行状態とが等しくない場合がある。この場合は、時刻t1から時刻t2に経過する間に、実行ノード部Aによって実行状態の記録が更新されたことを意味する。つまり、この場合、実行ノード部Aがまだジョブを実行中である。この場合、実行ノード部Bは、実行ノード部Aによるジョブ実行が完了するまで待つ。そして、もし実行ノード部Aがジョブ実行結果を送信できなかった場合には、代わりに、実行ノード部Bがジョブ実行結果をメッセージブローカー部3に送信する。
As
パターン2として、時刻t1において参照した実行状態と時刻t2において参照した実行状態とが等しく、且つジョブフローの最後に既に到達している場合がある。なお、ジョブフローの最後に到達しているか否かは、ジョブフローの定義データと、実行状態共有部6が保持する実行状態のデータとを対比することにより判断可能である。このパターン2の場合、既に、ジョブの実行が完了しているが、ジョブ実行結果がまだ実行ノード部Aから送信されていない状況である。したがって、この場合には、実行ノード部Bは、ジョブ実行結果をメッセージブローカー部3に送信する処理のみを行う。
As
パターン3として、時刻t1において参照した実行状態と時刻t2において参照した実行状態とが等しく、且つジョブフローの最後にまだ到達していない場合がある。このパターン3の場合、ジョブの途中の所定箇所までは完了し、ジョブのその後の部分については実行されていないことを意味する。よって、実行ノード部Bは、実行状態の情報に基づいて、ジョブ再開ポイントを適切に定め、ジョブを再実行する。
As
上記のパターン3の場合の、再開ポイントの決定方法について説明する。
図6に例示したジョブフロー定義と、図7に例示した実行状態データ(各ステップの入出力の記録)を前提とした場合、実行状態データがStep4の入出力記録を持っていない。このため、Step4の処理で失敗したと判断できる。よって、再開すべきポイントは、Step4の先頭部分である。したがって、実行ノード部Bのジョブ再実行制御部53は、Step4を再開ポイントとする。
つまり、実行ノード部5は、他の実行ノード部5によって実行されたジョブの実行状態のデータに基づいて、当該ジョブの未実行の部分を特定し、その未実行の処理を再開ポイントとする。そして、実行ノード部5は、決定した再開ポイントから、ジョブを再実行する。
A method for determining a restart point in the case of the
If the job flow definition illustrated in FIG. 6 and the execution state data illustrated in FIG. 7 (input / output recording of each step) are assumed, the execution state data does not have the input / output recording of Step4. For this reason, it can be determined that the processing of
That is, the
なお、上に示した例では、ステップの切れ目を再開ポイントとするようにしたが、ステップの途中の未処理の部分から、処理を再開するようにしてもよい。その場合、ステップ内で、どこまでが実行済みであるかを表す情報を、実行状態のデータに含めるようにする。 In the example shown above, the step break is used as the restart point, but the process may be restarted from an unprocessed part in the middle of the step. In that case, in the step, information indicating how far has been executed is included in the execution state data.
図9は、ジョブの再実行に関する定義を規定するテキストデータを示す概略図である。図示するデータでは、ジョブを起動する際に、ジョブごとに、再実行の可否と、再実行を可能とする場合における再実行上限回数(リトライリミット,再実行回数最大値)とを指定することができる。 FIG. 9 is a schematic diagram showing text data defining a definition relating to job re-execution. In the illustrated data, when starting a job, it is possible to specify, for each job, whether re-execution is possible and the maximum number of re-executions (retry limit, maximum number of re-executions) when re-execution is possible. it can.
同図において、要素jobは、属性id(id=job1)を有する。その要素jobは、下位に、要素jobnet(ジョブネット)を有する。なお、ジョブネットは、複数のジョブを含む処理単位である。そして、その要素jobnetは、下位に、要素sequenceを有する。要素sequenceは、下位の要素を直列に順次処理させるものである。そして、その要素sequenceは、下位に、3つの要素invokeを有する。それら3つの要素invokeは、属性jobId(ジョブ識別情報)として、それぞれ、jobA、jobB、jobCを有している。また、各々の要素invokeは、属性retriableにより、再実行可否を規定できる。retriableの値がtrue(真)のときには再実行可能であり、その値がfalse(偽)のときには再実行不可能である。また、再実行可能の場合には、属性retryLimitにより、再実行上限回数を規定することができる。 In the figure, an element job has an attribute id (id = job1). The element job has an element job (job net) at a lower level. A job net is a processing unit including a plurality of jobs. The element jobnet has an element sequence at a lower level. The element sequence is for causing the lower elements to be sequentially processed in series. The element sequence has three elements invoke at the lower level. These three elements “invoke” have jobA, jobB, and jobC as attributes jobId (job identification information), respectively. In addition, each element invoke can specify whether or not it can be re-executed by an attribute retrieveable. When the value of retriable is true (true), it can be re-executed. When the value is false (false), it cannot be re-executed. If re-execution is possible, the re-execution upper limit number can be defined by the attribute retryLimit.
図示する例では、jobIdが「jobA」であるジョブに関して、再実行可能であり、再実行上限回数が5に設定されている。また、jobIdが「jobB」であるジョブに関して、再実行可能であり、再実行上限回数が3に設定されている。jobIdが「jobC」であるジョブに関して、再実行不可能と設定されている。 In the example shown in the figure, a job whose jobId is “jobA” can be re-executed, and the re-execution upper limit number is set to 5. In addition, a job whose jobId is “jobB” can be re-executed, and the re-execution upper limit number is set to 3. A job whose jobId is “jobC” is set to be non-reexecutable.
ジョブ実行制御装置1は、上で説明した図9に示すテキストデータにしたがい、ジョブの再実行を制御する。
The job
図10は、ジョブ実行制御装置1における、再実行回数の制御の方法を示す概略図である。同図において、複数の実行ノード部5は、実行IDが「jobA」であるジョブを、順次引き継いで再実行することが可能である。第1の実行ノード部5が実行に失敗したとき、その実行ノード部5は、ロールバックメッセージを、メッセージブローカー部3経由で、実行マネージャー部2における再実行回数制御部22に送る。再実行回数制御部22は、そのジョブ「jobA」が何度再実行されているかをカウントするとともに、再実行上限回数を超えているか否かを判断し、その判断に基づいて、再実行メッセージを送出する。その再実行メッセージは、メッセージブローカー部3経由で、他の実行ノード部5に届けられる。再実行メッセージを受けた当該実行ノード部5は、ジョブ「jobA」を再実行する。2度目以後のジョブ実行失敗においても同様であり、再実行上限回数を超えるまで、ロールバックおよび再実行のプロセスを繰り返すことができる。そして、障害等の何らかの理由により、再実行の回数が指定された再実行上限回数の値を超えた場合には、実行マネージャー部2側の再実行回数制御部22は、それ以上の再実行を行わず、当該ジョブを実行失敗として終了させる。このとき、再実行回数制御部22からアラート通知部23に、実行失敗を示す情報と、そのジョブの実行IDとが通知される。アラート通知部23は、その実行IDとともに、ジョブの実行失敗を知らせるためのアラート情報を、出力する。このアラート情報により、ユーザー(システム管理者、システム運用担当者等)は、ジョブの実行失敗を知る。
FIG. 10 is a schematic diagram illustrating a method for controlling the number of re-executions in the job
図11は、再実行回数制御部22が再実行回数を制御する際の再実行回数カウント情報の構成例を示す概略図である。図示するように、再実行回数カウント情報は、表形式のデータとして実現され得るものであり、実行IDおよび再実行回数カウント(RetryCount)のデータ項目を有する。つまり、実行IDに対応付けて、再実行回数カウントを保持することができる。この再実行回数カウント情報は、例えば実行マネージャー部2からアクセス可能なデータベース管理システム(DBMS)で管理される。
FIG. 11 is a schematic diagram illustrating a configuration example of re-execution count information when the re-execution
図示するデータ例では、実行IDが「100」であるジョブに関して、その時点での再実行回数カウントは4である。また、実行IDが「111」であるジョブに関して、その時点での再実行回数カウントは2である。また、実行IDが「120」であるジョブに関して、その時点での再実行回数カウントは5である。再実行回数制御部22は、この再実行回数カウント情報を適宜更新することにより、再実行回数をカウントする。
そして、再実行回数制御部22は、前述の通り、再実行回数が指定された閾値(再実行上限回数)以下であれば、再実行リクエストを送付し、再度実行するようにする。また、再実行回数が指定された閾値(再実行上限回数)を超えていれば、それ以上の再実行によって復旧はできない可能性が高いために、再実行せず、アラート通知部23がユーザーに対してアラート通知を行う。
In the illustrated data example, the re-execution count at that time is 4 for the job whose execution ID is “100”. Also, regarding the job whose execution ID is “111”, the re-execution count at that time is 2. Also, regarding the job whose execution ID is “120”, the re-execution count at that time is 5. The re-execution
Then, as described above, the re-execution
上記実施形態では、再実行回数制御部の機能を実行マネージャー部2内に有するものとしたが、下記の変形例によって実施してもよい。
この変形例においては、実行マネージャー部2ではなく、実行ノード部5が再実行回数を制御する機能(再実行制御部の機能)を有する。
また、この変形例においては、各ジョブのジョブフロー定義において、そのジョブの再実行可否と、再実行可能の場合の再実行上限回数とを、指定することができるようにする。
In the above-described embodiment, the function of the re-execution number control unit is included in the
In this modification, not the
Further, in this modified example, in the job flow definition of each job, it is possible to specify whether or not the job can be re-executed and the maximum number of re-execution when the job can be re-executed.
図12は、この変形例におけるジョブフロー定義のテキストデータの構成例を示す概略図である。このジョブフロー定義のデータは、図2に示したテキストデータと同様に、step1からstep5までの各ステップの処理順序を規定している。ここで、当該変形例における特徴は、データの第1行目に記述されているように、要素jobが、属性retriableおよび属性retryLimitを有する点である。図示する例では、「retriable=true」(再実行可能を表す)、および「retryLimit=5」(再実行上限回数が5であることを表す)が記述されている。
FIG. 12 is a schematic diagram showing a configuration example of text data of job flow definition in this modification. The job flow definition data defines the processing order of each step from
また、この変形例において、各ジョブの再実行回数のカウント値(図11に示したのと同等のデータ)は、各実行ノード部5からアクセス可能なデータベースに保存され、ノード間で共有される。一例として、実行状態共有部6内に、各ジョブの再実行回数のカウント値を保持するようにしてもよい。そして、実行ノード部5は、これらの再実行回数のカウント値と、再実行上限回数とに基づいて、既に述べたものと同様の再実行の制御を行う。
In this modified example, the count value of the number of re-executions of each job (data equivalent to that shown in FIG. 11) is stored in a database accessible from each
以上説明した少なくともひとつの実施形態によれば、実行マネージャー部2が、実行ノード部5におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出することにより、また、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部5ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行するようにすることにより、異なるノードにまたがって、ジョブを再実行させることができる。
According to at least one embodiment described above, when the
また、実行ノード部5は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する。これにより、障害である可能性があるノードで実行されていたジョブに関して、ジョブの処理が完了しているか否かを判定することができる。
In addition, when the
また、実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも2回、実行状態共有部から当該ジョブの実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定する。これにより、例えばネットワーク障害等により、失敗したかのように見えるジョブに関して、まだ実行されているか否かを確認することができる。
Further, the
また、メッセージブローカー部3は、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡す。これにより、実行要求等を複数の実行ノード部5に振り分けることが可能となる。
Further, the
実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する。これにより、適切なポイントからの再実行が可能となる。また、計算資源の無駄な消費を抑制することができる。
When the
実行マネージャー部2は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。これにより、ジョブの再実行回数を制御できる。つまり、延々と再実行し続けることを防ぐことができる。
The
なお、上述した実施形態におけるジョブ実行制御装置1の機能、またはその一部の機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM、DVD−ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
Note that the function of the job
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and the equivalents thereof.
1…ジョブ実行制御装置、2…実行マネージャー部、3…メッセージブローカー部、5…実行ノード部、6…実行状態共有部、2…実行マネージャー部、21…ジョブネット実行制御部、22…再実行回数制御部、23…アラート通知部、31…実行要求キュー管理部、32…実行結果キュー管理部、33…トランザクション管理部、51…ジョブフロー定義部、52…ジョブ実行制御部、53…ジョブ再実行制御部、54…実行状態記録部、55…実行状態参照部、56…実行状態確認部
DESCRIPTION OF
Claims (7)
前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
を備えるジョブ実行制御装置であって、
前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものであり、
前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
ジョブ実行制御装置。 An execution manager section for sending job execution requests and re-execution requests;
A plurality of execution node units for executing the requested job based on the execution request or the re-execution request from the execution manager unit;
An execution state sharing unit for holding the execution state of the job in the execution node unit;
A job execution control device comprising:
The execution node unit writes an execution state of the job being executed in the execution state sharing unit,
When the execution manager unit detects that the execution of the job in the execution node unit has failed, the execution manager unit sends the re-execution request for the job,
When the execution node unit receives the re-execution request for the job from the execution manager unit, the execution node unit grasps the execution state of the job by referring to the execution state written in the execution state sharing unit. Confirming whether the job is still being executed in the other execution node unit and confirming whether the processing of the job has been completed. If the processing of the job is not completed, the job is re-executed.
Job execution control device.
請求項1に記載のジョブ実行制御装置。 The execution node unit refers to information indicating which step in the job has been completed from the execution state sharing unit when confirming whether the processing of the job has been completed. Confirming whether or not the processing of all the steps of the job has been completed by referring to the definition information of the steps comprising
The job execution control apparatus according to claim 1.
請求項1または2に記載のジョブ実行制御装置。 The execution node unit checks whether or not the job is still being executed by the other execution node unit at least twice at a predetermined time interval from the execution state sharing unit. Determine whether the job is still being executed in the other execution node unit by referring to the execution state and determining whether the execution state has changed between each time.
The job execution control device according to claim 1.
をさらに備える請求項1から3までのいずれか一項に記載のジョブ実行制御装置。 The execution request and the re-execution request sent from the execution manager unit are temporarily stored in a queue, and the execution request and the re-execution request retrieved from the queue are passed to any of the execution node units. Message broker department,
The job execution control device according to any one of claims 1 to 3, further comprising:
請求項1から4までのいずれか一項に記載のジョブ実行制御装置。 When the execution node unit receives the re-execution request for the job from the execution manager unit, the execution node unit grasps the execution state of the job by referring to the execution state written in the execution state sharing unit. If the job is no longer executed in another execution node unit and the processing of the job has not been completed, the step from the execution state sharing unit to the step in the job is completed. The unprocessed step of the steps constituting the job is identified by referring to the information to be shown and the definition information of the steps constituting the job, and the identified unprocessed step is resumed. Re-execute the job as a point,
The job execution control device according to any one of claims 1 to 4.
請求項1から5までのいずれか一項に記載のジョブ実行制御装置。 The execution manager unit counts the number of times the job is re-executed and refers to an upper limit value of the re-execution number of the job specified in advance, and if the re-execution number exceeds the upper limit value, No more execution requests are sent, and an alert indicating that the job execution has failed is output.
The job execution control device according to any one of claims 1 to 5.
ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
を備えるジョブ実行制御装置であって、
前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものであり、
前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
ジョブ実行制御装置、として機能させるためのプログラム。 Computer
An execution manager section for sending job execution requests and re-execution requests;
A plurality of execution node units for executing the requested job based on the execution request or the re-execution request from the execution manager unit;
An execution state sharing unit for holding the execution state of the job in the execution node unit;
A job execution control device comprising:
The execution node unit writes an execution state of the job being executed in the execution state sharing unit,
When the execution manager unit detects that the execution of the job in the execution node unit has failed, the execution manager unit sends the re-execution request for the job,
When the execution node unit receives the re-execution request for the job from the execution manager unit, the execution node unit grasps the execution state of the job by referring to the execution state written in the execution state sharing unit. Confirming whether the job is still being executed in the other execution node unit and confirming whether the processing of the job is completed, and the job is no longer being executed in the other execution node unit. If the processing of the job is not completed, the job is re-executed.
A program for functioning as a job execution control device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183485A JP6542172B2 (en) | 2016-09-20 | 2016-09-20 | Job execution control device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183485A JP6542172B2 (en) | 2016-09-20 | 2016-09-20 | Job execution control device and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018049395A true JP2018049395A (en) | 2018-03-29 |
JP6542172B2 JP6542172B2 (en) | 2019-07-10 |
Family
ID=61766353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016183485A Active JP6542172B2 (en) | 2016-09-20 | 2016-09-20 | Job execution control device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6542172B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215529A (en) * | 2019-07-09 | 2021-01-12 | 北京京东振世信息技术有限公司 | Method, system, device and computer readable medium for acquiring data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353284A (en) * | 1998-06-10 | 1999-12-24 | Hitachi Ltd | Job re-executing method |
JP2002073576A (en) * | 2000-08-31 | 2002-03-12 | Toshiba Corp | Batch job control system |
JP2013257903A (en) * | 2008-12-12 | 2013-12-26 | Amazon Technologies Inc | Saving program execution state |
-
2016
- 2016-09-20 JP JP2016183485A patent/JP6542172B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353284A (en) * | 1998-06-10 | 1999-12-24 | Hitachi Ltd | Job re-executing method |
JP2002073576A (en) * | 2000-08-31 | 2002-03-12 | Toshiba Corp | Batch job control system |
JP2013257903A (en) * | 2008-12-12 | 2013-12-26 | Amazon Technologies Inc | Saving program execution state |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215529A (en) * | 2019-07-09 | 2021-01-12 | 北京京东振世信息技术有限公司 | Method, system, device and computer readable medium for acquiring data |
CN112215529B (en) * | 2019-07-09 | 2023-11-07 | 北京京东振世信息技术有限公司 | Method, system, device and computer readable medium for acquiring data |
Also Published As
Publication number | Publication date |
---|---|
JP6542172B2 (en) | 2019-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9800515B2 (en) | Mechanism for controlling a process on a computing node based on the participation status of the computing node | |
US7747717B2 (en) | Fast application notification in a clustered computing system | |
US9984140B1 (en) | Lease based leader election system | |
CN107688487B (en) | Method and system for recovering state of database session | |
WO2018103318A1 (en) | Distributed transaction handling method and system | |
US8412790B2 (en) | Method, system and computer readable recording medium for determining major group under split-brain syndrome | |
CN110071821A (en) | Standby node is specified | |
US10684791B2 (en) | System and method for environment aware backup and restoration | |
US10367676B1 (en) | Stable leader selection for distributed services | |
US20230052935A1 (en) | Asynchronous accounting method and apparatus for blockchain, medium and electronic device | |
US11397632B2 (en) | Safely recovering workloads within a finite timeframe from unhealthy cluster nodes | |
US9830263B1 (en) | Cache consistency | |
JP6542172B2 (en) | Job execution control device and program | |
JP7243207B2 (en) | Information processing system, information processing device and program | |
JP2016095638A (en) | Transaction processor, transaction processing method, and program | |
JP6665892B2 (en) | Information processing system, information processing apparatus, and control program | |
CN112286909B (en) | Execution state determining method, device, server and storage medium | |
JP2009271858A (en) | Computing system and program | |
US10922024B1 (en) | Self-protection against serialization incompatibilities | |
JP6151365B2 (en) | Information processing system, information processing method, and program | |
US10608882B2 (en) | Token-based lightweight approach to manage the active-passive system topology in a distributed computing environment | |
JP2012022379A (en) | Distributed transaction processing system, device, method and program | |
JP4874847B2 (en) | Cluster system | |
US20230385113A1 (en) | Progress Monitoring Service | |
CN114546705B (en) | Operation response method, operation response device, electronic apparatus, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180329 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190401 |
|
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: 20190514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6542172 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |