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

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

Info

Publication number
JP5387083B2
JP5387083B2 JP2009070682A JP2009070682A JP5387083B2 JP 5387083 B2 JP5387083 B2 JP 5387083B2 JP 2009070682 A JP2009070682 A JP 2009070682A JP 2009070682 A JP2009070682 A JP 2009070682A JP 5387083 B2 JP5387083 B2 JP 5387083B2
Authority
JP
Japan
Prior art keywords
job
time
batch
agent
manager
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.)
Expired - Fee Related
Application number
JP2009070682A
Other languages
English (en)
Other versions
JP2010224812A (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.)
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

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 (2)

  1. 複数のバッチジョブを含むジョブネットワークの運用試験を行うジョブ管理システムであって、
    ジョブネットワークのフロー制御を行うマネージャと、
    各バッチジョブを実行するエージェントと
    を備え
    前記マネージャは、
    予めスケジューリングされていた各バッチジョブの起動時刻が来たら、ジョブ起動命令を発行するスケジュール管理部と、
    ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するマネージャ側ジョブ実行制御部と、
    オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理するマネージャ側仮想時刻管理部と
    を有し、
    前記エージェントは、
    ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するエージェント側ジョブ実行制御部と、
    オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理するエージェント側仮想時刻管理部と、
    各バッチジョブ内でシステム時刻を取得する命令が発行されたかどうかを監視する時刻取得命令監視部と
    有し
    前記スケジュール管理部は、ジョブネットワークの運用試験を行う際には、仮想時刻を基準に起動時刻を決定し、
    前記時刻取得命令監視部は、ジョブネットワークの運用試験中に各バッチジョブ内でシステム時刻を取得する命令が発行された場合には、システム時刻の代わりに仮想時刻を各バッチジョブに与え、
    前記マネージャ側ジョブ実行制御部は、ジョブ起動命令が発行されたら、この命令を前記エージェント側ジョブ実行制御部に転送し、
    前記マネージャ側仮想時刻管理部と前記エージェント側仮想時刻管理部との間では、仮想時刻の同期が行われる
    ことを特徴とするジョブ管理システム。
  2. 複数のバッチジョブを含むジョブネットワークの運用試験を行うジョブ管理方法であって、
    ジョブネットワークのフロー制御を行うマネージャが、予めスケジューリングされていた各バッチジョブの起動時刻が来たら、ジョブ起動命令を発行するスケジュール管理段階と、
    前記マネージャが、ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するマネージャ側ジョブ実行制御段階
    前記マネージャが、オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理するマネージャ側仮想時刻管理段階と
    各バッチジョブを実行するエージェントが、ジョブ起動命令が発行されたら、予め定義されていた各バッチジョブを実行するエージェント側ジョブ実行制御段階と、
    前記エージェントが、オペレーティングシステムが管理するシステム時刻とは別の独立した仮想時刻を管理するエージェント側仮想時刻管理段階と、
    前記エージェントが、各バッチジョブ内でシステム時刻を取得する命令が発行されたかどうかを監視する時刻取得命令監視段階と
    を備え、
    前記スケジュール管理段階におい、ジョブネットワークの運用試験を行う際には、仮想時刻を基準に起動時刻を決定し、
    前記時刻取得命令監視段階においては、ジョブネットワークの運用試験中に各バッチジョブ内でシステム時刻を取得する命令が発行された場合には、システム時刻の代わりに仮想時刻を各バッチジョブに与え、
    前記マネージャ側ジョブ実行制御段階においては、ジョブ起動命令が発行されたら、この命令を前記エージェントに転送し、
    前記マネージャ側仮想時刻管理段階と前記エージェント側仮想時刻管理段階では、仮想時刻の同期が行われる
    ことを特徴とするジョブ管理方法。
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 JP2010224812A (ja) 2010-10-07
JP5387083B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5355172B2 (ja) * 2009-03-27 2013-11-27 株式会社野村総合研究所 仮想時刻の同期システム
JP6750682B2 (ja) * 2016-09-16 2020-09-02 日本電気株式会社 時刻管理システム、時刻管理装置、同期処理装置、計算機、時刻管理方法、及びプログラム
CN107769933B (zh) * 2017-09-26 2020-09-29 厦门集微科技有限公司 基于物联网定时任务的自动化测试方法及系统

Family Cites Families (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 ジョブスケジュールの運用テストシステム

Also Published As

Publication number Publication date
JP2010224812A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
US10248671B2 (en) Dynamic migration script management
US8938733B2 (en) Generating a customized set of tasks for migration of a deployed software solution
EP2008400B1 (en) Method, system and computer program for the centralized system management on endpoints of a distributed data processing system
CN106708740B (zh) 脚本测试方法及装置
CN108984284A (zh) 基于离线计算平台的dag任务调度方法及装置
US8301935B2 (en) Distributed batch runner
CN113569987A (zh) 模型训练方法和装置
JP6369170B2 (ja) 実行時間推定装置及び方法
CN111125444A (zh) 大数据任务调度管理方法、装置、设备及存储介质
US9921882B2 (en) Information processing system, deployment method, processing device, and deployment device
JP6686371B2 (ja) データステージング管理システム
CN109144701A (zh) 一种任务流管理方法、装置、设备及系统
WO2009089746A1 (fr) Procédé, dispositif et système de réalisation d'une tâche dans un environnement de grappes
Wahler et al. Non-disruptive large-scale component updates for real-time controllers
JP5387083B2 (ja) ジョブ管理システムおよび方法
CN110569113A (zh) 分布式任务的调度方法及系统、计算机可读存储介质
US20120072916A1 (en) Future system that can participate in systems management activities until an actual system is on-line
CN111538738B (zh) 服务升级方法、装置、电子设备及存储介质
CN111381932B (zh) 触发应用程序更改的方法、装置、电子设备及存储介质
CN114327906A (zh) 批量任务的处理方法及其装置、计算机可读存储介质
CN103092692A (zh) 适用于软件批处理作业的作业管理器实现方法及作业管理器
US20060184945A1 (en) Suspending scenario generation method, server device, and program therefor
EP1011045B1 (en) Object-oriented job scheduler
CN111858234A (zh) 一种任务执行方法、装置、设备、介质
JP5652718B2 (ja) バッチ処理制御装置、バッチ処理制御方法およびバッチ処理制御プログラム

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