JP2018049395A - Job execution control apparatus and program - Google Patents

Job execution control apparatus and program Download PDF

Info

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
Application number
JP2016183485A
Other languages
Japanese (ja)
Other versions
JP6542172B2 (en
Inventor
陸 振宏
zhen hong Lu
振宏 陸
誠一郎 田中
Seiichiro Tanaka
誠一郎 田中
敬 岡山
Takashi Okayama
敬 岡山
信秀 杉本
Nobuhide Sugimoto
信秀 杉本
洋平 那須
Yohei Nasu
洋平 那須
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions 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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2016183485A priority Critical patent/JP6542172B2/en
Publication of JP2018049395A publication Critical patent/JP2018049395A/en
Application granted granted Critical
Publication of JP6542172B2 publication Critical patent/JP6542172B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a job execution control apparatus and program configured to allow a job to be re-executed automatically on another node.SOLUTION: A job execution control apparatus includes an execution manager unit, a plurality of execution node units, and an execution state sharing unit. The execution manager unit transmits an execution request and re-execution request of a job. Each of the execution node units executes a requested job, on the basis of the execution request or re-execution request from the execution manager unit. The execution state sharing unit holds an execution state of the job in the execution node unit. The execution node unit writes the execution state of the running job to the execution state sharing unit. Upon detection of a failure of the job execution in the execution node unit, the execution manager unit transmits the re-execution request for the job.SELECTED DRAWING: Figure 1

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.

特開2015−064723号公報Japanese Patent Laying-Open No. 2015-064723 特開2014−142741号公報JP 2014-142741 A 特開2013−257903号公報JP 2013-257903 A 特開2003−085021号公報JP 2003-085021 A 特開平6−103078号公報JP-A-6-103078

本発明が解決しようとする課題は、ジョブの再実行を自動的に他ノード上でも実行することを可能とする、ジョブ実行制御装置およびプログラムを提供することである。   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.

第1の実施形態のジョブ実行制御装置1の概略機能構成を示すブロック図。FIG. 2 is a block diagram illustrating a schematic functional configuration of the job execution control apparatus 1 according to the first embodiment. 第1の実施形態の実行マネージャー部2のより詳細な機能構成を示すブロック図。The block diagram which shows the more detailed functional structure of the execution manager part 2 of 1st Embodiment. 第1の実施形態のメッセージブローカー部3のより詳細な機能構成を示すブロック図。The block diagram which shows the more detailed function structure of the message broker part 3 of 1st Embodiment. 第1の実施形態の実行ノード部5のより詳細な機能構成を示すブロック図。The block diagram which shows the more detailed functional structure of the execution node part 5 of 1st Embodiment. 第1の実施形態のジョブ実行制御装置1にける動作手順の例を示すシーケンスチャート。6 is a sequence chart illustrating an example of an operation procedure in the job execution control apparatus 1 according to the first embodiment. 第1の実施形態におけるジョブフローを定義するデータの構成例を示す概略図。Schematic which shows the structural example of the data which defines the job flow in 1st Embodiment. 第1の実施形態の実行状態共有部6が保持する、ジョブの実行状態の情報の構成例を示す概略図。Schematic which shows the structural example of the information of the execution state of a job which the execution state sharing part 6 of 1st Embodiment hold | maintains. 第1の実施形態において、ジョブの実行状態の参照と確認の方法を説明するための概略図。FIG. 3 is a schematic diagram for explaining a method for referring to and confirming a job execution state in the first embodiment. 第1の実施形態において、ジョブの再実行に関する定義を規定するテキストデータを示す概略図。FIG. 3 is a schematic diagram illustrating text data that defines a definition related to job re-execution in the first embodiment. 第1の実施形態のジョブ実行制御装置1における、再実行回数の制御の方法を示す概略図。FIG. 3 is a schematic diagram illustrating a method for controlling the number of re-executions in the job execution control apparatus 1 according to the first embodiment. 第1の実施形態の再実行回数制御部22が再実行回数を制御する際の再実行回数カウント情報の構成例を示す概略図。Schematic which shows the structural example of the re-execution frequency count information when the re-execution frequency control part 22 of 1st Embodiment controls re-execution frequency. 第1の実施形態の変形例におけるジョブフロー定義のテキストデータの構成例を示す概略図。Schematic which shows the structural example of the text data of the job flow definition in the modification of 1st Embodiment.

以下、実施形態のジョブ実行制御装置およびプログラムを、図面を参照して説明する。   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 execution control apparatus 1 according to the present embodiment. As illustrated, the job execution control apparatus 1 includes an execution manager unit 2, a message broker unit 3, a plurality of execution node units 5, and an execution state sharing unit 6.
The job execution control device 1 may be realized as a device housed in one housing. Alternatively, a plurality of enclosures may be connected to each other via a communication network or the like, and the whole may be realized as one system. As a specific example, a system configured by connecting a plurality of server computers and the like with each other via a communication network may be used as the job execution control device 1. The function of each part constituting the job execution control device 1 is as follows.

実行マネージャー部2は、ジョブフローの定義データに基づいて、ジョブの実行順序を制御する機能を有する。また、実行マネージャー部2は、ジョブ実行要求のメッセージを送出する。また、実行マネージャー部2は、ジョブの実行が成功したか失敗したかを検知し、ジョブを再実行すべきであるか否かを判断する。ジョブを再実行すべきである場合には、実行マネージャー部2は、ジョブの再実行を要求するメッセージを送出する。つまり、実行マネージャー部2は、実行ノード部5におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出する場合がある。   The execution manager unit 2 has a function of controlling the job execution order based on job flow definition data. Further, the execution manager unit 2 sends a job execution request message. In addition, the execution manager unit 2 detects whether the job execution has succeeded or failed, and determines whether the job should be re-executed. If the job should be re-executed, the execution manager 2 sends a message requesting re-execution of the job. That is, when the execution manager unit 2 detects that the job execution in the execution node unit 5 has failed, it may send a re-execution request for the job.

なお実行マネージャー部2は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。   The execution manager unit 2 counts the number of job re-executions and refers to the upper limit value of the job re-execution number specified in advance. If the re-execution number exceeds the upper limit value, the execution manager unit 2 issues a re-execution request. No more messages are sent, and an alert indicating that the job execution has failed is output.

メッセージブローカー(message broker)部3は、実行マネージャー部2と実行ノード部5との間において通信メッセージの仲介を行う機能を有する。実行マネージャー部2から実行ノード部5の側に送られるメッセージ(実行要求系のメッセージ)は、実行要求キューに格納され、管理される。実行ノード部5から実行マネージャー部2の側に送られるメッセージ(実行結果系のメッセージ)は、実行結果キューに格納され、管理される。
つまり、メッセージブローカー部3は、少なくとも、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡すものである。
The message broker unit 3 has a function of mediating communication messages between the execution manager unit 2 and the execution node unit 5. A message (execution request message) sent from the execution manager 2 to the execution node 5 is stored and managed in an execution request queue. A message (execution result message) sent from the execution node unit 5 to the execution manager unit 2 is stored and managed in an execution result queue.
That is, the message broker unit 3 temporarily stores at least the execution request and the re-execution request sent from the execution manager unit 2 in the queue, and sends the execution request and the re-execution request retrieved from the queue to the execution node unit. 5 is passed to one of the above.

各々の実行ノード部5は、実行マネージャー部2からの実行要求または再実行要求のメッセージに基づき、要求されたジョブを実行するための機能を有するものである。
各実行ノード部5は、異なるノード上で稼働する。つまり、各実行ノード部5は、物理的にあるいは論理的に独立した環境で稼働する。したがって、ある各実行ノード部5で障害が起こっても他の各実行ノード部5にはその障害が波及しないように、システムを構成している。各実行ノード部5は、すべて同一筺体内に収容されていてもよいし、その一部または全部がそれぞれ異なる筺体に収容されていてもよい。
また、実行ノード部5は、実行状態共有部6への、ジョブの実行状態の情報の記録を行う。つまり、実行ノード部5は、実行しているジョブの実行状態を実行状態共有部6に書き込む。また実行ノード部5は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
Each execution node unit 5 has a function for executing a requested job based on an execution request or re-execution request message from the execution manager unit 2.
Each execution node unit 5 operates on a different node. That is, each execution node unit 5 operates in a physically or logically independent environment. Therefore, even if a failure occurs in each execution node unit 5, the system is configured so that the failure does not spread to other execution node units 5. Each execution node unit 5 may be housed in the same housing, or part or all of it may be housed in different housings.
The execution node unit 5 records job execution state information in the execution state sharing unit 6. That is, the execution node unit 5 writes the execution state of the job being executed in the execution state sharing unit 6. Further, the execution node unit 5 refers to information on the job execution state recorded in the execution state sharing unit 6.

なお、実行ノード部5は、ジョブの再実行に関する制御を行う。即ち、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部5ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。   The execution node unit 5 performs control related to job re-execution. That is, when the execution node unit 5 receives a job re-execution request from the execution manager unit 2, the execution node unit 5 grasps the execution state of the job by referring to the execution state written in the execution state sharing unit 6, It is confirmed whether or not the job is still executed in the other execution node unit 5 and whether or not the processing of the job is completed. The job is no longer executed in the other execution node unit 5. If the processing of the job is not completed, the job is re-executed.

実行ノード部5は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認するようにしてもよい。
実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて複数回(少なくとも2回)、実行状態共有部6に記録された当該ジョブの実行状態を参照し、各回間で実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定するようにしてもよい。
When the execution node unit 5 confirms whether or not the job processing is completed, the execution node unit 5 refers to information indicating which step in the job is completed from the execution state sharing unit 6 and also executes the job. By referring to the definition information of the steps to be configured, it may be confirmed whether or not the processing of all the steps of the job has been completed.
The execution node unit 5 records in the execution state sharing unit 6 a plurality of times (at least twice) with a predetermined time interval when checking whether or not the job is still being executed by another execution node unit 5. By referring to the execution state of the job and determining whether or not the execution state has changed between times, it is possible to determine whether or not the job is still being executed by another execution node unit 5. Also good.

また、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する制御を行ってもよい。   Further, when the execution node unit 5 receives a job re-execution request from the execution manager unit 2, the execution node unit 5 grasps the execution state of the job by referring to the execution state written in the execution state sharing unit 6, If the job has not been executed in the other execution node unit 5 and the processing of the job has not been completed yet, it is determined from the execution state sharing unit 6 to which step in the job has been completed. The unprocessed steps of the steps constituting the job are identified by referring to the information shown and the definition information of the steps constituting the job, and the identified unprocessed steps are resumed. Control to re-execute the job may be performed.

実行状態共有部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 execution node unit 5. As a result, the job execution state can be shared among the plurality of execution node units 5. The execution state sharing unit 6 holds job execution state information as data managed by a database management system or the like. The execution state sharing unit 6 holds job execution state information in association with the job execution ID.
The execution state sharing unit 6 writes job execution state information in response to a recording request from the execution node unit 5. The execution state sharing unit 6 provides information on the execution state of a job having a required execution ID in response to a reference request from the execution node unit 5.

図2は、実行マネージャー部2のより詳細な機能構成を示すブロック図である。図示するように、実行マネージャー部2は、ジョブネット実行制御部21と、再実行回数制御部22と、アラート通知部23とを含んで構成される。   FIG. 2 is a block diagram showing a more detailed functional configuration of the execution manager unit 2. As illustrated, the execution manager unit 2 includes a job net execution control unit 21, a re-execution number control unit 22, and an alert notification unit 23.

ジョブネット実行制御部21は、ジョブの実行順序を定義したジョブネットについて、その実行制御を行う。   The job net execution control unit 21 performs execution control of a job net that defines the job execution order.

再実行回数制御部22は、ジョブが再実行された回数を記録し、その回数を参照可能とする。   The re-execution number control unit 22 records the number of times the job has been re-executed and makes it possible to refer to the number of times.

アラート通知部23は、ジョブの再実行回数が所定の最大値を超えた場合に、アラートを出力する。このアラートを出力することにより、再実行回数が所定値を超えた事象をユーザーに通知することができる。   The alert notification unit 23 outputs an alert when the number of job re-executions exceeds a predetermined maximum value. By outputting this alert, the user can be notified of an event in which the number of re-executions exceeds a predetermined value.

図3は、メッセージブローカー部3のより詳細な機能構成を示すブロック図である。図示するように、メッセージブローカー部3は、実行要求キュー管理部31と、実行結果キュー管理部32と、トランザクション管理部33とを含んで構成される。   FIG. 3 is a block diagram showing a more detailed functional configuration of the message broker unit 3. As illustrated, the message broker unit 3 includes an execution request queue management unit 31, an execution result queue management unit 32, and a transaction management unit 33.

実行要求キュー管理部31は、実行マネージャー部2から渡されるジョブ実行要求メッセージ(以下、単に「ジョブ実行要求」と呼ぶことがある)、およびその他の実行要求系のメッセージを保持するためのキュー(queue)を管理する。このキューは、先入先出方式(first in, first out)のメモリーであり、実行要求キュー管理部31内に存在する。キューに格納されたジョブ実行要求は、順次読み出され、実行ノード部5に渡される。   The execution request queue management unit 31 is a queue for holding a job execution request message (hereinafter sometimes simply referred to as “job execution request”) delivered from the execution manager unit 2 and other execution request type messages ( queue). This queue is a first-in first-out (first in, first out) memory, and exists in the execution request queue management unit 31. The job execution requests stored in the queue are sequentially read and passed to the execution node unit 5.

実行結果キュー管理部32は、実行ノード部5から返されるジョブ実行結果メッセージ(以下、単に「ジョブ実行結果」と呼ぶことがある)、およびその他の実行結果系のメッセージを保持するためのキューを管理する。このキューは、先入先出方式のメモリーであり、実行結果キュー管理部32内に存在する。キューに格納されたジョブ実行結果は、順次読み出され、実行マネージャー部2に渡される。   The execution result queue management unit 32 stores a queue for holding a job execution result message returned from the execution node unit 5 (hereinafter simply referred to as “job execution result”) and other execution result type messages. to manage. This queue is a first-in first-out memory and exists in the execution result queue management unit 32. The job execution results stored in the queue are sequentially read and passed to the execution manager unit 2.

トランザクション管理部33は、ジョブ実行要求およびジョブ実行結果のメッセージの受け渡しの処理において、そのトランザクションを管理する機能を有する。   The transaction management unit 33 has a function of managing a transaction in the process of passing a job execution request and a job execution result message.

図4は、実行ノード部5のより詳細な機能構成を示すブロック図である。図示するように、個々の実行ノード部5は、ジョブフロー定義部51と、ジョブ実行制御部52と、ジョブ再実行制御部53と、実行状態記録部54と、実行状態参照部55と、実行状態確認部56とを含んで構成される。   FIG. 4 is a block diagram showing a more detailed functional configuration of the execution node unit 5. As illustrated, each execution node unit 5 includes a job flow definition unit 51, a job execution control unit 52, a job re-execution control unit 53, an execution state recording unit 54, an execution state reference unit 55, and an execution. And a state confirmation unit 56.

ジョブフロー定義部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 execution control unit 52 executes a job and controls the job execution status.
The job re-execution control unit 53 performs control related to job re-execution. Control regarding job re-execution is performed by confirming whether the job is still being executed by another execution node unit 5, confirming whether the job is completed, or determining a job resumption point. Processing to include.

実行状態記録部54は、ジョブの実行状態を、実行状態共有部6に記録する機能を有する。ここで、ジョブの実行状態とは、ジョブフロー中におけるどの部分(ステップ)までが実行されたかを表す情報である。
実行状態参照部55は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
The execution state recording unit 54 has a function of recording the job execution state in the execution state sharing unit 6. Here, the job execution state is information indicating up to which part (step) in the job flow has been executed.
The execution state reference unit 55 refers to the job execution state information recorded in the execution state sharing unit 6.

実行状態確認部56は、実行状態参照部55が参照したジョブの実行状態の情報に基づいて、ある特定のジョブが実行されているかどうかを判断する。例えば、実行状態確認部56は、実行状態参照部55を介して、ある特定のジョブの前後に実行される他のジョブの実行状態を取得し、それらの実行状態の情報に基づいて、当該特定のジョブが実行されているかどうかを判断する。
実行状態確認部56による処理の詳細については、後で、別の図面を参照しながら説明する。
The execution state confirmation unit 56 determines whether or not a specific job is being executed based on the execution state information of the job referred to by the execution state reference unit 55. For example, the execution state confirmation unit 56 acquires the execution states of other jobs that are executed before and after a specific job via the execution state reference unit 55, and specifies the specific state based on the information on the execution states. Determine whether the job is running.
Details of the processing by the execution state confirmation unit 56 will be described later with reference to another drawing.

図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 execution control apparatus 1. This figure shows the operation of each part in the job execution control apparatus 1 and the interaction (data exchange, etc.) between these parts. Hereinafter, an operation procedure will be described along this sequence chart.
First, in step S <b> 1, the execution manager unit 2 sends a job execution request to the message broker unit 3. At this time, the job execution request includes execution ID information. In response to this, the message broker unit 3 writes the received job execution request in the execution request queue. This job execution request is temporarily held in the execution request queue.
In step S1, the execution request queue management unit 31 of the message broker unit 3 writes the job execution request message in the execution request queue.

次に、ステップ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 message broker unit 3. That is, the message broker unit 3 takes out the job execution request from the execution request queue and transmits the job execution request to the execution node unit 5 (execution node unit A).
In step S1.1, the execution request queue management unit 31 of the message broker unit 3 transmits a job execution request to the execution node unit 5.

次に、ステップ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 execution control unit 52 of the execution node unit 5 controls the execution of the job.

そして、ステップS3において、実行ノード部5(実行ノード部A)は、実行状態共有部6に、ジョブの実行状態を書き込む。このジョブの実行状態の情報は、実行IDを含むものである。これにより、当該実行IDのジョブの実行状態の情報は、共有可能な状態で、実行状態共有部6に記録される。
なお、ステップS3において、実行ノード部5の実行状態記録部54が、ジョブの実行状態を実行状態共有部6に書き込む。
In step S 3, the execution node unit 5 (execution node unit A) writes the job execution state in the execution state sharing unit 6. This job execution status information includes an execution ID. Thereby, the information on the execution state of the job having the execution ID is recorded in the execution state sharing unit 6 in a sharable state.
In step S3, the execution state recording unit 54 of the execution node unit 5 writes the execution state of the job in the execution state sharing unit 6.

次に、ステップ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 message broker unit 3. This rollback message includes the execution ID of the failed job. The message broker unit 3 writes this rollback message in the execution result queue.
In step S5, the execution result queue management unit 32 of the message broker unit 3 writes the rollback message in the execution result queue.

次に、ステップ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 execution manager unit 2 receives the rollback message from the message broker unit 3. That is, the message broker unit 3 retrieves the rollback message from the execution result queue and transmits the rollback message to the execution manager unit 2. The execution manager 2 receives the rollback message and records the number of executions of the job specified by the execution ID. That is, the execution manager unit 2 increments the number of executions of the job with the execution ID by one.
At this time, the execution manager 2 determines whether or not the number of re-executions of the job with the execution ID exceeds a predetermined value. If the number of re-executions has not yet exceeded the specified value, the process proceeds to step S6. If the re-execution number exceeds the specified value, the process proceeds to step S8.
In step S5.1, the re-execution number control unit 22 of the execution manager unit 2 records the re-execution number and branches the process based on whether or not the value of the re-execution number exceeds a specified value. Control. Further, the execution result queue management unit 32 of the message broker unit 3 transmits the above rollback message to the execution manager unit 2.

次に、ステップS6に進んだ場合、同ステップにおいて、実行マネージャー部2は、ジョブの再実行のメッセージをメッセージブローカー部3に送る。このとき、再実行のメッセージは、実行IDの情報を含んでいる。これを受けて、メッセージブローカー部3は、受信した再実行のメッセージを実行要求キューに書き込む。この再実行メッセージは、一時的に、実行要求キューに保持される。
なお、ステップS6において、メッセージブローカー部3の実行要求キュー管理部31が、上記の再実行のメッセージを実行要求キューに書き込む。
Next, when the process proceeds to step S6, the execution manager unit 2 sends a job re-execution message to the message broker unit 3 in this step. At this time, the re-execution message includes execution ID information. In response to this, the message broker unit 3 writes the received re-execution message in the execution request queue. This re-execution message is temporarily held in the execution request queue.
In step S6, the execution request queue management unit 31 of the message broker unit 3 writes the re-execution message in the execution request queue.

次に、ステップ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 message broker unit 3. That is, the message broker unit 3 takes out the re-execution message from the execution request queue and transmits the re-execution message to the execution node unit 5 (execution node unit B). Here, the execution node unit B is a node different from the execution node unit A.
In step S <b> 6.1, the execution request queue management unit 31 of the message broker unit 3 transmits a re-execution message to the execution node unit 5.

次に、ステップ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 state reference unit 55 of the execution node unit 5 refers to the execution state of the job recorded in the execution state sharing unit 6.

次に、ステップ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 state confirmation unit 56 of the execution node unit 5 confirms the execution state of the job.

次に、ステップ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 re-execution control unit 53 of the execution node unit 5 determines the restart point.

次に、ステップ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 re-execution control unit 53 of the execution node unit 5 controls the re-execution.

次に、ステップ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 message broker unit 3. This job execution result includes the execution ID of the job.

次に、ステップS6.2において、実行マネージャー部2は、メッセージブローカー部3から、上記のジョブ実行結果を受け取る。つまり、メッセージブローカー部3は、実行結果キューから上記のジョブ実行結果を取り出し、そのジョブ実行結果を実行マネージャー部2に送信する。   Next, in step S <b> 6.2, the execution manager unit 2 receives the job execution result from the message broker unit 3. That is, the message broker unit 3 retrieves the job execution result from the execution result queue and transmits the job execution result to the execution manager unit 2.

次に、ステップS7において、実行マネージャー部2は、上記のジョブ実行結果を受けて、当該実行IDによって特定されるジョブの実行完了の処理を行う。つまり、実行マネージャー部2のジョブネット実行制御部21は、当該ジョブの実行が完了したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。   Next, in step S7, the execution manager unit 2 receives the above-described job execution result and performs processing for completing the execution of the job specified by the execution ID. In other words, the job net execution control unit 21 of the execution manager unit 2 grasps that the execution of the job has been completed, and updates the status information managed internally for job control.

以上で、ステップ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 re-execution control unit 53 of the execution node unit 5.
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 execution manager unit 2 relates to the job specified by the execution ID based on the event that the job execution failed even if the execution exceeds the specified value. Execute the execution failure. That is, the job net execution control unit 21 of the execution manager unit 2 grasps that the execution of the job has finally failed, and updates the status information managed internally for job control.
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 execution control unit 21 of the execution manager unit 2. However, the job flow definition data is held in a form that can be referred to from other units in the job execution control apparatus 1. The job flow definition data is created in advance by a user (for example, a system operation manager) and input to the job execution control apparatus 1.
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 execution control apparatus 1 in a computer processable format such as XML format or JSON format. Note that XML is an abbreviation for Extensible Markup Language (Extensible Markup Language). JSON is an abbreviation for JavaScript Object Notation. JavaScript is a registered trademark.

図示するジョブフロー定義の例においては、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 “Step 1” to “Step 5”. The order relationship between the steps is as follows. That is, the process of Step 2 follows the process of Step 1. The process of Step 3 follows the process of Step 1. The order relationship between the processing of Step 2 and the processing of Step 3 is not questioned. The process of Step 4 follows the process of Step 2 and follows the process of Step 3. And the process of Step5 follows the process of Step4.

また、図示するテキストデータにおいて、実体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 step 1 and elements parallel, step 4, and step 5 are to be executed in this order. The element parallel has the element step (id = step2) and the element step (id = step3). In other words, this description represents that step 2 and step 3 can be processed in parallel. As described above, this text data representation is consistent with the processing order relationship chart shown on the left side of FIG.

図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 Step 1, Step 2, and Step 3 have already been completed for the job whose execution ID is 100, but other steps (for example, Step 4) have not been completed. In this way, the execution state sharing unit 6 holds data representing the execution state including the progress of job execution.

図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 execution node unit 5 cannot be temporarily accessed due to a network failure or the like, the job may still be executed on the execution node unit 5. Therefore, when a job is taken over and re-executed on another execution node unit 5, the execution state on the execution node unit 5 in which the job was initially operating is first confirmed.

同図(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 pattern 1, the execution state referenced at time t1 may not be equal to the execution state referenced at time t2. In this case, the execution state record is updated by the execution node unit A during the lapse of time from time t1 to time t2. That is, in this case, the execution node unit A is still executing the job. In this case, the execution node unit B waits until the job execution by the execution node unit A is completed. If the execution node unit A cannot transmit the job execution result, the execution node unit B transmits the job execution result to the message broker unit 3 instead.

パターン2として、時刻t1において参照した実行状態と時刻t2において参照した実行状態とが等しく、且つジョブフローの最後に既に到達している場合がある。なお、ジョブフローの最後に到達しているか否かは、ジョブフローの定義データと、実行状態共有部6が保持する実行状態のデータとを対比することにより判断可能である。このパターン2の場合、既に、ジョブの実行が完了しているが、ジョブ実行結果がまだ実行ノード部Aから送信されていない状況である。したがって、この場合には、実行ノード部Bは、ジョブ実行結果をメッセージブローカー部3に送信する処理のみを行う。   As pattern 2, there is a case where the execution state referred to at time t1 and the execution state referred to at time t2 are equal and have already reached the end of the job flow. Whether or not the end of the job flow has been reached can be determined by comparing the job flow definition data with the execution state data held by the execution state sharing unit 6. In the case of this pattern 2, the job has already been executed, but the job execution result has not yet been transmitted from the execution node unit A. Therefore, in this case, the execution node unit B performs only the process of transmitting the job execution result to the message broker unit 3.

パターン3として、時刻t1において参照した実行状態と時刻t2において参照した実行状態とが等しく、且つジョブフローの最後にまだ到達していない場合がある。このパターン3の場合、ジョブの途中の所定箇所までは完了し、ジョブのその後の部分については実行されていないことを意味する。よって、実行ノード部Bは、実行状態の情報に基づいて、ジョブ再開ポイントを適切に定め、ジョブを再実行する。   As pattern 3, the execution state referenced at time t1 may be equal to the execution state referenced at time t2, and the end of the job flow may not yet be reached. In the case of this pattern 3, it means that a predetermined part in the middle of the job is completed and the subsequent part of the job is not executed. Therefore, the execution node unit B appropriately determines the job resumption point based on the execution state information, and re-executes the job.

上記のパターン3の場合の、再開ポイントの決定方法について説明する。
図6に例示したジョブフロー定義と、図7に例示した実行状態データ(各ステップの入出力の記録)を前提とした場合、実行状態データがStep4の入出力記録を持っていない。このため、Step4の処理で失敗したと判断できる。よって、再開すべきポイントは、Step4の先頭部分である。したがって、実行ノード部Bのジョブ再実行制御部53は、Step4を再開ポイントとする。
つまり、実行ノード部5は、他の実行ノード部5によって実行されたジョブの実行状態のデータに基づいて、当該ジョブの未実行の部分を特定し、その未実行の処理を再開ポイントとする。そして、実行ノード部5は、決定した再開ポイントから、ジョブを再実行する。
A method for determining a restart point in the case of the above pattern 3 will be described.
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 Step 4 has failed. Therefore, the point to be resumed is the top part of Step4. Therefore, the job re-execution control unit 53 of the execution node unit B sets Step 4 as a restart point.
That is, the execution node unit 5 identifies an unexecuted portion of the job based on the execution state data of the job executed by the other execution node unit 5, and uses the unexecuted process as a restart point. Then, the execution node unit 5 re-executes the job from the determined restart point.

なお、上に示した例では、ステップの切れ目を再開ポイントとするようにしたが、ステップの途中の未処理の部分から、処理を再開するようにしてもよい。その場合、ステップ内で、どこまでが実行済みであるかを表す情報を、実行状態のデータに含めるようにする。   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 execution control apparatus 1 controls job re-execution according to the text data shown in FIG. 9 described above.

図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 execution control apparatus 1. In the figure, a plurality of execution node units 5 can sequentially take over and re-execute jobs having an execution ID “jobA”. When the first execution node unit 5 fails to execute, the execution node unit 5 sends a rollback message to the re-execution count control unit 22 in the execution manager unit 2 via the message broker unit 3. The re-execution count control unit 22 counts how many times the job “jobA” has been re-executed and determines whether or not the re-execution upper limit count has been exceeded. Send it out. The re-execution message is delivered to another execution node unit 5 via the message broker unit 3. Upon receiving the re-execution message, the execution node unit 5 re-executes the job “jobA”. The same is true for the second and subsequent job execution failures, and the rollback and re-execution processes can be repeated until the re-execution upper limit count is exceeded. When the number of re-execution exceeds the specified re-execution upper limit number for some reason such as a failure, the re-execution number control unit 22 on the execution manager unit 2 side performs further re-execution. Without executing, the job is terminated as an execution failure. At this time, the re-execution count control unit 22 notifies the alert notification unit 23 of information indicating execution failure and the execution ID of the job. The alert notification unit 23 outputs alert information for notifying execution failure of the job together with the execution ID. From this alert information, the user (system administrator, system operation person, etc.) knows the job execution failure.

図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 count control unit 22 controls the re-execution count. As shown in the drawing, the re-execution count information can be realized as tabular data, and includes data items of an execution ID and a re-execution count (RetryCount). That is, the re-execution count can be held in association with the execution ID. This re-execution count information is managed by, for example, a database management system (DBMS) accessible from the execution manager unit 2.

図示するデータ例では、実行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 count control unit 22 counts the re-execution count by appropriately updating the re-execution count information.
Then, as described above, the re-execution count control unit 22 sends a re-execution request and executes it again if the re-execution count is equal to or less than the specified threshold (re-execution upper limit count). Also, if the number of re-executions exceeds the specified threshold (re-execution upper limit number), there is a high possibility that recovery will not be possible by further re-execution. Alert notifications are sent to them.

上記実施形態では、再実行回数制御部の機能を実行マネージャー部2内に有するものとしたが、下記の変形例によって実施してもよい。
この変形例においては、実行マネージャー部2ではなく、実行ノード部5が再実行回数を制御する機能(再実行制御部の機能)を有する。
また、この変形例においては、各ジョブのジョブフロー定義において、そのジョブの再実行可否と、再実行可能の場合の再実行上限回数とを、指定することができるようにする。
In the above-described embodiment, the function of the re-execution number control unit is included in the execution manager unit 2, but the following modification may be used.
In this modification, not the execution manager unit 2 but the execution node unit 5 has a function of controlling the number of re-executions (function of a re-execution control unit).
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 step 1 to step 5, as with the text data shown in FIG. Here, the feature in the modification is that the element job has an attribute retrieveable and an attribute retryLimit, as described in the first line of the data. In the illustrated example, “retriable = true” (representing re-executable) and “retryLimit = 5” (representing that the re-execution upper limit number is 5) are described.

また、この変形例において、各ジョブの再実行回数のカウント値(図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 execution node unit 5 and shared between nodes. . As an example, the execution state sharing unit 6 may store a count value of the number of re-executions of each job. Then, the execution node unit 5 performs re-execution control similar to that already described based on the count value of the number of re-executions and the re-execution upper limit number.

以上説明した少なくともひとつの実施形態によれば、実行マネージャー部2が、実行ノード部5におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出することにより、また、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部5ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行するようにすることにより、異なるノードにまたがって、ジョブを再実行させることができる。   According to at least one embodiment described above, when the execution manager unit 2 detects that the execution of the job in the execution node unit 5 has failed, by sending a re-execution request for the job, When the execution node unit 5 receives a job re-execution request from the execution manager unit 2, the execution node unit 5 grasps the execution state of the job by referring to the execution state written in the execution state sharing unit 6. It is confirmed whether or not the job is still executed in the other execution node unit 5 and whether or not the processing of the job is completed. The job is no longer executed in the other execution node unit 5. If the job has not been processed, the job is re-executed across different nodes by re-executing the job. Rukoto can.

また、実行ノード部5は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する。これにより、障害である可能性があるノードで実行されていたジョブに関して、ジョブの処理が完了しているか否かを判定することができる。   In addition, when the execution node unit 5 checks whether or not the job processing is completed, the execution node unit 5 refers to information indicating which step in the job is completed from the execution state sharing unit 6 and By referring to the definition information of the steps constituting the job, it is confirmed whether or not the processing of all the steps of the job has been completed. As a result, it is possible to determine whether or not job processing has been completed for a job that has been executed on a node that may have a failure.

また、実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも2回、実行状態共有部から当該ジョブの実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定する。これにより、例えばネットワーク障害等により、失敗したかのように見えるジョブに関して、まだ実行されているか否かを確認することができる。   Further, the execution node unit 5 executes the job from the execution state sharing unit at least twice at a predetermined time interval when checking whether or not the job is still being executed by another execution node unit 5. By referring to the state and determining whether or not the execution state has changed between each time, it is determined whether or not the job is still being executed by another execution node unit 5. As a result, it is possible to confirm whether or not a job that appears to have failed due to a network failure or the like is still being executed.

また、メッセージブローカー部3は、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡す。これにより、実行要求等を複数の実行ノード部5に振り分けることが可能となる。   Further, the message broker unit 3 temporarily stores the execution request and re-execution request sent from the execution manager unit 2 in the queue, and sends the execution request and re-execution request retrieved from the queue to the execution node unit 5. Pass to one. As a result, execution requests and the like can be distributed to a plurality of execution node units 5.

実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する。これにより、適切なポイントからの再実行が可能となる。また、計算資源の無駄な消費を抑制することができる。   When the execution node unit 5 receives a job re-execution request from the execution manager unit 2, the execution node unit 5 refers to the execution state written in the execution state sharing unit 6 to grasp the execution state of the job. Is not executed in the other execution node unit 5 and the processing of the job is not yet completed, information indicating which step in the job has been completed from the execution state sharing unit 6 And by referring to the definition information of the steps constituting the job, the unprocessed steps of the steps constituting the job are identified, and the identified unprocessed steps are used as the restart point. Rerun the job. This enables re-execution from an appropriate point. Moreover, useless consumption of computing resources can be suppressed.

実行マネージャー部2は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。これにより、ジョブの再実行回数を制御できる。つまり、延々と再実行し続けることを防ぐことができる。   The execution manager unit 2 counts the number of job re-executions and refers to the upper limit value of the job re-execution number specified in advance. If the re-execution number exceeds the upper limit value, the execution manager unit 2 An alert indicating that the execution of the job has failed is output without sending any more. As a result, the number of job re-executions can be controlled. In other words, it is possible to prevent continuous re-execution.

なお、上述した実施形態におけるジョブ実行制御装置1の機能、またはその一部の機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM、DVD−ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。   Note that the function of the job execution control device 1 in the above-described embodiment, or a part of the functions, may be realized by a computer. In that case, a program for realizing this function may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read into a computer system and executed. Here, the “computer system” includes an OS and hardware such as peripheral devices. The “computer-readable recording medium” is a portable medium such as a flexible disk, a magneto-optical disk, a ROM, a CD-ROM, a DVD-ROM, a USB memory, or a storage device such as a hard disk built in a computer system. That means. Furthermore, a “computer-readable recording medium” dynamically holds a program for a short time, like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. In this case, a volatile memory inside a computer system that serves as a server or a client in that case may be included and a program held for a certain period of time. The program may be a program for realizing a part of the above-described functions, or may be a program that can realize the above-described functions in combination with a program already recorded in a computer system.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。   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 SYMBOLS 1 ... Job execution control apparatus, 2 ... Execution manager part, 3 ... Message broker part, 5 ... Execution node part, 6 ... Execution state sharing part, 2 ... Execution manager part, 21 ... Job net execution control part, 22 ... Re-execution Number of times control unit 23 ... Alert notification unit 31 ... Execution request queue management unit 32 ... Execution result queue management unit 33 ... Transaction management unit 51 ... Job flow definition unit 52 ... Job execution control unit 53 ... Job re-execution Execution control unit, 54... Execution state recording unit, 55... Execution state reference unit, 56.

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.
前記実行ノード部は、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも2回、前記実行状態共有部から当該ジョブの前記実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを決定する、
請求項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.
JP2016183485A 2016-09-20 2016-09-20 Job execution control device and program Active JP6542172B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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