JP6542172B2 - ジョブ実行制御装置およびプログラム - Google Patents
ジョブ実行制御装置およびプログラム Download PDFInfo
- Publication number
- JP6542172B2 JP6542172B2 JP2016183485A JP2016183485A JP6542172B2 JP 6542172 B2 JP6542172 B2 JP 6542172B2 JP 2016183485 A JP2016183485 A JP 2016183485A JP 2016183485 A JP2016183485 A JP 2016183485A JP 6542172 B2 JP6542172 B2 JP 6542172B2
- Authority
- JP
- Japan
- Prior art keywords
- execution
- job
- unit
- node unit
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
Description
ジョブは、入力データと、処理と、出力データとを予め定義したひとまとまりの定義である。また、複数のジョブを連続して実行させるための定義を予め行ったり、条件に応じて異なるジョブを実行させるための定義を予め行ったりすることもある。複数のジョブからなる一連の処理を、例えば「ジョブネット」などと呼ぶことがある。また逆に、1件のジョブを構成する複数の処理単位を、例えば「ジョブステップ」と呼ぶこともある。なお、個々のジョブないしはジョブステップは、正常に実行されて終了する場合もあるし、何らかのエラーにより異常終了する場合もある。
図1は、本実施形態によるジョブ実行制御装置1の概略機能構成を示すブロック図である。図示するように、ジョブ実行制御装置1は、実行マネージャー部2と、メッセージブローカー部3と、複数の実行ノード部5と、実行状態共有部6とを含んで構成される。
ジョブ実行制御装置1は、1台の筺体内に収容された装置として実現してもよい。また、複数台の筺体でなる装置を通信ネットワーク等で相互に接続して、全体を1個のシステムとして実現してもよい。具体例としては、複数のサーバーコンピューター等を通信ネットワークで相互に接続して、その全体で構成されるシステムを、ジョブ実行制御装置1としてもよい。ジョブ実行制御装置1を構成する各部の機能は、次の通りである。
つまり、メッセージブローカー部3は、少なくとも、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡すものである。
各実行ノード部5は、異なるノード上で稼働する。つまり、各実行ノード部5は、物理的にあるいは論理的に独立した環境で稼働する。したがって、ある各実行ノード部5で障害が起こっても他の各実行ノード部5にはその障害が波及しないように、システムを構成している。各実行ノード部5は、すべて同一筺体内に収容されていてもよいし、その一部または全部がそれぞれ異なる筺体に収容されていてもよい。
また、実行ノード部5は、実行状態共有部6への、ジョブの実行状態の情報の記録を行う。つまり、実行ノード部5は、実行しているジョブの実行状態を実行状態共有部6に書き込む。また実行ノード部5は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて複数回(少なくとも2回)、実行状態共有部6に記録された当該ジョブの実行状態を参照し、各回間で実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定するようにしてもよい。
実行状態共有部6は、実行ノード部5からの記録要求により、ジョブの実行状態の情報を書き込む。また、実行状態共有部6は、実行ノード部5からの参照要求により、求められる実行IDを有するジョブの実行状態の情報を提供する。
ジョブ実行制御部52は、ジョブの実行を行うとともに、ジョブの実行状況を制御する。
ジョブ再実行制御部53は、ジョブの再実行に関する制御を行う。ジョブの再実行に関する制御は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認したり、ジョブが完了しているか否かを確認したり、ジョブの再開ポイントを決定したりする処理を含む。
実行状態参照部55は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
実行状態確認部56による処理の詳細については、後で、別の図面を参照しながら説明する。
まず、ステップS1において、実行マネージャー部2は、ジョブ実行要求をメッセージブローカー部3に送る。このとき、ジョブ実行要求は、実行IDの情報を含んでいる。これを受けて、メッセージブローカー部3は、受信したジョブ実行要求を実行要求キューに書き込む。このジョブ実行要求は、一時的に、実行要求キューに保持される。
なお、ステップS1において、メッセージブローカー部3の実行要求キュー管理部31が、上記のジョブ実行要求のメッセージを実行要求キューに書き込む。
なお、ステップS1.1において、メッセージブローカー部3の実行要求キュー管理部31が、ジョブ実行要求を実行ノード部5に送信する。
なお、ステップS2において、実行ノード部5のジョブ実行制御部52が、上記のジョブの実行を制御する。
なお、ステップS3において、実行ノード部5の実行状態記録部54が、ジョブの実行状態を実行状態共有部6に書き込む。
なお、ステップS5において、メッセージブローカー部3の実行結果キュー管理部32が、上記のロールバックメッセージを実行結果キューに書き込む。
そして、このとき実行マネージャー部2は、当該実行IDのジョブの再実行回数が、予め定められた指定値を超えたか否かを判定する。再実行回数がまだその指定値を超えていない場合には、次にステップS6に進む。再実行回数がその指定値を超えた場合には、次にステップS8に進む。
なお、ステップS5.1において、実行マネージャー部2の再実行回数制御部22が、上記の再実行回数の記録や、再実行回数の値が指定値を超えているか否かに基づく処理の分岐を制御する。また、メッセージブローカー部3の実行結果キュー管理部32が、上記のロールバックメッセージを実行マネージャー部2に送信する。
なお、ステップS6において、メッセージブローカー部3の実行要求キュー管理部31が、上記の再実行のメッセージを実行要求キューに書き込む。
なお、ステップS6.1において、メッセージブローカー部3の実行要求キュー管理部31が、再実行のメッセージを実行ノード部5に送信する。
なお、ステップS6.1.1において、実行ノード部5の実行状態参照部55が、実行状態共有部6に記録されているジョブの実行状態を参照する。
なお、ステップS6.1.2において、実行ノード部5の実行状態確認部56が、上記のジョブの実行状態を確認する。
なお、ステップS6.1.3において、実行ノード部5のジョブ再実行制御部53が、上記の再開ポイントの決定を行う。
なお、ステップS6.1.3.1において、実行ノード部5のジョブ再実行制御部53が、上記の再実行を制御する。
以上で、ステップS6.1.5に分岐した場合の処理(ジョブ実行状態を確認した結果、実行していた場合の処理)を完了する。
以上で、ステップS8に分岐した場合の処理(再実行回数が指定値を超えていた場合の処理)を完了する。
同図の左側は、ジョブを構成する複数のステップの処理順序関係を視覚的に表すチャートである。なお、ステップの処理順序は、半順序(partial order)で表される。同図の右側は、そのチャートに対応する、ジョブフロー定義のテキストデータである。このテキストデータは、例えば、XML形式やJSON形式などといったコンピューター処理可能な形式で、ジョブ実行制御装置1内に保持される。なお、XMLは、Extensible Markup Language(エクステンシブル マークアップ ランゲージ,拡張マークアップ言語)の略である。また、JSONは、JavaScript Object Notationの略である。なお、JavaScriptは登録商標である。
実体parallelは、複数の要素が並列処理の関係にあることを表す。つまり、下位の要素である実体stepや実体sequenceに関して、それら要素間での先行−後続関係が規定されず、並列に実行して良いものであることが規定される。
実体stepは、属性idを有する。このidは、ステップを識別する情報である。個々の実体stepは、ジョブ内の処理ステップに対応する。ジョブフローの定義において、ステップは、処理のまとまりとしての最小単位である。
例えば、ネットワーク障害などの理由で、一時的に、実行ノード部5にアクセスできない場合にも、その実行ノード部5上では、ジョブがまだ実行されている可能性がある。そのため、他の実行ノード部5上で、ジョブを引き継いで再実行を行う際には、まず当初そのジョブが稼働していた実行ノード部5上での実行状態を確認する。
図6に例示したジョブフロー定義と、図7に例示した実行状態データ(各ステップの入出力の記録)を前提とした場合、実行状態データがStep4の入出力記録を持っていない。このため、Step4の処理で失敗したと判断できる。よって、再開すべきポイントは、Step4の先頭部分である。したがって、実行ノード部Bのジョブ再実行制御部53は、Step4を再開ポイントとする。
つまり、実行ノード部5は、他の実行ノード部5によって実行されたジョブの実行状態のデータに基づいて、当該ジョブの未実行の部分を特定し、その未実行の処理を再開ポイントとする。そして、実行ノード部5は、決定した再開ポイントから、ジョブを再実行する。
そして、再実行回数制御部22は、前述の通り、再実行回数が指定された閾値(再実行上限回数)以下であれば、再実行リクエストを送付し、再度実行するようにする。また、再実行回数が指定された閾値(再実行上限回数)を超えていれば、それ以上の再実行によって復旧はできない可能性が高いために、再実行せず、アラート通知部23がユーザーに対してアラート通知を行う。
この変形例においては、実行マネージャー部2ではなく、実行ノード部5が再実行回数を制御する機能(再実行制御部の機能)を有する。
また、この変形例においては、各ジョブのジョブフロー定義において、そのジョブの再実行可否と、再実行可能の場合の再実行上限回数とを、指定することができるようにする。
Claims (7)
- ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
を備えるジョブ実行制御装置であって、
前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
前記実行ノード部は、前記実行ノード部における前記ジョブの実行が異常に終了したこと、またはネットワーク障害の理由で一時的に当該実行ノード部にアクセスできないことが検知された場合に、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
ジョブ実行制御装置。 - 前記実行ノード部は、前記ジョブの処理が完了したか否かを確認する際に、前記実行状態共有部から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する、
請求項1に記載のジョブ実行制御装置。 - 前記実行ノード部は、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも2回、前記実行状態共有部から当該ジョブの前記実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを決定する、
請求項1または2に記載のジョブ実行制御装置。 - 前記実行マネージャー部から送出される前記実行要求および前記再実行要求をキューに一時的に格納するとともに、前記キューから取り出した前記実行要求および前記再実行要求を、前記実行ノード部のいずれかに渡すメッセージブローカー部、
をさらに備える請求項1から3までのいずれか一項に記載のジョブ実行制御装置。 - 前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、前記実行状態共有部から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された前記未処理のステップを再開ポイントとして当該ジョブを再実行する、
請求項1から4までのいずれか一項に記載のジョブ実行制御装置。 - 前記実行マネージャー部は、前記ジョブの再実行回数をカウントするとともに、予め指定された前記ジョブの再実行回数の上限値を参照し、前記再実行回数が前記上限値を超える場合には、前記再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する、
請求項1から5までのいずれか一項に記載のジョブ実行制御装置。 - コンピューターを、
ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
を備えるジョブ実行制御装置であって、
前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
前記実行ノード部は、前記実行ノード部における前記ジョブの実行が異常に終了したこと、またはネットワーク障害の理由で一時的に当該実行ノード部にアクセスできないことが検知された場合に、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
ジョブ実行制御装置、として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183485A JP6542172B2 (ja) | 2016-09-20 | 2016-09-20 | ジョブ実行制御装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183485A JP6542172B2 (ja) | 2016-09-20 | 2016-09-20 | ジョブ実行制御装置およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018049395A JP2018049395A (ja) | 2018-03-29 |
JP6542172B2 true JP6542172B2 (ja) | 2019-07-10 |
Family
ID=61766353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016183485A Active JP6542172B2 (ja) | 2016-09-20 | 2016-09-20 | ジョブ実行制御装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6542172B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215529B (zh) * | 2019-07-09 | 2023-11-07 | 北京京东振世信息技术有限公司 | 获取数据的方法、***、设备和计算机可读介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353284A (ja) * | 1998-06-10 | 1999-12-24 | Hitachi Ltd | ジョブ再実行方法 |
JP2002073576A (ja) * | 2000-08-31 | 2002-03-12 | Toshiba Corp | バッチジョブ制御システム |
US8370493B2 (en) * | 2008-12-12 | 2013-02-05 | Amazon Technologies, Inc. | Saving program execution state |
-
2016
- 2016-09-20 JP JP2016183485A patent/JP6542172B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018049395A (ja) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7747717B2 (en) | Fast application notification in a clustered computing system | |
JP5695324B2 (ja) | スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体 | |
JP4726416B2 (ja) | コンピュータ・クラスタを操作するための方法 | |
CN105357038A (zh) | 监控虚拟机集群的方法和*** | |
CN110071821A (zh) | 备用节点的指定 | |
US10367676B1 (en) | Stable leader selection for distributed services | |
US10609123B2 (en) | Hybrid quorum policies for durable consensus in distributed systems | |
CN109558260B (zh) | Kubernetes故障排除***、方法、设备及介质 | |
US10068058B2 (en) | Method and apparatus for improved clinical system performance | |
US20220138036A1 (en) | Safely recovering workloads within a finite timeframe from unhealthy cluster nodes | |
US9830263B1 (en) | Cache consistency | |
JP6268991B2 (ja) | 情報処理システム、情報処理装置及びプログラム | |
JP6542172B2 (ja) | ジョブ実行制御装置およびプログラム | |
JP7243207B2 (ja) | 情報処理システム、情報処理装置及びプログラム | |
JP6665892B2 (ja) | 情報処理システム,情報処理装置および制御プログラム | |
US9430338B2 (en) | Method and computing device for recording log entries | |
JP2006344061A (ja) | シナリオ適用支援方法、管理サーバおよび管理プログラム | |
JP5884566B2 (ja) | バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム | |
JP2009271858A (ja) | 計算機システム及びプログラム | |
CN112286909B (zh) | 执行状态确定方法、装置、服务器及存储介质 | |
US9996870B2 (en) | Method, system, and computer readable medium for utilizing job control orders in an order management system | |
US10608882B2 (en) | Token-based lightweight approach to manage the active-passive system topology in a distributed computing environment | |
US8533331B1 (en) | Method and apparatus for preventing concurrency violation among resources | |
JP2013003956A (ja) | 故障復旧管理装置、故障復旧管理方法及び故障復旧管理プログラム | |
JP7368762B2 (ja) | 警報監視システム、警報監視方法、及びプログラム |
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 | Written amendment |
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 |