JP5415183B2 - バッチジョブ処理装置、バッチジョブ処理システム - Google Patents

バッチジョブ処理装置、バッチジョブ処理システム Download PDF

Info

Publication number
JP5415183B2
JP5415183B2 JP2009191176A JP2009191176A JP5415183B2 JP 5415183 B2 JP5415183 B2 JP 5415183B2 JP 2009191176 A JP2009191176 A JP 2009191176A JP 2009191176 A JP2009191176 A JP 2009191176A JP 5415183 B2 JP5415183 B2 JP 5415183B2
Authority
JP
Japan
Prior art keywords
batch job
batch
job
load level
execution
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
JP2009191176A
Other languages
English (en)
Other versions
JP2011043968A (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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2009191176A priority Critical patent/JP5415183B2/ja
Publication of JP2011043968A publication Critical patent/JP2011043968A/ja
Application granted granted Critical
Publication of JP5415183B2 publication Critical patent/JP5415183B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、バッチジョブ処理装置、バッチジョブ処理システムに関するものである。
クライアント端末とサーバを有する情報システムにおいて、クライアント端末からサーバに対し、バッチ処理を実行するよう要求する場合がある。一般に、バッチ処理は実行が完了するまで時間がかかる。そのため、クライアント端末からバッチ処理の実行要求を受信した時点で即座にそのバッチ処理を実行し、応答結果をそのクライアント端末に即座に返信する、ということは困難である。
そこで、バッチ処理の実行要求があった時点では、その実行スケジュール等のみをサーバに登録しておき、後に改めてサーバ側でそのバッチ処理を実行する、という手法が採用される場合がある。このように、オンラインのバッチ処理実行要求とオフラインのバッチ実行処理を連携するシステムを、オンラインバッチシステムなどと呼ぶ。
オンラインバッチシステムは、クライアント端末、Webサーバ、データベース、バッチジョブスケジューリングサーバ、バッチ実行サーバなどの機器を用いて構成することができる。上記構成の下では、クライアント端末はバッチ処理の内容と実行スケジュールをWebサーバに送信し、Webサーバはその情報をデータベースに格納する。バッチジョブスケジューリングサーバは、データベースからバッチ処理の内容と実行スケジュールを取得し、その実行スケジュールにしたがってジョブ実行をスケジューリングする。バッチ実行サーバは、そのスケジュールにしたがってバッチ処理を実行する。
上記のようなオンラインバッチシステムによれば、オンラインのバッチ処理実行要求はデータベースに情報を格納するまでで完了し、バッチ処理そのものはオンライン処理とは非同期で実行される。そのため、オンラインのバッチ処理実行要求に対しては即座に応答を返信しつつ、オフライン処理も実行することができるので、オンライン処理とオフライン処理を連動させることができる。
本発明に関連する公知技術文献として、下記特許文献1、特許文献2、特許文献3があげられる。
特開平07−049837号公報 特開平07−244653号公報 特開2000−207482号公報
一般に、バッチ処理システムの負荷は、バッチジョブの内容やデータ量が推移することにともなって変化する。しかし、バッチ処理を要求する際に、その処理負荷は全く考慮されないか、もしくは経験則程度にしか考慮されない場合がある。
そのため、負荷の高いバッチ処理要求が連続して発生すると、ジョブの処理待ちキューにその高負荷バッチ処理が連続して登録されることになる。一般にジョブの実行が完了するまで他のジョブは実行待ち状態となるため、上記のような状況が発生すると、ジョブ実行モジュールが高負荷バッチ処理によって長時間専有されてしまう。例えばオンライン業務のピーク時間帯に上記のような状況が発生すると、単に業務に支障がでるのみならず、システムダウンを誘発する可能性もある。
本発明は、上記のような課題を解決するためになされたものであり、投入されるバッチ処理の内容によらず、異常な高負荷状態を回避することのできるバッチジョブ処理技術を提供することを目的とする。
本発明に係るバッチジョブ処理装置において、バッチジョブ実行部は、あらかじめ定められた負荷レベルのバッチジョブのみを実行し、そのバッチジョブの実行が終了するまで次のバッチジョブを実行しない。
本発明に係るバッチジョブ処理装置において、バッチジョブ実行部は自己が対象とする負荷レベルのバッチジョブを1つのみしか実行しない。これにより、高負荷のバッチジョブが連続して投入されても、その高負荷バッチジョブが同時に実行される個数を所定限度以内に抑えることができる。したがって、投入されるバッチ処理の内容によらず、異常な高負荷状態を回避することができる。
実施の形態1に係るバッチジョブ処理システム1000の構成図である。 スケジュールテーブル340の構成とデータ例を示す図である。 パラメータテーブル350の構成とデータ例を示す図である。 Webサーバ200の動作を説明するフローである。 バッチジョブ取得部310の動作フローである。 実施の形態2に係るバッチジョブ処理システム1000の構成図である。 ジョブキュー360の内部構成を示す模式図である。 実施の形態2におけるバッチジョブ取得部310の動作フローである。 実施の形態2におけるバッチジョブ実行部320の動作フローである。 実施の形態3に係るバッチジョブ処理システム1000の構成図である。 実施の形態3におけるバッチジョブ実行部320の動作フローのうち、図9のステップS905に該当する部分の詳細を示す図である。 実施の形態5に係るバッチジョブ処理システム1000の構成図である。
<実施の形態1>
図1は、本発明の実施の形態1に係るバッチジョブ処理システム1000の構成図である。バッチジョブ処理システム1000は、バッチジョブの実行要求を受け付けてそのバッチジョブを実行するオンラインバッチシステムであり、クライアント端末100、Webサーバ200、バッチジョブ処理装置300を有する。
クライアント端末100は、ユーザがバッチジョブ処理装置300に対するバッチジョブ処理要求を投入するために用いる操作端末である。ユーザは、例えばWebブラウザを用いてWebサーバ200にアクセスし、Webページ上でジョブの内容、負荷レベル、実行スケジュールなどを入力し、これらをWebサーバ200に送信する。
Webサーバ200は、バッチジョブ受付部210を備える。バッチジョブ受付部210は、クライアント端末100からバッチジョブ処理要求を受け取り、後述のデータベース330に格納する。バッチジョブ受付部210は、例えばCGI(Common Gateway Interface)やServletなどの技術を用いたWebアプリケーションとして構成することができる。
バッチジョブ処理装置300は、ユーザがクライアント端末100を用いて投入したバッチジョブ処理要求を実行する装置であり、バッチジョブ取得部310、バッチジョブ実行部320、データベース330を備える。
バッチジョブ取得部310は、データベース330が格納している後述のスケジュールテーブル340よりバッチジョブの実行スケジュールを取得し、その実行スケジュールに応じて、バッチジョブを実行するようバッチジョブ実行部320に指示する。
バッチジョブ実行部320は、3個のバッチジョブ実行部321、322および323の総合体である。以下、これらを総称するときは、バッチジョブ実行部320と呼ぶ。バッチジョブ実行部320は、バッチジョブ取得部310よりバッチジョブを実行するように指示を受け、データベース330が格納している後述のパラメータテーブル350よりバッチジョブの内容を取得し、そのバッチジョブを実行する。
データベース330は、後述の図2〜図3で説明するスケジュールテーブル340とパラメータテーブル350を格納する。
バッチジョブ取得部310、バッチジョブ実行部320は、これらの機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、CPU(Central Processing Unit)などの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。後者の場合は、各部をソフトウェアモジュールなどの形態で実装することができる。
データベース330は、各テーブルのデータを記録するデータファイルと、HDD(Hard Disk Drive)のような書き込み可能な記憶装置などを用いて構成することができる。
図2は、スケジュールテーブル340の構成とデータ例を示す図である。スケジュールテーブル340は、クライアント端末100から受け取ったバッチジョブ処理要求の実行スケジュールを保持するテーブルである。各レコードは、個々のバッチジョブの実行スケジュールを保持する。
スケジュールテーブル340は、「No」列341、「実行日時」列342、「種別」列343、「負荷レベル」列344、「バッチID」列345、「結果出力先」列346、「ステータス」列347、「有効」列348を有する。
「No」列341は、テーブル内の各レコードを識別するための通番である。
「実行日時」列342は、バッチジョブの実行予定日時を保持する。
「種別」列343は、バッチジョブの種類を表す。本列の値が「通常」である場合、当該バッチジョブはオフラインバッチとして予約実行される。本列の値が「即時」である場合、当該バッチジョブは即時実行される。その他、同じ時刻などで定期的に起動する「定期」などの種別を登録できるようにしてもよい。
「負荷レベル」列344は、当該バッチジョブの処理負荷の高低を表す。本列の数値が高いほど、処理負荷が高いことを意味する。本実施の形態1では、「負荷レベル=3」が最も処理負荷が高く、「負荷レベル=1」が最も処理負荷が低いものとする。「負荷レベル=0」の場合は、負荷レベルの値が未定義であることを意味する。
「バッチID」列345は、当該バッチジョブを識別するためのIDを保持する。
「結果出力先」列346は、当該バッチジョブの実行結果を出力するファイル名を保持する。実行結果を出力する必要がないバッチジョブの場合は、本列は空でもよい。
「ステータス」列347は、当該バッチジョブの実行結果を示す。本列は、例えば「成功」「失敗」「未実行」「実行中」「待機」などの値をとり得る。「負荷レベル=0」となっているレコードは、本列の値を「待機」とする。
「有効」列348は、当該バッチジョブが有効であるか否かを表す。本列の値が「有効」である場合は、当該バッチジョブは「実行日時」列342の値で指定される日時に実行される。いったん予約したジョブの実行を中止する場合、ユーザは本列の値を「無効」とするように、Webサーバ200を介して指示する。
図3は、パラメータテーブル350の構成とデータ例を示す図である。パラメータテーブル350は、バッチジョブの内容を指定する情報を保持するテーブルである。各レコードは、個々のバッチジョブの内容を保持する。図3では、指定した期間における商品の販売状況を集計するバッチジョブの内容を指定するための列構成を例示した。その他の処理内容を実行するバッチジョブについては、別の列構成を有するパラメータテーブル350を別途設けることもできる。
図3に例示したパラメータテーブル350は、「No」列351、「集計開始日」列352、「集計終了日」列353、「商品ID」列354、「部名」列355、「課名」列356を備える。
「No」列351は、スケジュールテーブル340内の「No」列341を参照する外部キーである。本列の値が「No」列341と一致するレコードは、互いに同じバッチジョブについての情報を保持する。
「集計開始日」列352は、販売状況を集計する期間の開始日を保持する。
「集計終了日」列353は、販売状況を集計する期間の終了日を保持する。
「商品ID」列354は、販売状況を集計する対象商品を識別するIDを保持する。
「部名」列355と「課名」列356は、対象商品を取り扱う部門名を保持する。
以上、バッチジョブ処理システム1000の各構成について説明した。次に、バッチジョブ実行部320がシステム負荷を抑える手法について説明する。
個々のバッチジョブ実行部321〜323は、実行するバッチジョブの負荷レベルがあらかじめ規定されている。ここでは、バッチジョブ実行部321の担当する負荷レベルは1、バッチジョブ実行部322は2、バッチジョブ実行部323は3とする。バッチジョブ実行部321は負荷レベル1のバッチジョブのみを実行し、バッチジョブ実行部322は負荷レベル1〜2のバッチジョブのみを実行し、バッチジョブ実行部323は負荷レベル1〜3のバッチジョブ全てを実行するように設定されているものとする。
例えば、同じユーザが負荷レベル3のバッチジョブをバッチジョブ処理システム1000に短時間に連続して投入した状況を想定する。バッチジョブ実行部321〜323を上記のように構成した場合、負荷レベル3のバッチジョブはバッチジョブ実行部323が同時に1つのみ実行することしかできないため、負荷レベル3のバッチジョブが複数同時に投入されたとしても、これら負荷レベル3のバッチジョブによってバッチジョブ処理システム1000の演算リソースが専有されてしまう心配はない。
すなわち、バッチジョブ実行部323は負荷レベル3のバッチジョブを1つずつ順番に実行し、その他のバッチジョブ実行部321と322は負荷レベル3のバッチジョブを実行しない。そのため、負荷レベル3のバッチジョブの個数は常に1個以下となり、システム負荷を安定化させることができるのである。
上記のような、同時実行するバッチジョブの個数とその負荷レベルを限定する手法は、オンラインバッチシステムのようにユーザが任意の負荷レベルのバッチジョブをいつでも投入することのできるシステムにおいて特に有効である。オフラインバッチシステムは、あらかじめ計画されているバッチ処理を予定時刻に実行するため、システムの演算リソースを必要十分なだけ準備しておくことができる。これに対し、オンラインバッチシステムでは、どのようなバッチジョブが投入されるか予測することが難しいため、オフラインバッチシステムとは異なる負荷レベル安定化手法が望まれるのである。もっとも、オフラインバッチシステムにおいても、本発明の手法が有用であることはいうまでもない。
以上、バッチジョブ実行部320がシステム負荷を抑える手法について説明した。以下では、バッチジョブ処理システム1000の動作について説明する。
図4は、Webサーバ200の動作を説明するフローである。以下、図4の各ステップについて説明する。
(図4:ステップS400)
ユーザは、クライアント端末100を用いて、Webサーバ200に対し、バッチジョブ処理要求を登録するための画面を送信するよう要求する。クライアント端末100は、その要求をWebサーバ200に送信する。
(図4:ステップS401)
Webサーバ200のバッチジョブ受付部210は、クライアント端末100から、バッチジョブ処理要求登録画面を送信すべき旨の要求を受信する。バッチジョブ受付部210は、クライアント端末100に対し、バッチジョブ処理要求登録画面を送信する。
(図4:ステップS402)
ユーザは、クライアント端末100が表示するバッチ処理要求登録画面上で、バッチジョブの内容、負荷レベル、実行スケジュールなどのバッチジョブ処理要求を入力する。クライアント端末100は、その入力内容をWebサーバ200に送信する。Webサーバ200のバッチジョブ受付部210は、バッチジョブ処理要求を受信する。
(図4:ステップS403)
バッチジョブ受付部210は、受信したバッチジョブ処理要求に含まれるバッチジョブの負荷レベルと実行スケジュールを、スケジュールテーブル340に登録する。また、バッチジョブの内容を、パラメータテーブル350に登録する。
図5は、バッチジョブ取得部310の動作フローである。以下、図5の各ステップについて説明する。
(図5:ステップS501)
バッチジョブ取得部310は、スケジュールテーブル340が保持している全てのレコードを取得する。
(図5:ステップS502)
バッチジョブ取得部310は、以下のステップS503〜S504を、ステップS501で取得したレコード数だけ繰り返す。
(図5:ステップS503)
バッチジョブ取得部310は、ステップS501で取得したレコードのうち1つについて、「有効」列348の値が「有効」であり、かつ「ステータス」列347の値が「未実行」または「待機」であり、かつ「実行日時」列342の値が現在時刻よりも前であるか否かを確認する。当該レコードがこれら3条件を全て満たす場合はステップS504へ進み、いずれか1条件以上を満たさない場合はループを次のレコードに進める。
(図5:ステップS504)
バッチジョブ取得部310は、バッチジョブ実行部320のうち「負荷レベル」列344の値に対応するものに、当該バッチジョブを実行するよう指示する。バッチジョブ実行部320(321、322、323のうちいずれか)は、受け取ったバッチジョブの負荷レベルを確認し、自己が実行することのできる負荷レベルであれば、そのバッチジョブを実行する。先に実行しているバッチジョブがあれば、そのバッチジョブの実行が終了した後に、受け取ったバッチジョブを実行する。
(図5:ステップS505)
バッチジョブ取得部310は、15秒スリープ(何もせずに待機)する。
(図5:ステップS506)
バッチジョブ取得部310の処理を終了する場合は本動作フローを終了し、処理を継続する場合はステップS501に戻って同様の処理を繰り返す。
以上、バッチジョブ処理システム1000の動作について説明した。なお図5では、ステップS501で全てのレコードを取得し、ステップS503で条件チェックを行なっているが、ステップS501の時点で、条件を満たすレコードのみを取得するようにしてもよい。
以上のように、本実施の形態1によれば、バッチジョブ実行部320は、あらかじめ設定されている負荷レベルのバッチジョブを1つのみ実行する。先に実行しているバッチジョブがあれば、そのバッチジョブの実行が終了した後に、受け取ったバッチジョブを実行する。これにより、例えばユーザが負荷レベルの高いバッチジョブを短時間に連続して投入したような場合でも、バッチジョブ処理装置300がその高負荷レベルのバッチジョブによって専有されることを回避できる。
また、本実施の形態1によれば、ユーザがバッチジョブを投入する時点でその負荷レベルを正確に把握しておらず、または故意に不正確な負荷レベルを指定してバッチジョブを投入したような場合でも、バッチジョブ実行部320の作用により、バッチジョブ処理装置300が同時に実行するバッチジョブの負荷レベルをある範囲内に抑えることができる。これにより、負荷レベルの予測可否および投入されるバッチジョブの負荷レベルの高低を問わず、バッチジョブ処理システム1000を安定的に稼動させることができる。
また、本実施の形態1において、バッチジョブ処理装置300は、バッチジョブの実行スケジュールを格納するデータベース330を備える。バッチジョブ取得部310は、データベース330からその実行スケジュールを取得し、バッチジョブ実行部320にバッチジョブを引き渡す。これにより、データベース330は、オンラインによるバッチジョブ処理要求とオフラインによるバッチジョブ実行との橋渡しを行なうことになるので、オンライン処理とオフライン処理を連携することができる。同様の構成は完全なオフラインバッチシステムでも採用することができるが、オンラインバッチシステムにおいて同構成を採用すると、特に有用である。
<実施の形態2>
図6は、本発明の実施の形態2に係るバッチジョブ処理システム1000の構成図である。本実施の形態2では、バッチジョブ取得部310とバッチジョブ実行部320の間にジョブキュー360を導入した。その他の構成は実施の形態1と概ね同様であるため、以下では差異点を中心に説明する。
ジョブキュー360は、バッチジョブ処理装置300が備えるメモリ装置(図示せず)などの記憶装置内における記憶領域を使用する。ジョブキュー360は、バッチジョブ取得部310よりバッチジョブを順番に受け取り、受け取った順番に保持する。バッチジョブ実行部320からバッチジョブを引き渡すように指示されると、そのバッチジョブを引き渡し、ジョブキュー360内から当該バッチジョブを削除する。
ジョブキュー360は、その機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、CPUなどの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。後者の場合、例えばメッセージキューイングシステムなどのソフトウェアモジュールを用いてジョブキュー360を構成することができる。
図7は、ジョブキュー360の内部構成を示す模式図である。ジョブキュー360内には、個々のバッチジョブの内容や実行スケジュールなどを記述したメッセージ(図7における361〜363)が格納される。各メッセージ361〜363の記述形式として、例えばXML(eXtensible Markup Language)などの汎用的な記述形式を用いると、処理の都合上便宜である。
図8は、本実施の形態2におけるバッチジョブ取得部310の動作フローである。以下図8の各ステップについて説明する。
(図8:ステップS801〜S803)
これらのステップは、図5のステップS501〜S503と同様である。
(図8:ステップS804)
バッチジョブ取得部310は、ステップS803の条件を満たすバッチジョブを、ジョブキュー360に投入する。ジョブキュー360は、図7で説明したような形式で記述されるメッセージとして、そのバッチジョブの内容を格納する。
(図8:ステップS805〜S806)
これらのステップは、図5のステップS505〜S506と同様である。
図9は、本実施の形態2におけるバッチジョブ実行部320の動作フローである。以下図9の各ステップについて説明する。なお、図9に示す動作フローは、個々のバッチジョブ実行部321〜323について共通である。各バッチジョブ実行部は、それぞれ並行して同動作フローを実行する。
(図9:ステップS901)
バッチジョブ実行部320は、ジョブキュー360が格納しているバッチジョブ(バッチジョブの内容を記述したメッセージ)を取得する。このとき、他のバッチジョブ実行部320が同時にジョブキュー360にアクセスしないように、ジョブキュー360をロックするなどしてもよい。
(図9:ステップS902)
バッチジョブ実行部320は、ステップS901で取得したバッチジョブの数だけ、ステップS903〜S906を繰り返す。
(図9:ステップS903)
バッチジョブ実行部320は、ステップS901で取得したバッチジョブのうち1つについて、負荷レベルが自己の担当する負荷レベル以下であるか否かを確認する。自己が担当する負荷レベル以下であればステップS904へ進み、それ以外であればループを次のバッチジョブに進める。
(図9:ステップS904)
バッチジョブ実行部320は、ステップS903の条件を満たすバッチジョブを、ジョブキュー360から1つ取り出す。取り出したバッチジョブは、ジョブキュー360から削除する。
(図9:ステップS905)
バッチジョブ実行部320は、ステップS904でジョブキュー360から取り出したバッチジョブを実行する。また、スケジュールテーブル340が保持している当該バッチジョブのレコードの「ステータス」列347を、「成功」「失敗」などの値に更新する。
(図9:ステップS906)
バッチジョブ実行部320は、15秒スリープ(何もせずに待機)する。
(図9:ステップS907)
バッチジョブ実行部320の処理を終了する場合は本動作フローを終了し、処理を継続する場合はステップS901に戻って同様の処理を繰り返す。
以上、本実施の形態2におけるバッチジョブ処理システム1000の動作について説明した。
以上のように、本実施の形態2によれば、バッチジョブ取得部310とバッチジョブ実行部320の間にジョブキュー360を設け、バッチジョブ実行部320はジョブキュー360からバッチジョブを取得することとした。これにより、バッチジョブ実行部320は先に実行しているバッチジョブが完了してからジョブキュー360にアクセスすればよいので、バッチジョブ実行部320自身がジョブ実行待ちリストを保持する必要がなくなる。したがって、バッチジョブ実行部320はバッチジョブの実行のみに専念することができる。
また、本実施の形態2によれば、バッチジョブ取得部310とバッチジョブ実行部320をジョブキュー360によって緩く結合したので、バッチジョブ取得部310またはバッチジョブ実行部320を新しいモジュールに入れ替えたりすることが容易になる。
また、本実施の形態2において、ジョブキュー360は、バッチジョブの内容などを記述するメッセージを格納するので、ジョブキュー360の外部からバッチジョブにアクセスすることが容易になる。例えば、図7で例示したようなXML形式でバッチジョブの内容などを記述すれば、コンピュータ等の演算装置にとって取り扱い易い形式でバッチジョブを処理することができるので、処理の都合上便宜である。
また、本実施の形態2において、ジョブキュー360は、いったん格納したバッチジョブを、実行のため取り出す以外に削除することができないようにしてもよい。同様に順番の入れ替えなども不可としてもよい。この場合、ジョブキュー360にいったんバッチジョブを格納すれば、そのバッチジョブは必ずバッチジョブ実行部320に引き渡されることになるので、データベース330内に未実効のバッチジョブがいつまでも格納されたままになるような状況ができる限り発生しないよう抑制する効果がある。
<実施の形態3>
図10は、本発明の実施の形態3に係るバッチジョブ処理システム1000の構成図である。本実施の形態3では、バッチジョブ実行部320と連動して動作する負荷レベル予測部370を新たに導入した。その他の構成は実施の形態1〜2いずれかと概ね同様であるため、以下では差異点を中心に説明する。なお、図10では実施の形態2の構成に負荷レベル予測部370を追加した構成を例示した。
負荷レベル予測部370は、バッチジョブの負荷レベルを、例えば特許文献2に記載されている技術などの適当な手法を用いて予測する。負荷レベル予測部370は、その機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、CPUなどの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
図11は、本実施の形態3におけるバッチジョブ実行部320の動作フローのうち、図9のステップS905に該当する部分の詳細を示す図である。以下、図11の各ステップについて説明する。
(図11:ステップS1101)
バッチジョブ実行部320は、ステップS904でジョブキュー360から取り出したバッチジョブの負荷レベルを確認する。負荷レベルが0(未定義)であればステップS1104へ進み、それ以外であればステップS1102へ進む。
(図11:ステップS1102)
バッチジョブ実行部320は、ステップS904でジョブキュー360から取り出したバッチジョブを実行する。
(図11:ステップS1103)
バッチジョブ実行部320は、スケジュールテーブル340が保持している当該バッチジョブのレコードの「ステータス」列347を、「成功」「失敗」などの値に更新する。
(図11:ステップS1104)
バッチジョブ実行部320は、ステップS904でジョブキュー360から取り出したバッチジョブの負荷レベルを予測するよう、負荷レベル予測部370に指示する。負荷レベル予測部370は、そのバッチジョブの負荷レベルを予測し、バッチジョブ実行部320に予測結果を通知する。
(図11:ステップS1105)
バッチジョブ実行部320は、スケジュールテーブル340が保持している当該バッチジョブのレコードの「負荷レベル」列344を、負荷レベル予測部370から受け取った予測結果の値に更新する。
以上、本実施の形態3に係るバッチジョブ処理システム1000の動作について説明した。なお、実施の形態1で説明した構成に加えて負荷レベル予測部370を設ける場合、図5のステップS504の後でバッチジョブ実行部320が図11と同様の処理を実行することになる。
以上のように、本実施の形態3によれば、ユーザがクライアント端末100を用いてバッチジョブを投入する段階でそのバッチジョブの負荷レベルが不明である場合でも、負荷レベル予測部370がユーザに代わって負荷レベルを予測する。そのため、ユーザはバッチジョブ処理要求を送信するときに、そのバッチジョブの負荷レベルを必ずしも指定する必要はない。これにより、負荷レベルが不明なバッチジョブに対してユーザが不正確な負荷レベルを指定し、バッチジョブ処理装置300における負荷配分が乱れてしまうような状況を低減することができる。
<実施の形態4>
以上の実施の形態1〜3において、スケジュールテーブル340とパラメータテーブル350が保持している各レコードは、所定期間(例えば30日)が経過した後に削除するようにしてもよい。このとき、「ステータス」列347の値が「成功」となっているバッチジョブのみ削除してもよいし、上記所定期間が経過したバッチジョブは無条件に削除するようにしてもよい。
<実施の形態5>
図12は、本発明の実施の形態5に係るバッチジョブ処理システム1000の構成図である。本実施の形態5では、バッチジョブ処理装置300とは別にバッチジョブ実行サーバ400を新たに設け、バッチジョブを実行する処理主体をバッチジョブ実行部320から切り出した。その他の構成は実施の形態1〜4いずれかと同様であるため、以下では差異点を中心に説明する。
バッチジョブ実行サーバ400は、バッチジョブ処理部410を備える。バッチジョブ処理部410は、バッチジョブ実行部320が実行するバッチジョブの処理本体を受け持つ機能部である。本実施の形態5において、バッチジョブ実行部320は、実体的にはバッチジョブ処理部410を起動する起動部としての役割を果たすことになる。
バッチジョブ処理部410は、その機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、CPUなどの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
なお、負荷レベル予測部370など、バッチジョブ処理装置300が備える機能部の一部をバッチジョブ実行サーバ400に配置することもできる。
以上のように、本実施の形態5によれば、バッチジョブ処理装置300が備える機能の一部をバッチジョブ実行サーバ400に切り出したので、バッチジョブ処理装置300の処理負担を軽減することができる。
<実施の形態6>
以上の実施の形態1〜5において、3つのバッチジョブ実行部321〜323を備える構成を説明した。また、各バッチジョブ実行部はそれぞれ負荷レベル1、1〜2、1〜3のバッチジョブを実行するものとした。バッチジョブ実行部320の構成はこれに限られるものではなく、実行するバッチジョブの性質や数などに応じて構成を適宜変更することができる。
例えば、負荷レベルの高いバッチジョブを多く実行するシステムにおいて本発明の手法を導入する場合は、バッチジョブ実行部323の数を多めに設けてもよい。また、バッチジョブ実行部320全体の個数も、4個以上でもよいし、2個以下でもよい。
バッチジョブ実行部320は、単一の負荷レベルのみ実行対象としてもよい。例えば、各バッチジョブ実行部はそれぞれ負荷レベル1、2、3のバッチジョブを実行する、などである。
バッチジョブ実行部320の個数や対象負荷レベルを調整することにより、バッチジョブ処理システム1000の処理性能や並列度などを、対象業務の仕様などに応じて調整することができる。
100:クライアント端末、200:Webサーバ、210:バッチジョブ受付部、300:バッチジョブ処理装置、310:バッチジョブ取得部、320〜323:バッチジョブ実行部、330:データベース、340:スケジュールテーブル、350:パラメータテーブル、360:ジョブキュー、370:負荷レベル予測部、400:バッチジョブ実行サーバ、410:バッチジョブ処理部、1000:バッチジョブ処理システム。

Claims (6)

  1. バッチジョブとその実行スケジュールを取得するバッチジョブ取得部と、
    前記バッチジョブの負荷レベルを取得しそのバッチジョブを実行するバッチジョブ実行部と、
    前記バッチジョブの実行スケジュールを格納する記憶部と、
    前記バッチジョブ取得部が取得した前記バッチジョブを一時的に保持し出力要求にしたがって出力するジョブキューと、
    を備え、
    前記バッチジョブ取得部は、前記記憶部より前記実行スケジュールを取得し、前記記憶部より取得したバッチジョブを前記ジョブキューに格納し、
    前記バッチジョブ実行部は、
    前記ジョブキューより前記バッチジョブを取得して実行し、
    前記バッチジョブ取得部が取得した前記実行スケジュールにしたがって前記バッチジョブを実行し、
    所定の負荷レベルの前記バッチジョブのみを実行し、そのバッチジョブの実行が終了するまで次のバッチジョブを実行せず、
    前記バッチジョブ実行部は、前記ジョブキューから取得した前記バッチジョブについてその負荷レベルが前記バッチジョブ実行部自身の担当する負荷レベル以下であるか否かを確認し、自身の担当する負荷レベル以下である場合は前記ジョブキューからそのバッチジョブを取り出すとともに前記ジョブキューから削除した上でそのバッチジョブを実行する
    ことを特徴とするバッチジョブ処理装置。
  2. 前記ジョブキューに格納された前記バッチジョブは、前記バッチジョブ実行部が実行する場合を除き前記ジョブキューから削除不可とする
    ことを特徴とする請求項記載のバッチジョブ処理装置。
  3. 前記バッチジョブの負荷レベルを予測する負荷レベル予測部を備え、
    前記記憶部は、
    前記負荷レベルが特定されていない前記バッチジョブの実行スケジュールを格納し、
    前記負荷レベル予測部は、
    前記負荷レベルが特定されていない前記バッチジョブを前記バッチジョブ実行部が実行する前にそのバッチジョブの負荷レベルを予測する
    ことを特徴とする請求項1または2記載のバッチジョブ処理装置。
  4. 前記バッチジョブの負荷レベルを予測する負荷レベル予測部を備え、
    前記記憶部は、
    前記負荷レベルが特定されていない前記バッチジョブの実行スケジュールを格納し、
    前記バッチジョブ取得部は、
    前記負荷レベルが特定されていない前記バッチジョブを前記ジョブキューに格納し、
    前記負荷レベル予測部は、
    前記ジョブキューが格納している前記バッチジョブのうち前記負荷レベルが特定されていないものについて、前記バッチジョブ実行部が実行する前にそのバッチジョブの負荷レ
    ベルを予測する
    ことを特徴とする請求項または請求項記載のバッチジョブ処理装置。
  5. 請求項1から請求項のいずれか1項に記載のバッチジョブ処理装置と、
    前記バッチジョブの内容および実行スケジュールの指示を受信して前記バッチジョブ処理装置に出力する受信サーバと、
    を有することを特徴とするバッチジョブ処理システム。
  6. 請求項から請求項のいずれか1項に記載のバッチジョブ処理装置と、
    前記バッチジョブの内容および実行スケジュールの指示を受信する受信サーバと、
    を有し、
    前記受信サーバは、
    前記バッチジョブの内容および実行スケジュールを前記記憶部に格納し、
    前記バッチジョブ実行部は、
    前記実行スケジュールにしたがって前記バッチジョブを実行する
    ことを特徴とするバッチジョブ処理システム。
JP2009191176A 2009-08-20 2009-08-20 バッチジョブ処理装置、バッチジョブ処理システム Expired - Fee Related JP5415183B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009191176A JP5415183B2 (ja) 2009-08-20 2009-08-20 バッチジョブ処理装置、バッチジョブ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009191176A JP5415183B2 (ja) 2009-08-20 2009-08-20 バッチジョブ処理装置、バッチジョブ処理システム

Publications (2)

Publication Number Publication Date
JP2011043968A JP2011043968A (ja) 2011-03-03
JP5415183B2 true JP5415183B2 (ja) 2014-02-12

Family

ID=43831361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009191176A Expired - Fee Related JP5415183B2 (ja) 2009-08-20 2009-08-20 バッチジョブ処理装置、バッチジョブ処理システム

Country Status (1)

Country Link
JP (1) JP5415183B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767098B2 (en) 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
SG11201500836QA (en) * 2012-08-08 2015-03-30 Amazon Tech Inc Archival data storage system
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US9652487B1 (en) 2012-08-08 2017-05-16 Amazon Technologies, Inc. Programmable checksum calculations on data storage devices
US10558581B1 (en) 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
JP6191301B2 (ja) 2013-07-22 2017-09-06 富士通株式会社 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US12086450B1 (en) 2018-09-26 2024-09-10 Amazon Technologies, Inc. Synchronous get copy for asynchronous storage

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62184543A (ja) * 1986-02-10 1987-08-12 Nec Corp ジヨブスケジユ−ル方式
JPH07244653A (ja) * 1994-03-03 1995-09-19 Hitachi Ltd ジョブの動作予測方式
JPH08272626A (ja) * 1995-03-30 1996-10-18 Hitachi Software Eng Co Ltd バッチジョブ処理方法

Also Published As

Publication number Publication date
JP2011043968A (ja) 2011-03-03

Similar Documents

Publication Publication Date Title
JP5415183B2 (ja) バッチジョブ処理装置、バッチジョブ処理システム
JP4029711B2 (ja) 画像形成装置
US8831967B2 (en) Workflow management using a to-do list
US20080127183A1 (en) Document Workflows and Routing Services Using Modular Filters
TW200813867A (en) Customer-configurable workflow system
US9497292B2 (en) Facilitating the operation of a client/server application while a client is offline or online
JP2016015007A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6303571B2 (ja) データ処理装置、データ処理システム、データ処理方法、及びプログラム
JP2006293547A (ja) 業務プロセストラッキングプログラム、該プログラムを記録した記録媒体、および業務プロセストラッキング装置
US20160182673A1 (en) Dynamic cache injector
JP2006209309A (ja) 印刷システム
JP2006301907A (ja) 電源制御装置及び電源制御方法並びにプログラム
JP6890396B2 (ja) 情報処理システム及び情報処理方法、文書処理システム、プログラム
JP5716354B2 (ja) 情報処理装置及びプログラム
US20150135192A1 (en) Information processing device, method for processing information, and non-transitory computer-readable recording medium having stored therein information processing program
JP2001306655A (ja) 印刷システム、印刷方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP7392439B2 (ja) 情報処理装置、印刷システム及び情報処理プログラム
US7973955B2 (en) Specification and management of consolidated ticket packages in workflows
Crawford et al. OpenCL command-buffer extension: Design and implementation
JP2011192149A (ja) バッチ処理の帳票出力状況の管理装置
JP2003323273A (ja) 印刷サーバとプログラムと記録媒体
JP2000259591A (ja) 分散処理ジョブ実行方法およびネットワークシステム
JP2020008936A (ja) 情報処理装置、情報処理方法、及びプログラム
JPH09198347A (ja) オンライントランザクション処理サーバ計算機
US11762691B2 (en) Information processing system of task scheduling, method of task scheduling, and non-transitory computer-readable storage medium for storing program of task scheduling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130802

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131113

LAPS Cancellation because of no payment of annual fees