JP6542172B2 - ジョブ実行制御装置およびプログラム - Google Patents

ジョブ実行制御装置およびプログラム Download PDF

Info

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
Application number
JP2016183485A
Other languages
English (en)
Other versions
JP2018049395A (ja
Inventor
陸 振宏
振宏 陸
誠一郎 田中
誠一郎 田中
敬 岡山
敬 岡山
信秀 杉本
信秀 杉本
洋平 那須
洋平 那須
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2018049395A publication Critical patent/JP2018049395A/ja
Application granted granted Critical
Publication of JP6542172B2 publication Critical patent/JP6542172B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Description

本発明の実施形態は、ジョブ実行制御装置およびプログラムに関する。
コンピューター処理において、従来、ジョブの実行を制御する技術が存在する。
ジョブは、入力データと、処理と、出力データとを予め定義したひとまとまりの定義である。また、複数のジョブを連続して実行させるための定義を予め行ったり、条件に応じて異なるジョブを実行させるための定義を予め行ったりすることもある。複数のジョブからなる一連の処理を、例えば「ジョブネット」などと呼ぶことがある。また逆に、1件のジョブを構成する複数の処理単位を、例えば「ジョブステップ」と呼ぶこともある。なお、個々のジョブないしはジョブステップは、正常に実行されて終了する場合もあるし、何らかのエラーにより異常終了する場合もある。
従来の技術において、ジョブの障害発生時に、ジョブ構成の情報等を参照することによりジョブの再実行を試みるなど、人手を介さずに障害からの回復をしようとするための技術が存在する。しかしながら、従来技術では、ジョブが本当に失敗したのか、単にジョブの状態を示す情報にアクセスできないだけなのか、確認していないため、実際にはまだジョブが稼働しているのに失敗したと判断してしまっている可能性があった。
また、従来の技術において、プログラムの分散型実行環境を用いて、複数のジョブを、複数のノードで並列に実行させる技術が存在する。しかしながら、従来技術では、他の実行ノード上でジョブの再実行を自動的に行うことができず、コンピューターのリソースが効果的に使用されていない可能性があった。
特開2015−064723号公報 特開2014−142741号公報 特開2013−257903号公報 特開2003−085021号公報 特開平6−103078号公報
本発明が解決しようとする課題は、ジョブの再実行を自動的に他ノード上でも実行することを可能とする、ジョブ実行制御装置およびプログラムを提供することである。
実施形態のジョブ実行制御装置は、実行マネージャー部と、複数の実行ノード部と、実行状態共有部とを持つ。実行マネージャー部は、ジョブの実行要求および再実行要求を送出する。複数の実行ノード部の各々は、前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する。実行状態共有部は、前記実行ノード部における前記ジョブの実行状態を保持する。且つ、前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものである。また、前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものである。また、前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。
第1の実施形態のジョブ実行制御装置1の概略機能構成を示すブロック図。 第1の実施形態の実行マネージャー部2のより詳細な機能構成を示すブロック図。 第1の実施形態のメッセージブローカー部3のより詳細な機能構成を示すブロック図。 第1の実施形態の実行ノード部5のより詳細な機能構成を示すブロック図。 第1の実施形態のジョブ実行制御装置1にける動作手順の例を示すシーケンスチャート。 第1の実施形態におけるジョブフローを定義するデータの構成例を示す概略図。 第1の実施形態の実行状態共有部6が保持する、ジョブの実行状態の情報の構成例を示す概略図。 第1の実施形態において、ジョブの実行状態の参照と確認の方法を説明するための概略図。 第1の実施形態において、ジョブの再実行に関する定義を規定するテキストデータを示す概略図。 第1の実施形態のジョブ実行制御装置1における、再実行回数の制御の方法を示す概略図。 第1の実施形態の再実行回数制御部22が再実行回数を制御する際の再実行回数カウント情報の構成例を示す概略図。 第1の実施形態の変形例におけるジョブフロー定義のテキストデータの構成例を示す概略図。
以下、実施形態のジョブ実行制御装置およびプログラムを、図面を参照して説明する。
(第1の実施形態)
図1は、本実施形態によるジョブ実行制御装置1の概略機能構成を示すブロック図である。図示するように、ジョブ実行制御装置1は、実行マネージャー部2と、メッセージブローカー部3と、複数の実行ノード部5と、実行状態共有部6とを含んで構成される。
ジョブ実行制御装置1は、1台の筺体内に収容された装置として実現してもよい。また、複数台の筺体でなる装置を通信ネットワーク等で相互に接続して、全体を1個のシステムとして実現してもよい。具体例としては、複数のサーバーコンピューター等を通信ネットワークで相互に接続して、その全体で構成されるシステムを、ジョブ実行制御装置1としてもよい。ジョブ実行制御装置1を構成する各部の機能は、次の通りである。
実行マネージャー部2は、ジョブフローの定義データに基づいて、ジョブの実行順序を制御する機能を有する。また、実行マネージャー部2は、ジョブ実行要求のメッセージを送出する。また、実行マネージャー部2は、ジョブの実行が成功したか失敗したかを検知し、ジョブを再実行すべきであるか否かを判断する。ジョブを再実行すべきである場合には、実行マネージャー部2は、ジョブの再実行を要求するメッセージを送出する。つまり、実行マネージャー部2は、実行ノード部5におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出する場合がある。
なお実行マネージャー部2は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。
メッセージブローカー(message broker)部3は、実行マネージャー部2と実行ノード部5との間において通信メッセージの仲介を行う機能を有する。実行マネージャー部2から実行ノード部5の側に送られるメッセージ(実行要求系のメッセージ)は、実行要求キューに格納され、管理される。実行ノード部5から実行マネージャー部2の側に送られるメッセージ(実行結果系のメッセージ)は、実行結果キューに格納され、管理される。
つまり、メッセージブローカー部3は、少なくとも、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡すものである。
各々の実行ノード部5は、実行マネージャー部2からの実行要求または再実行要求のメッセージに基づき、要求されたジョブを実行するための機能を有するものである。
各実行ノード部5は、異なるノード上で稼働する。つまり、各実行ノード部5は、物理的にあるいは論理的に独立した環境で稼働する。したがって、ある各実行ノード部5で障害が起こっても他の各実行ノード部5にはその障害が波及しないように、システムを構成している。各実行ノード部5は、すべて同一筺体内に収容されていてもよいし、その一部または全部がそれぞれ異なる筺体に収容されていてもよい。
また、実行ノード部5は、実行状態共有部6への、ジョブの実行状態の情報の記録を行う。つまり、実行ノード部5は、実行しているジョブの実行状態を実行状態共有部6に書き込む。また実行ノード部5は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
なお、実行ノード部5は、ジョブの再実行に関する制御を行う。即ち、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部5ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。
実行ノード部5は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認するようにしてもよい。
実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて複数回(少なくとも2回)、実行状態共有部6に記録された当該ジョブの実行状態を参照し、各回間で実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定するようにしてもよい。
また、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する制御を行ってもよい。
実行状態共有部6は、実行ノード部5におけるジョブの実行状態の情報を保持する。これにより、複数の実行ノード部5間で、ジョブの実行状態を共有できるようになる。実行状態共有部6は、データベース管理システム等のよって管理されたデータとして、ジョブの実行状態の情報を保持する。実行状態共有部6は、ジョブの実行IDに関連付けて、ジョブの実行状態の情報を保持する。
実行状態共有部6は、実行ノード部5からの記録要求により、ジョブの実行状態の情報を書き込む。また、実行状態共有部6は、実行ノード部5からの参照要求により、求められる実行IDを有するジョブの実行状態の情報を提供する。
図2は、実行マネージャー部2のより詳細な機能構成を示すブロック図である。図示するように、実行マネージャー部2は、ジョブネット実行制御部21と、再実行回数制御部22と、アラート通知部23とを含んで構成される。
ジョブネット実行制御部21は、ジョブの実行順序を定義したジョブネットについて、その実行制御を行う。
再実行回数制御部22は、ジョブが再実行された回数を記録し、その回数を参照可能とする。
アラート通知部23は、ジョブの再実行回数が所定の最大値を超えた場合に、アラートを出力する。このアラートを出力することにより、再実行回数が所定値を超えた事象をユーザーに通知することができる。
図3は、メッセージブローカー部3のより詳細な機能構成を示すブロック図である。図示するように、メッセージブローカー部3は、実行要求キュー管理部31と、実行結果キュー管理部32と、トランザクション管理部33とを含んで構成される。
実行要求キュー管理部31は、実行マネージャー部2から渡されるジョブ実行要求メッセージ(以下、単に「ジョブ実行要求」と呼ぶことがある)、およびその他の実行要求系のメッセージを保持するためのキュー(queue)を管理する。このキューは、先入先出方式(first in, first out)のメモリーであり、実行要求キュー管理部31内に存在する。キューに格納されたジョブ実行要求は、順次読み出され、実行ノード部5に渡される。
実行結果キュー管理部32は、実行ノード部5から返されるジョブ実行結果メッセージ(以下、単に「ジョブ実行結果」と呼ぶことがある)、およびその他の実行結果系のメッセージを保持するためのキューを管理する。このキューは、先入先出方式のメモリーであり、実行結果キュー管理部32内に存在する。キューに格納されたジョブ実行結果は、順次読み出され、実行マネージャー部2に渡される。
トランザクション管理部33は、ジョブ実行要求およびジョブ実行結果のメッセージの受け渡しの処理において、そのトランザクションを管理する機能を有する。
図4は、実行ノード部5のより詳細な機能構成を示すブロック図である。図示するように、個々の実行ノード部5は、ジョブフロー定義部51と、ジョブ実行制御部52と、ジョブ再実行制御部53と、実行状態記録部54と、実行状態参照部55と、実行状態確認部56とを含んで構成される。
ジョブフロー定義部51は、ジョブの処理フローの定義を保持し、または参照する機能を有する。
ジョブ実行制御部52は、ジョブの実行を行うとともに、ジョブの実行状況を制御する。
ジョブ再実行制御部53は、ジョブの再実行に関する制御を行う。ジョブの再実行に関する制御は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認したり、ジョブが完了しているか否かを確認したり、ジョブの再開ポイントを決定したりする処理を含む。
実行状態記録部54は、ジョブの実行状態を、実行状態共有部6に記録する機能を有する。ここで、ジョブの実行状態とは、ジョブフロー中におけるどの部分(ステップ)までが実行されたかを表す情報である。
実行状態参照部55は、実行状態共有部6に記録されているジョブの実行状態の情報を参照する。
実行状態確認部56は、実行状態参照部55が参照したジョブの実行状態の情報に基づいて、ある特定のジョブが実行されているかどうかを判断する。例えば、実行状態確認部56は、実行状態参照部55を介して、ある特定のジョブの前後に実行される他のジョブの実行状態を取得し、それらの実行状態の情報に基づいて、当該特定のジョブが実行されているかどうかを判断する。
実行状態確認部56による処理の詳細については、後で、別の図面を参照しながら説明する。
図5は、ジョブ実行制御装置1にける動作手順の例を示すシーケンスチャートである。同図は、ジョブ実行制御装置1内の各部の動作と、それら各部間の相互作用(データのやりとり等)を示すものである。以下、このシーケンスチャートに沿って、動作手順を説明する。
まず、ステップS1において、実行マネージャー部2は、ジョブ実行要求をメッセージブローカー部3に送る。このとき、ジョブ実行要求は、実行IDの情報を含んでいる。これを受けて、メッセージブローカー部3は、受信したジョブ実行要求を実行要求キューに書き込む。このジョブ実行要求は、一時的に、実行要求キューに保持される。
なお、ステップS1において、メッセージブローカー部3の実行要求キュー管理部31が、上記のジョブ実行要求のメッセージを実行要求キューに書き込む。
次に、ステップS1.1において、1つの実行ノード部5(実行ノード部A)は、メッセージブローカー部3から、ジョブ実行要求を受け取る。つまり、メッセージブローカー部3は、実行要求キューから上記のジョブ実行要求を取り出し、そのジョブ実行要求を上記の実行ノード部5(実行ノード部A)に送信する。
なお、ステップS1.1において、メッセージブローカー部3の実行要求キュー管理部31が、ジョブ実行要求を実行ノード部5に送信する。
次に、ステップS2において、上記ステップS1.1でジョブ実行要求を受信した実行ノード部5(実行ノード部A)が、ジョブを実行する。ここで実行されるジョブは、渡されたジョブ実行要求が持つ実行IDによって特定されるジョブである。
なお、ステップS2において、実行ノード部5のジョブ実行制御部52が、上記のジョブの実行を制御する。
そして、ステップS3において、実行ノード部5(実行ノード部A)は、実行状態共有部6に、ジョブの実行状態を書き込む。このジョブの実行状態の情報は、実行IDを含むものである。これにより、当該実行IDのジョブの実行状態の情報は、共有可能な状態で、実行状態共有部6に記録される。
なお、ステップS3において、実行ノード部5の実行状態記録部54が、ジョブの実行状態を実行状態共有部6に書き込む。
次に、ステップS4において、本シーケンス図の流れでは、実行ノード部5(実行ノード部A)が、ジョブの実行を失敗する。つまり、コンピューターでの処理の実行における何らかのエラーにより、ジョブが異常に終了する。
次に、ステップS5において、実行ノード部5(実行ノード部A)は、ステップS4におけるジョブ実行の失敗を受けて、ロールバック(rollback)メッセージをメッセージブローカー部3に返す。このロールバックメッセージは、失敗したジョブの実行IDを含むものである。メッセージブローカー部3は、このロールバックメッセージを、実行結果キューに書き込む。
なお、ステップS5において、メッセージブローカー部3の実行結果キュー管理部32が、上記のロールバックメッセージを実行結果キューに書き込む。
次に、ステップS5.1において、実行マネージャー部2は、メッセージブローカー部3から、上記のロールバックメッセージを受け取る。つまり、メッセージブローカー部3は、実行結果キューから上記のロールバックメッセージを取り出し、そのロールバックメッセージを上記の実行マネージャー部2に送信する。そして、実行マネージャー部2においては、このロールバックメッセージを受けて、当該実行IDによって特定されるジョブの実行回数を記録する。つまり、実行マネージャー部2は、当該実行IDのジョブの実行回数を、1だけ増分させる。
そして、このとき実行マネージャー部2は、当該実行IDのジョブの再実行回数が、予め定められた指定値を超えたか否かを判定する。再実行回数がまだその指定値を超えていない場合には、次にステップS6に進む。再実行回数がその指定値を超えた場合には、次にステップS8に進む。
なお、ステップS5.1において、実行マネージャー部2の再実行回数制御部22が、上記の再実行回数の記録や、再実行回数の値が指定値を超えているか否かに基づく処理の分岐を制御する。また、メッセージブローカー部3の実行結果キュー管理部32が、上記のロールバックメッセージを実行マネージャー部2に送信する。
次に、ステップS6に進んだ場合、同ステップにおいて、実行マネージャー部2は、ジョブの再実行のメッセージをメッセージブローカー部3に送る。このとき、再実行のメッセージは、実行IDの情報を含んでいる。これを受けて、メッセージブローカー部3は、受信した再実行のメッセージを実行要求キューに書き込む。この再実行メッセージは、一時的に、実行要求キューに保持される。
なお、ステップS6において、メッセージブローカー部3の実行要求キュー管理部31が、上記の再実行のメッセージを実行要求キューに書き込む。
次に、ステップS6.1において、1つの実行ノード部5(実行ノード部B)は、メッセージブローカー部3から、再実行のメッセージを受け取る。つまり、メッセージブローカー部3は、実行要求キューから上記の再実行のメッセージを取り出し、その再実行のメッセージを上記の実行ノード部5(実行ノード部B)に送信する。なお、ここで、実行ノード部Bは、実行ノード部Aとは異なるノードである。
なお、ステップS6.1において、メッセージブローカー部3の実行要求キュー管理部31が、再実行のメッセージを実行ノード部5に送信する。
次に、ステップS6.1.1において、上記の再実行のメッセージを受信した実行ノード部5(実行ノード部B)は、指定された実行IDによって特定されるジョブの実行状態を参照する。具体的には、実行ノード部5(実行ノード部B)は、実行状態共有部6に記録されているジョブの実行状態を参照する。
なお、ステップS6.1.1において、実行ノード部5の実行状態参照部55が、実行状態共有部6に記録されているジョブの実行状態を参照する。
次に、ステップS6.1.2において、実行ノード部5(実行ノード部B)は、ステップS6.1.1で実行状態共有部6を参照した結果に基づいて、ジョブ実行状態を確認する。そして、実行ノード部5(実行ノード部B)は、指定された実行IDによって特定されるジョブが、実行されているか否かを判定する。そのジョブが実行されていない場合には、ステップS6.1.3に進む。そのジョブが実行されている場合には、ステップS6.1.5に進む。
なお、ステップS6.1.2において、実行ノード部5の実行状態確認部56が、上記のジョブの実行状態を確認する。
次に、ステップS6.1.3に進んだ場合、同ステップにおいて、実行ノード部5(実行ノード部B)は、再開ポイントを決定する。具体的には、実行ノード部5(実行ノード部B)は、上で参照したジョブ実行状態に基づいて、再開ポイントを決定する。
なお、ステップS6.1.3において、実行ノード部5のジョブ再実行制御部53が、上記の再開ポイントの決定を行う。
次に、ステップS6.1.3.1において、実行ノード部5(実行ノード部B)は、ステップS6.1.3で決定された再開ポイントから、ジョブを再実行する。
なお、ステップS6.1.3.1において、実行ノード部5のジョブ再実行制御部53が、上記の再実行を制御する。
次に、ステップS6.1.4において、上で再実行したジョブの終了後に、ジョブ実行結果をメッセージブローカー部3に返す。このジョブ実行結果は、当該ジョブの実行IDを含むものである。
次に、ステップS6.2において、実行マネージャー部2は、メッセージブローカー部3から、上記のジョブ実行結果を受け取る。つまり、メッセージブローカー部3は、実行結果キューから上記のジョブ実行結果を取り出し、そのジョブ実行結果を実行マネージャー部2に送信する。
次に、ステップS7において、実行マネージャー部2は、上記のジョブ実行結果を受けて、当該実行IDによって特定されるジョブの実行完了の処理を行う。つまり、実行マネージャー部2のジョブネット実行制御部21は、当該ジョブの実行が完了したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。
以上で、ステップS6.1.3に分岐した場合の処理(ジョブ実行状態を確認した結果、実行してなかった場合の処理)を完了する。
次に、ステップS6.1.5に進んだ場合、同ステップにおいて、実行ノード部5(実行ノード部B)は、ジョブの再実行を行わないことを決定する。この処理は、実行ノード部5のジョブ再実行制御部53により行われる。
以上で、ステップS6.1.5に分岐した場合の処理(ジョブ実行状態を確認した結果、実行していた場合の処理)を完了する。
次に、ステップS8に進んだ場合、同ステップにおいて、実行マネージャー部2は、指定値を超えて再実行してもジョブの実行が失敗した事象に基づいて、当該実行IDによって特定されるジョブに関して、実行失敗の処理を行う。つまり、実行マネージャー部2のジョブネット実行制御部21は、当該ジョブの実行が最終的に失敗したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。
以上で、ステップS8に分岐した場合の処理(再実行回数が指定値を超えていた場合の処理)を完了する。
以上で、シーケンス図全体の処理を終了する。
図6は、ジョブフローを定義するデータの構成例を示す概略図である。このジョブフロー定義データは、実行マネージャー部2のジョブネット実行制御部21によって管理される。ただし、このジョブフロー定義データは、ジョブ実行制御装置1内の他の各部からも参照可能な形で保持されている。このジョブフロー定義データは、予めユーザー(例えば、システム運用管理者)によって作成され、ジョブ実行制御装置1に入力されるものである。
同図の左側は、ジョブを構成する複数のステップの処理順序関係を視覚的に表すチャートである。なお、ステップの処理順序は、半順序(partial order)で表される。同図の右側は、そのチャートに対応する、ジョブフロー定義のテキストデータである。このテキストデータは、例えば、XML形式やJSON形式などといったコンピューター処理可能な形式で、ジョブ実行制御装置1内に保持される。なお、XMLは、Extensible Markup Language(エクステンシブル マークアップ ランゲージ,拡張マークアップ言語)の略である。また、JSONは、JavaScript Object Notationの略である。なお、JavaScriptは登録商標である。
図示するジョブフロー定義の例においては、5個のステップ(ジョブステップ)が存在し、それらは「Step1」から「Step5」までである。ステップ間の順序関係は、次の通りである。即ち、Step2の処理は、Step1の処理に後続する。Step3の処理は、Step1の処理に後続する。Step2の処理とStep3の処理との間の順序関係は問われない。Step4の処理は、Step2の処理に後続し、且つStep3の処理に後続する。そして、Step5の処理は、Step4の処理に後続する。
また、図示するテキストデータにおいて、実体job(ジョブ)は、属性idを有する。この属性idは、既に説明した「実行ID」である。実体jobは、その下位に、実体sequence(シーケンス)または実体parallel(パラレル)を含むことによりジョブフローを定義している。実体sequenceは、その下位に、実体stepや実体parallelを含むことができる。実体parallelは、その下位に、実体stepや、実体sequenceを含むことができる。
実体sequenceは、複数の要素が順次処理の関係にあることを表す。つまり、下位の要素である実体stepや実体parallelが、記載されている順の先行−後続関係として規定される。
実体parallelは、複数の要素が並列処理の関係にあることを表す。つまり、下位の要素である実体stepや実体sequenceに関して、それら要素間での先行−後続関係が規定されず、並列に実行して良いものであることが規定される。
実体stepは、属性idを有する。このidは、ステップを識別する情報である。個々の実体stepは、ジョブ内の処理ステップに対応する。ジョブフローの定義において、ステップは、処理のまとまりとしての最小単位である。
図示するテキストデータでは、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の左側に示す処理順序関係のチャートと整合している。
図7は、実行状態共有部6が保持する、ジョブの実行状態の情報の構成例を示す概略図である。図示するように、ジョブ実行状態の情報は、表形式のデータとして実行状態共有部6に保持される。ジョブ実行状態のデータは、例えば、データベース管理システム(DBMS)を用いて管理され、磁気ハードディスク装置や半導体メモリー等の永続的記憶手段に記憶される。ジョブ実行状態のデータは、実行ID、ステップID(StepID)、入力、出力の各項目を含む。実行IDは、ジョブを識別する情報である。ステップIDは、ジョブ内のステップを識別する情報である。入力は、ステップへの入力データを特定する情報である。出力は、ステップからの出力データを特定する情報である。
図示する例では、実行IDが100であり、且つステップIDがStep1、Step2、Step3である3行のデータが存在する。そして、実行IDが100であり、ステップIDがその他であるデータは存在しない。これは、実行IDが100のジョブに関して、Step1とStep2とStep3とは既に完了しているが、その他のステップ(例えば、Step4など)は未完了であることを表している。このように、実行状態共有部6は、ジョブの実行経過を含めた実行状態を表すデータを保持している。
図8は、ジョブの実行状態の参照と確認の方法を説明するための概略図である。
例えば、ネットワーク障害などの理由で、一時的に、実行ノード部5にアクセスできない場合にも、その実行ノード部5上では、ジョブがまだ実行されている可能性がある。そのため、他の実行ノード部5上で、ジョブを引き継いで再実行を行う際には、まず当初そのジョブが稼働していた実行ノード部5上での実行状態を確認する。
同図(a)は、実行ノード部間での実行状態の共有の態様を示す。ここに示す例では、ある実行ノード部5(実行ノード部Aと呼ぶ)がジョブを実行し、その実行状態を実行状態共有部6に記録する。そしてその実行ノード部Aが何らかの障害等により一時的にサービス不能となったとき、あるいはネットワークを介した情報としてサービス不能と判断され得るとき、他の実行ノード部5(実行ノード部Bと呼ぶ)上で、ジョブの再実行を試みる。その際、実行ノード部Bは、ジョブの実行IDを鍵として実行状態共有部6に記録されている実行状態の情報を参照し、そのジョブの実行状態を確認する。
同図(b)は、上記の状況において実行ノード部Bが実行状態を確認する方法を示す。具体的には、実行ノード部Bは、所定の時間間隔を有する複数の時刻(例えば、t1とt2の2つの時刻)において、それぞれ、実行状態共有部6が保持するデータベースから、目的とするジョブの実行状態の情報を取得する。なおこのとき、時間間隔(t2とt1との差)の長さは、例えば1つのジョブステップの実行に要する時間等に基づいて適宜定めることとする。そして、実行ノード部Bは、時刻t1における実行状態と、時刻t2における実行状態とを比較する。この比較の結果として、次の3通りのパターンが検出され得る。
パターン1として、時刻t1において参照した実行状態と、時刻t2において参照した実行状態とが等しくない場合がある。この場合は、時刻t1から時刻t2に経過する間に、実行ノード部Aによって実行状態の記録が更新されたことを意味する。つまり、この場合、実行ノード部Aがまだジョブを実行中である。この場合、実行ノード部Bは、実行ノード部Aによるジョブ実行が完了するまで待つ。そして、もし実行ノード部Aがジョブ実行結果を送信できなかった場合には、代わりに、実行ノード部Bがジョブ実行結果をメッセージブローカー部3に送信する。
パターン2として、時刻t1において参照した実行状態と時刻t2において参照した実行状態とが等しく、且つジョブフローの最後に既に到達している場合がある。なお、ジョブフローの最後に到達しているか否かは、ジョブフローの定義データと、実行状態共有部6が保持する実行状態のデータとを対比することにより判断可能である。このパターン2の場合、既に、ジョブの実行が完了しているが、ジョブ実行結果がまだ実行ノード部Aから送信されていない状況である。したがって、この場合には、実行ノード部Bは、ジョブ実行結果をメッセージブローカー部3に送信する処理のみを行う。
パターン3として、時刻t1において参照した実行状態と時刻t2において参照した実行状態とが等しく、且つジョブフローの最後にまだ到達していない場合がある。このパターン3の場合、ジョブの途中の所定箇所までは完了し、ジョブのその後の部分については実行されていないことを意味する。よって、実行ノード部Bは、実行状態の情報に基づいて、ジョブ再開ポイントを適切に定め、ジョブを再実行する。
上記のパターン3の場合の、再開ポイントの決定方法について説明する。
図6に例示したジョブフロー定義と、図7に例示した実行状態データ(各ステップの入出力の記録)を前提とした場合、実行状態データがStep4の入出力記録を持っていない。このため、Step4の処理で失敗したと判断できる。よって、再開すべきポイントは、Step4の先頭部分である。したがって、実行ノード部Bのジョブ再実行制御部53は、Step4を再開ポイントとする。
つまり、実行ノード部5は、他の実行ノード部5によって実行されたジョブの実行状態のデータに基づいて、当該ジョブの未実行の部分を特定し、その未実行の処理を再開ポイントとする。そして、実行ノード部5は、決定した再開ポイントから、ジョブを再実行する。
なお、上に示した例では、ステップの切れ目を再開ポイントとするようにしたが、ステップの途中の未処理の部分から、処理を再開するようにしてもよい。その場合、ステップ内で、どこまでが実行済みであるかを表す情報を、実行状態のデータに含めるようにする。
図9は、ジョブの再実行に関する定義を規定するテキストデータを示す概略図である。図示するデータでは、ジョブを起動する際に、ジョブごとに、再実行の可否と、再実行を可能とする場合における再実行上限回数(リトライリミット,再実行回数最大値)とを指定することができる。
同図において、要素jobは、属性id(id=job1)を有する。その要素jobは、下位に、要素jobnet(ジョブネット)を有する。なお、ジョブネットは、複数のジョブを含む処理単位である。そして、その要素jobnetは、下位に、要素sequenceを有する。要素sequenceは、下位の要素を直列に順次処理させるものである。そして、その要素sequenceは、下位に、3つの要素invokeを有する。それら3つの要素invokeは、属性jobId(ジョブ識別情報)として、それぞれ、jobA、jobB、jobCを有している。また、各々の要素invokeは、属性retriableにより、再実行可否を規定できる。retriableの値がtrue(真)のときには再実行可能であり、その値がfalse(偽)のときには再実行不可能である。また、再実行可能の場合には、属性retryLimitにより、再実行上限回数を規定することができる。
図示する例では、jobIdが「jobA」であるジョブに関して、再実行可能であり、再実行上限回数が5に設定されている。また、jobIdが「jobB」であるジョブに関して、再実行可能であり、再実行上限回数が3に設定されている。jobIdが「jobC」であるジョブに関して、再実行不可能と設定されている。
ジョブ実行制御装置1は、上で説明した図9に示すテキストデータにしたがい、ジョブの再実行を制御する。
図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とともに、ジョブの実行失敗を知らせるためのアラート情報を、出力する。このアラート情報により、ユーザー(システム管理者、システム運用担当者等)は、ジョブの実行失敗を知る。
図11は、再実行回数制御部22が再実行回数を制御する際の再実行回数カウント情報の構成例を示す概略図である。図示するように、再実行回数カウント情報は、表形式のデータとして実現され得るものであり、実行IDおよび再実行回数カウント(RetryCount)のデータ項目を有する。つまり、実行IDに対応付けて、再実行回数カウントを保持することができる。この再実行回数カウント情報は、例えば実行マネージャー部2からアクセス可能なデータベース管理システム(DBMS)で管理される。
図示するデータ例では、実行IDが「100」であるジョブに関して、その時点での再実行回数カウントは4である。また、実行IDが「111」であるジョブに関して、その時点での再実行回数カウントは2である。また、実行IDが「120」であるジョブに関して、その時点での再実行回数カウントは5である。再実行回数制御部22は、この再実行回数カウント情報を適宜更新することにより、再実行回数をカウントする。
そして、再実行回数制御部22は、前述の通り、再実行回数が指定された閾値(再実行上限回数)以下であれば、再実行リクエストを送付し、再度実行するようにする。また、再実行回数が指定された閾値(再実行上限回数)を超えていれば、それ以上の再実行によって復旧はできない可能性が高いために、再実行せず、アラート通知部23がユーザーに対してアラート通知を行う。
上記実施形態では、再実行回数制御部の機能を実行マネージャー部2内に有するものとしたが、下記の変形例によって実施してもよい。
この変形例においては、実行マネージャー部2ではなく、実行ノード部5が再実行回数を制御する機能(再実行制御部の機能)を有する。
また、この変形例においては、各ジョブのジョブフロー定義において、そのジョブの再実行可否と、再実行可能の場合の再実行上限回数とを、指定することができるようにする。
図12は、この変形例におけるジョブフロー定義のテキストデータの構成例を示す概略図である。このジョブフロー定義のデータは、図2に示したテキストデータと同様に、step1からstep5までの各ステップの処理順序を規定している。ここで、当該変形例における特徴は、データの第1行目に記述されているように、要素jobが、属性retriableおよび属性retryLimitを有する点である。図示する例では、「retriable=true」(再実行可能を表す)、および「retryLimit=5」(再実行上限回数が5であることを表す)が記述されている。
また、この変形例において、各ジョブの再実行回数のカウント値(図11に示したのと同等のデータ)は、各実行ノード部5からアクセス可能なデータベースに保存され、ノード間で共有される。一例として、実行状態共有部6内に、各ジョブの再実行回数のカウント値を保持するようにしてもよい。そして、実行ノード部5は、これらの再実行回数のカウント値と、再実行上限回数とに基づいて、既に述べたものと同様の再実行の制御を行う。
以上説明した少なくともひとつの実施形態によれば、実行マネージャー部2が、実行ノード部5におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出することにより、また、実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部5ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行するようにすることにより、異なるノードにまたがって、ジョブを再実行させることができる。
また、実行ノード部5は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する。これにより、障害である可能性があるノードで実行されていたジョブに関して、ジョブの処理が完了しているか否かを判定することができる。
また、実行ノード部5は、ジョブが他の実行ノード部5でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも2回、実行状態共有部から当該ジョブの実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部5でまだ実行されているか否かを決定する。これにより、例えばネットワーク障害等により、失敗したかのように見えるジョブに関して、まだ実行されているか否かを確認することができる。
また、メッセージブローカー部3は、実行マネージャー部2から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部5のいずれかに渡す。これにより、実行要求等を複数の実行ノード部5に振り分けることが可能となる。
実行ノード部5は、実行マネージャー部2からジョブの再実行要求を受け取った場合には、実行状態共有部6に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部5でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部6から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する。これにより、適切なポイントからの再実行が可能となる。また、計算資源の無駄な消費を抑制することができる。
実行マネージャー部2は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。これにより、ジョブの再実行回数を制御できる。つまり、延々と再実行し続けることを防ぐことができる。
なお、上述した実施形態におけるジョブ実行制御装置1の機能、またはその一部の機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM、DVD−ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…ジョブ実行制御装置、2…実行マネージャー部、3…メッセージブローカー部、5…実行ノード部、6…実行状態共有部、2…実行マネージャー部、21…ジョブネット実行制御部、22…再実行回数制御部、23…アラート通知部、31…実行要求キュー管理部、32…実行結果キュー管理部、33…トランザクション管理部、51…ジョブフロー定義部、52…ジョブ実行制御部、53…ジョブ再実行制御部、54…実行状態記録部、55…実行状態参照部、56…実行状態確認部

Claims (7)

  1. ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
    前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
    前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
    を備えるジョブ実行制御装置であって、
    前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
    前記実行ノード部は、前記実行ノード部における前記ジョブの実行が異常に終了したこと、またはネットワーク障害の理由で一時的に当該実行ノード部にアクセスできないことが検知された場合に、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
    ジョブ実行制御装置。
  2. 前記実行ノード部は、前記ジョブの処理が完了したか否かを確認する際に、前記実行状態共有部から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する、
    請求項1に記載のジョブ実行制御装置。
  3. 前記実行ノード部は、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも2回、前記実行状態共有部から当該ジョブの前記実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを決定する、
    請求項1または2に記載のジョブ実行制御装置。
  4. 前記実行マネージャー部から送出される前記実行要求および前記再実行要求をキューに一時的に格納するとともに、前記キューから取り出した前記実行要求および前記再実行要求を、前記実行ノード部のいずれかに渡すメッセージブローカー部、
    をさらに備える請求項1から3までのいずれか一項に記載のジョブ実行制御装置。
  5. 前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、前記実行状態共有部から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された前記未処理のステップを再開ポイントとして当該ジョブを再実行する、
    請求項1から4までのいずれか一項に記載のジョブ実行制御装置。
  6. 前記実行マネージャー部は、前記ジョブの再実行回数をカウントするとともに、予め指定された前記ジョブの再実行回数の上限値を参照し、前記再実行回数が前記上限値を超える場合には、前記再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する、
    請求項1から5までのいずれか一項に記載のジョブ実行制御装置。
  7. コンピューターを、
    ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
    前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
    前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
    を備えるジョブ実行制御装置であって、
    前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
    前記実行ノード部は、前記実行ノード部における前記ジョブの実行が異常に終了したこと、またはネットワーク障害の理由で一時的に当該実行ノード部にアクセスできないことが検知された場合に、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
    ジョブ実行制御装置、として機能させるためのプログラム。
JP2016183485A 2016-09-20 2016-09-20 ジョブ実行制御装置およびプログラム Active JP6542172B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112215529B (zh) * 2019-07-09 2023-11-07 北京京东振世信息技术有限公司 获取数据的方法、***、设备和计算机可读介质

Family Cites Families (3)

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

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