JP2010224812A - ジョブ管理システムおよび方法 - Google Patents

ジョブ管理システムおよび方法 Download PDF

Info

Publication number
JP2010224812A
JP2010224812A JP2009070682A JP2009070682A JP2010224812A JP 2010224812 A JP2010224812 A JP 2010224812A JP 2009070682 A JP2009070682 A JP 2009070682A JP 2009070682 A JP2009070682 A JP 2009070682A JP 2010224812 A JP2010224812 A JP 2010224812A
Authority
JP
Japan
Prior art keywords
job
time
batch
virtual time
virtual
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
JP2009070682A
Other languages
English (en)
Other versions
JP5387083B2 (ja
Inventor
Hideyuki Kurashiro
秀行 倉城
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009070682A priority Critical patent/JP5387083B2/ja
Publication of JP2010224812A publication Critical patent/JP2010224812A/ja
Application granted granted Critical
Publication of JP5387083B2 publication Critical patent/JP5387083B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】手動でシステム時刻を変更すると、操作ミスが発生しやすく、また同じサーバ内の他のプログラムに影響を与えてしまう。
【解決手段】複数のバッチジョブを含むジョブネットワークの運用試験を行うジョブ管理システムにおいて、予めスケジューリングされていた各バッチジョブの起動時刻が来たら、ジョブ起動命令を発行するスケジュール管理部と、ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するジョブ実行制御部と、オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理する仮想時刻管理部とを備えていて、前記スケジュール管理部は、ジョブネットワークの運用試験を行う際には、仮想時刻を基準に起動時刻を決定することを特徴とする。
【選択図】図1

Description

本発明は、運用管理分野におけるジョブ管理に関し、特に、ジョブ管理における運用試験の高速化手段に関する。
まず、以下に本文中での用語の定義をしておく。「バッチジョブ」とは、業務などのある1つの目的のために定義された処理手続きであり、シェルスクリプト(Unix(登録商標))やバッチスクリプト(Windows(登録商標))で記述される。「ジョブネットワーク」とは、複雑な判断を伴う自動運用のため、より大きなまとまりでバッチジョブを順序付けてグルーピングしたものであり、一般にフロー状に記述され、各バッチジョブを順番に実行するだけでなく、並列実行や、前段の実行結果により処理を分岐させるといった複雑な制御を行うことができる。「マネージャ」とは、バッチジョブやジョブネットワークの定義情報を管理し、またジョブネットワークのフロー制御を行う機能をもったサーバである。実際の各バッチジョブの実行は、他のリモートのサーバ(エージェント)で行う。「エージェント」とは、各バッチジョブの実行を行う機能をもったサーバである。
通常、どのようなシステムであっても、実稼動を行う前には運用に即した試験が行われる。運用試験の目的は、スケジューリングされたバッチジョブが時間通りに起動され、全ての動作が正常に想定された時間内に終了するかを確認することである。システム構築時に、個々のジョブや業務単位で、それぞれ試験を行うかもしれないが、最終的に1つのシステムとして構築して運用する際に、思わぬ弊害が無いとも限らない。このため、このような試験は、極力実運用に即した形で行われるのが望ましい。しかしながら、ジョブ管理におけるスケジュールは、日次や週次、月次、または特定日など、目的に応じて様々なスパンで設定されており、それらの全てを実際の運用に即して試験すると、多大な工数を強いられる。
そこで、従来は、構築したバッチジョブの試験を行う際に、サーバのシステム時刻を変更することによって試験を行っていた。例えば、月曜日の8:00にスケジューリングされているジョブがあり、その動作を確認する場合、月曜日の7:50にシステム時刻を変更し、その後、システム時刻が8:00になった時点で、ジョブが起動して予想通りに実行されるかを確認する必要があった。
特開2002−41302号公報
しかし、このような方法で試験を行うと、手動でシステム時刻を変更することになるため、操作ミスが発生しやすく、またシステム時刻の変更によって、同じサーバ内の他のプログラムに影響を与えてしまうという問題があった。
本発明では、このような状況を鑑みて、以下のような手段によって問題を解決する。
ジョブ管理システム内にシステム時刻とは別の独立した仮想的な時刻(仮想時刻)を作成し、ジョブ管理システムが起動するバッチジョブは、全て仮想時刻に即して動作させる。バッチジョブを動かしていない期間(ジョブ管理におけるアイドル時間)を検出し、その期間は仮想時刻を変更する(早送りする)ことでカットし、バッチジョブの運用試験を高速化する。また、ジョブ管理システムが起動するバッチジョブ内において、システム時刻を必要とする処理が行われた場合には、OSへのシステム時刻取得命令(システムコール等)をフックし、仮想時刻を与えることで、システム時刻ではなく仮想時刻に基づいた動作を行わせる。
本発明は、ソフトウェアで作成した仮想時刻(仮想時計)を用いて、ジョブ管理システムが起動するバッチジョブを全て仮想時刻に基づいて動作させることで、構築・スケジューリングしたバッチジョブの運用試験を高速で行う。
本発明の第一の効果は、構築したジョブ管理システムの運用試験を低負荷かつ高速に行えることである。運用試験の際に、アイドル時間を自動的に検出し、次のバッチジョブの実行時刻の直前まで仮想時刻を早送りし、アイドル時間をカットすることで、従来よりも短時間で運用試験を行うことができる。また、仮想時刻の変更は自動的に行われるため、構築者・試験者への負荷を軽減しつつ、操作ミスを防ぐこともできる。
第二の効果は、ジョブネットワーク内における各バッチジョブの起動時刻等だけではなく、各バッチジョブ内での動作を、全て仮想時刻を元に動作させることができることである。これは、各バッチジョブ内で時刻を必要とする場合に、OSへのシステム時刻取得命令をフックして、仮想時刻を与えるためである。逆に、それ以外の他のプログラムへは影響を与えない。
本発明の一実施形態におけるジョブ管理システムの構成図である。 バッチジョブの起動/終了動作を説明するための図である。 アイドル時間の検出と仮想時刻の変更動作を説明するための図である。 バッチジョブ内で現在時刻が必要とされた場合の処理を説明するための図である。 本発明の他の実施形態におけるジョブ管理システムの構成図である。
図1に本発明の一実施形態におけるジョブ管理システムの構成を示す。スケジュール定義データベース(DB)1には、ジョブのスケジュールのルールが格納されている。スケジュール管理部2は、内部にタイマーを持ち、スケジュール定義DB1を参照して、ジョブの起動時刻が来たら、ジョブ起動命令を発行する。
ジョブ定義データベース(DB)3には、バッチジョブやジョブネットワークの定義情報が格納されている。実行ジョブ管理テーブル4には、実行中のジョブの情報(起動時刻やプロセスIDなど)が格納される。ジョブ実行制御部5は、スケジュール管理部2からジョブ起動命令が発行されたら、ジョブ定義DB3を参照して、ジョブを起動して実行し、実行ジョブ管理テーブル4を更新する。
オペレーティングシステム(OS;Operating System)6は、システム時刻を管理している。仮想時刻管理部7は、ソフトウェアで作成した仮想的な時刻である仮想時刻を管理し、必要に応じてこの仮想時刻を変更し、他のモジュールへ仮想時刻を通知する。時刻取得命令監視部8は、起動したバッチジョブがOS6に対してシステム時刻取得命令を発行するかどうかを監視する。システム時刻取得命令が発行された場合には、それをフックし、システム時刻の代わりに仮想時刻を返却する。
ジョブ管理システムは、コンピュータのハードウェアとソフトウェアの協働によって実現される。スケジュール定義DB1およびジョブ定義DB3は、コンピュータの記憶装置、例えばハードディスクによって実現される。実行ジョブ管理テーブル4および仮想時刻も、記憶装置に記憶される。スケジュール管理部2、ジョブ実行制御部5、仮想時刻管理部7、時刻取得命令監視部8は、コンピュータの制御装置、例えばCPUと、制御装置上で実行されるソフトウェアとの協働によって実現される。スケジュール管理部2によってスケジュールを管理され、ジョブ実行制御部5によって起動されるプログラム(バッチジョブ)も、コンピュータの制御装置上で実行される。ジョブ管理システムは、バッチジョブを目的に応じて前後関係を設け、それをフロー状に定義したジョブネットワーク及びそのバッチジョブを処理するためのプログラム群を実行する。
図2〜4を参照して、本実施形態の動作を、以下の3つの動作に分けて説明する。
まず、図2を参照して、バッチジョブの起動/終了動作を説明する。バッチジョブの起動時刻が来ると、スケジュール管理部2は、スケジュール定義DB1を参照して(ステップS1)、ジョブ実行制御部5に対してジョブ起動命令を発行する(S2)。ジョブ実行制御部5は、ジョブ定義DB3を参照して(S3)、目的のバッチジョブを起動し(S4)、実行ジョブ管理テーブル4を更新する(S5)。S4で起動したバッチジョブが終了すると(S6)、ジョブ実行制御部5は、実行ジョブ管理テーブル4を更新する(S7)。以上のS1〜S7の一連の動作によって、バッチジョブの実行制御が繰り返される。
次に、図3を参照して、アイドル時間の検出と仮想時刻の変更動作を説明する。ジョブ実行制御部5は、実行ジョブ管理テーブル4を参照して(S8)、あるタイミングで実行しているジョブがなくなった場合に、仮想時刻管理部7に通知を行う(S9)。すなわち、起動すべきバッチジョブが存在しない期間が、ジョブ管理システムにおけるアイドル時間である。仮想時刻管理部7は、ジョブ実行制御部5からの通知を受け、次のバッチジョブの起動時刻をスケジュール管理部2に問い合わせる(S10)。スケジュール管理部2は、スケジュール定義DB1を参照して(S11)、最も近いバッチジョブの起動時刻を仮想時刻管理部7に返却する(S12)。すると、仮想時刻管理部7は、スケジュール管理部2から返却された直近の起動時刻の直前まで仮想時刻を進める(S13)。仮想時刻管理部7は、スケジュール管理部2とジョブ実行制御部5に対して、変更した最新の仮想時刻を通知する(S14)。以後、S1〜14の動作を繰り返すことで、運用試験を行う。
次に、図4を参照して、バッチジョブ内で現在時刻が必要とされた場合の処理を説明する。時刻取得命令監視部8は、OS6へのシステム時刻取得命令を監視している。そして、プログラム(バッチジョブ)がシステム時刻取得命令を発行して、システム時刻を取得する処理を行おうとすると(S401)、当該処理がジョブ管理システムに関する処理であった場合には、そのシステム時刻取得命令をフックする(S402)。ジョブ管理システムに関する処理であるかどうかは、実行ジョブ管理テーブル4に格納された実行ジョブのデータ(プロセス名、PID等)を参照して判断することができる(S403)。そして、時刻取得命令監視部8は、現在の仮想時刻を仮想時刻管理部7に問い合わせ(S404)、仮想時刻管理部7は、仮想時刻データを確認し(S405)、時刻取得命令監視部8に仮想時刻を返却する(S406)。これを受け取った時刻取得命令監視部8は、当該処理に対して、システム時刻ではなく仮想時刻を返却する(S407)。
次に、図5を参照して、本発明の他の実施形態を説明する。図1に示した実施形態では、サーバ1台でスケジュールの管理やジョブの実行を行っているが、一般的なシステムの場合、ジョブを実行するサーバは、ネットワーク上に分散した複数台のサーバとなることが多い。このときの運用形態としては、マネージャと呼ばれるマシンでバッチジョブの定義情報を管理し、ジョブネットワークのフロー制御を行い、実際の各バッチジョブの実行は、その目的に応じた他のサーバ(エージェント)で実行させる。
マネージャ50mからエージェント50aに対してジョブが転送され、実際のジョブはエージェント50a上で実行され、その実行結果(終了コード、標準出力、標準エラー出力)がマネージャ50mに返却される。図1に示した実施形態では、このジョブ実行を1台のサーバ上(マネージャ上)で行っていたが、リモートのエージェント上で実行する場合は、本発明の要である仮想時刻管理部と時刻取得命令監視部がエージェント上に必要となる。
マネージャ50m上で仮想時刻の変更が行われると、変更された仮想時刻がマネージャ50mの仮想時刻管理部7mからエージェント50aの仮想時刻管理部7aへ通知され、仮想時刻の同期が行われる。また、エージェント50a上で実行されるバッチジョブがシステム時刻を必要とする場合には、エージェント50a上の時刻取得命令監視部8がそれをフックし、システム時刻の代わりに仮想時刻を返却する。このような仕組みにより、ネットワーク上に分散した複数台からなるジョブ管理システムにも本発明の適用は可能である。なお、図5では簡略化のためエージェントを1台だけとしたが、2台以上のエージェントが存在しても、マネージャからの仮想時刻同期の通知が複数台のエージェントに対して行われるだけであり、根本的な仕組みは変わらない。
また、応用的な使い方として、次のようなことも考えられる。上記の説明では、あらかじめスケジューリングされたジョブネットワークの実行を自動で全て行うこととしたが、場合によってはスケジュールされているジョブの全てを試験したくはないことも考えられる。例えば、1年間分の試験を行おうとする場合、スケジュールされたジョブネットワークの数によっては、たとえ本発明を用いたとしても、かなりの時間がかかることが予想される。このような場合には、スケジュールされている全ての期間の試験を行うのではなく、あらかじめ試験を行いたい日時を絞り込ませた外部パラメータ(例えば、2/11 10:00〜20:00、4/10〜15、5/11、のように)を用意し、それを仮想時刻管理部に与えることで、任意の期間だけの試験を行うようにもできる。仮想時刻管理部は、スケジュール管理部からの情報によって次のジョブの起動時刻へ仮想時刻を変更する代わりに、外部パラメータによって与えられた時刻へ仮想時刻を変更する。
本発明は、運用管理におけるジョブ管理分野に利用することができる。
1 スケジュール定義データベース(DB)
2 スケジュール管理部
3 ジョブ定義データベース(DB)
4、4m、4a 実行ジョブ管理テーブル
5、5m、5a ジョブ実行制御部
6、6m、6a オペレーティングシステム(OS;Operating System)
7、7m、7a 仮想時刻管理部
8 時刻取得命令監視部
50m マネージャ
50a エージェント

Claims (4)

  1. 複数のバッチジョブを含むジョブネットワークの運用試験を行うジョブ管理システムにおいて、
    予めスケジューリングされていた各バッチジョブの起動時刻が来たら、ジョブ起動命令を発行するスケジュール管理部と、
    ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するジョブ実行制御部と、
    オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理する仮想時刻管理部とを備えていて、
    前記スケジュール管理部は、ジョブネットワークの運用試験を行う際には、仮想時刻を基準に起動時刻を決定することを特徴とするジョブ管理システム。
  2. 各バッチジョブ内でシステム時刻を取得する命令が発行されたかどうかを監視する時刻取得命令監視部を更に備えていて、
    前記時刻取得命令監視部は、ジョブネットワークの運用試験中に各バッチジョブ内でシステム時刻を取得する命令が発行された場合には、システム時刻の代わりに仮想時刻を各バッチジョブに与えることを特徴とする請求項1に記載のジョブ管理システム。
  3. ジョブネットワークのフロー制御を行うマネージャと、各バッチジョブを実行するエージェントとに分かれていて、
    マネージャは、スケジュール管理部と、マネージャ側のジョブ実行制御部と、マネージャ側の仮想時刻管理部とを備えていて、
    エージェントは、エージェント側のジョブ実行制御部と、エージェント側の仮想時刻管理部と、時刻取得命令監視部とを備えていて、
    マネージャ側のジョブ実行制御部は、ジョブ起動命令が発行されたら、この命令をエージェント側のジョブ実行制御部に転送し、
    マネージャ側の仮想時刻管理部とエージェント側の仮想時刻管理部との間では、仮想時刻の同期が行われることを特徴とする請求項2に記載のジョブ管理システム。
  4. 複数のバッチジョブを含むジョブネットワークの運用試験を行うジョブ管理方法において、
    予めスケジューリングされていた各バッチジョブの起動時刻が来たら、ジョブ起動命令を発行するステップと、
    ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するステップとを有していて、
    オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理して、ジョブネットワークの運用試験を行う際には、仮想時刻を基準に起動時刻を決定することを特徴とするジョブ管理方法。
JP2009070682A 2009-03-23 2009-03-23 ジョブ管理システムおよび方法 Expired - Fee Related JP5387083B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009070682A JP5387083B2 (ja) 2009-03-23 2009-03-23 ジョブ管理システムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009070682A JP5387083B2 (ja) 2009-03-23 2009-03-23 ジョブ管理システムおよび方法

Publications (2)

Publication Number Publication Date
JP2010224812A true JP2010224812A (ja) 2010-10-07
JP5387083B2 JP5387083B2 (ja) 2014-01-15

Family

ID=43041942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009070682A Expired - Fee Related JP5387083B2 (ja) 2009-03-23 2009-03-23 ジョブ管理システムおよび方法

Country Status (1)

Country Link
JP (1) JP5387083B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231531A (ja) * 2009-03-27 2010-10-14 Nomura Research Institute Ltd 仮想時刻の同期システム
CN107769933A (zh) * 2017-09-26 2018-03-06 厦门集微科技有限公司 基于物联网定时任务的自动化测试方法及系统
WO2018051614A1 (ja) * 2016-09-16 2018-03-22 日本電気株式会社 時刻管理システム、時刻管理装置、同期処理装置、計算機、時刻管理方法、及びコンピュータ読み取り可能な記録媒体

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041302A (ja) * 2000-07-27 2002-02-08 Toshiba Corp ジョブ運用管理システムおよび同システムのジョブスケジュールテスト方法
JP2006277280A (ja) * 2005-03-29 2006-10-12 Nec Corp コンピュータシステム、その日付時刻変更方法及び日付変更方法
JP2008234276A (ja) * 2007-03-20 2008-10-02 Hitachi Software Eng Co Ltd ジョブスケジュールの運用テストシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041302A (ja) * 2000-07-27 2002-02-08 Toshiba Corp ジョブ運用管理システムおよび同システムのジョブスケジュールテスト方法
JP2006277280A (ja) * 2005-03-29 2006-10-12 Nec Corp コンピュータシステム、その日付時刻変更方法及び日付変更方法
JP2008234276A (ja) * 2007-03-20 2008-10-02 Hitachi Software Eng Co Ltd ジョブスケジュールの運用テストシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231531A (ja) * 2009-03-27 2010-10-14 Nomura Research Institute Ltd 仮想時刻の同期システム
WO2018051614A1 (ja) * 2016-09-16 2018-03-22 日本電気株式会社 時刻管理システム、時刻管理装置、同期処理装置、計算機、時刻管理方法、及びコンピュータ読み取り可能な記録媒体
JPWO2018051614A1 (ja) * 2016-09-16 2019-08-08 日本電気株式会社 時刻管理システム、時刻管理装置、同期処理装置、計算機、時刻管理方法、及びプログラム
CN107769933A (zh) * 2017-09-26 2018-03-06 厦门集微科技有限公司 基于物联网定时任务的自动化测试方法及系统
CN107769933B (zh) * 2017-09-26 2020-09-29 厦门集微科技有限公司 基于物联网定时任务的自动化测试方法及系统

Also Published As

Publication number Publication date
JP5387083B2 (ja) 2014-01-15

Similar Documents

Publication Publication Date Title
Hung et al. Scheduling jobs across geo-distributed datacenters
EP3387528B1 (en) Updating dependent services
US9485151B2 (en) Centralized system management on endpoints of a distributed data processing system
EP3051414A1 (en) Computer device, method and apparatus for scheduling service process
US20150052510A1 (en) Generating a customized set of tasks for migration of a deployed software solution
CN106708740B (zh) 脚本测试方法及装置
CN113569987A (zh) 模型训练方法和装置
WO2006130514A1 (en) Method and system for scheduling jobs in a computer system
JP6369170B2 (ja) 実行時間推定装置及び方法
US9921882B2 (en) Information processing system, deployment method, processing device, and deployment device
US11354150B1 (en) Utilizing maintenance event windows to determine placement of instances
WO2009089746A1 (fr) Procédé, dispositif et système de réalisation d'une tâche dans un environnement de grappes
CN113377665A (zh) 基于容器技术的测试方法、装置、电子设备及存储介质
JP5387083B2 (ja) ジョブ管理システムおよび方法
US8527747B2 (en) Future system that can participate in systems management activities until an actual system is on-line
WO2006130509A1 (en) Method and system for visualizing job forecasting in a computer system
US7240348B2 (en) Suspending scenario generation method, server device, and program therefor
CN115309558A (zh) 一种资源调度管理系统、方法、计算机设备及存储介质
CN113127162B (zh) 自动化任务执行方法、装置、电子设备及计算机存储介质
CN103092692A (zh) 适用于软件批处理作业的作业管理器实现方法及作业管理器
CN111858234A (zh) 一种任务执行方法、装置、设备、介质
EP1011045B1 (en) Object-oriented job scheduler
CN113419921A (zh) 一种任务监控方法、装置、设备以及存储介质
CN113872808B (zh) 应用处理方法及装置
CN117667362B (zh) 一种流程引擎调度方法、系统、设备及可读介质

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100723

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130701

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: 20130910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130923

R150 Certificate of patent or registration of utility model

Ref document number: 5387083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees