JP6260130B2 - ジョブ遅延検知方法、情報処理装置、およびプログラム - Google Patents

ジョブ遅延検知方法、情報処理装置、およびプログラム Download PDF

Info

Publication number
JP6260130B2
JP6260130B2 JP2013154768A JP2013154768A JP6260130B2 JP 6260130 B2 JP6260130 B2 JP 6260130B2 JP 2013154768 A JP2013154768 A JP 2013154768A JP 2013154768 A JP2013154768 A JP 2013154768A JP 6260130 B2 JP6260130 B2 JP 6260130B2
Authority
JP
Japan
Prior art keywords
job
execution
file
extraction
data
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
JP2013154768A
Other languages
English (en)
Other versions
JP2015026197A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013154768A priority Critical patent/JP6260130B2/ja
Priority to US14/331,804 priority patent/US9715409B2/en
Publication of JP2015026197A publication Critical patent/JP2015026197A/ja
Application granted granted Critical
Publication of JP6260130B2 publication Critical patent/JP6260130B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、複数のジョブを実行する場合のジョブ遅延検知方法、情報処理装置、およびプログラムに関する。
コンピュータシステムで実行する処理の中には、実行可能な期間が制限された処理がある。例えばバッチ業務について、前日のオンラインの業務終了後から、翌日のオンライン業務開始(デッドラインと呼ぶ)までが、実行可能な期間として指定されることがある。バッチ業務は、例えば複数のジョブを所定の順番で実行することで達成される。そこで、コンピュータシステムでは、指定された期間内に、バッチ業務に含まれるすべてのジョブが実行できるように、各ジョブの実行開始タイミングがスケジューリングされる。
ただし、ジョブの実行時間が予定通りとならないこともある。そこで多くの運用現場では、オペレータがバッチ業務の遅延監視をしている。
例えば以下の手順で遅延監視が行われる。
1.システムの管理者が、過去の実行履歴データ(稼働実績)を元に、クリティカルパスを導出し、クリティカルパス上のジョブの実行状況を監視する。クリティカルパスとは、ジョブの実行の前後関係に関する制約を有するジョブ群(ジョブネット)のうち、実行の終了時刻が最後となるジョブが実行させるまでの、ジョブの実行順を示す情報である。クリティカルパスに含まれるジョブの実行が遅延すると、ジョブネット全体の処理完了時刻が遅れることとなる。そこで管理者は、クリティカルパス上の任意のジョブを監視対象ジョブとして選定する。例えば、長時間走行するジョブや、実行時間が大きく変動する可能性が高いジョブが、管理対象ジョブとして選定される。
2.管理者は、監視対象ジョブを、遅延判断基準となる終了予測時間などと共に、監視対象としてシステムに定義する。
3.システムでは、終了予測時間になっても監視対象ジョブの実行が終了しない場合にアラームを出力する。
なおバッチ処理で扱われるデータ量が変動した場合や、バッチ処理システムにおいて障害が発生した場合でも、バッチジョブを所定の時刻までに完了させる技術も考えられている。
特開2012−128770号公報
しかし、終了予定時刻になるのを待って、その時点で管理対象ジョブが終了しない場合に遅延を検知していたのでは、検知時期が遅すぎ、遅延に対する対処が困難となる場合がある。例えば、早い段階でジョブの遅延の発生を予見できれば、重要度の低いジョブの実行を翌日に回すことで、バッチ業務の終了時刻を守ることが可能な場合がある。他方、オンライン業務の開始間近になって、ジョブの遅延を検知しても、未処理のジョブの中に翌日に回せるジョブが残っていない可能性がある。このような場合、実行可能期間内にバッチ業務を完了できなくなってしまう。
1つの側面では、本件は、ジョブの実行の遅延の発生を早期に予測することを目的とする。
1つの案では、コンピュータに、第1のジョブの実行中に、第1のジョブの実行により出力されたデータ量を監視し、第1のジョブの実行により出力されたデータ量に基づいて、第1のジョブの実行により出力されたデータを用いた処理を行う第2のジョブの実行が、予め設定された期限までに終了できるかどうかを予測する、処理を実行させるプログラムが提供される。
1態様によれば、ジョブの実行の遅延の発生を早期に予測できる。
第1の実施の形態に係る情報処理装置の機能構成例を示す図である。 第2の実施の形態のシステム構成の一例を示す図である。 バッチ業務の一例を示す図である。 本運用時の監視処理を示す図である。 サーバのハードウェアの一構成例を示す図である。 テスト環境で動作するサーバの機能を示すブロック図である。 ジョブ定義情報の一例を示す図である。 稼働実績管理表の一例を示す図である。 相関関係表の一例を示す図である。 実行時間情報リストの一例を示す図である。 テスト運用されるサーバにおける処理手順の一例を示すフローチャートである。 抽出ジョブの仕様/特性の一例を示す図である。 抽出ジョブ特定処理の概要を示す図である。 テスト運用の処理手順の一例を示すフローチャートである。 抽出ジョブの処理手順の一例を示すフローチャートである。 読み込み解析処理の手順の一例を示すフローチャートである。 読み込み処理管理テーブルの一例を示す図である。 書き込み解析処理の手順の一例を示すフローチャートである。 ファイルオフセット設定解析処理の手順の一例を示すフローチャートである。 ファイルクローズ設定解析処理の手順の一例を示すフローチャートである。 相関関係式導出処理の手順の一例を示すフローチャートである。 更新された稼働実績管理表の一例を示す図である。 相関関係式が設定されたジョブ定義情報の一例を示す図である。 加工ジョブ探索処理の手順の一例を示すフローチャートである。 管理DBの情報転送の一例を示す図である。 運用環境で動作するサーバの機能を示す図である。 本運用の処理手順の一例を示すフローチャートである。 監視対象ジョブ設定処理の手順の一例を示すフローチャートである。 ソートされた実行時間情報リストの一例を示す図である。 監視対象候補一覧画面の一例を示す図である。 終了予定時刻を入力した監視対象候補一覧画面の例を示す図である。 監視対象ジョブリストの一例を示す図である。 遅延予測処理の手順の一例を示すフローチャートである。 遅延予測処理中の監視対象ジョブリストの一例を示す図である。 アラーム出力時の監視対象ジョブリストの一例を示す図である。 アラーム表示画面の一例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の機能構成例を示す図である。第1の実施の形態に係る情報処理装置10は、特定手段11、期限設定手段12、監視手段13、および予測手段14を有している。
特定手段11は、実行予定の複数のジョブ1a,1b,・・・の中から、入力ファイルからの抽出条件に合致するレコードの抽出、および抽出したレコードの出力を行うジョブ(以下、抽出ジョブと呼ぶ)を、第1のジョブとして特定する。例えば特定手段11は、複数のジョブ1a,1b,・・・のテスト運用時の動作に基づいて、第1のジョブを特定する。
テスト運用では、予めジョブネットなどで示される順番でジョブが実行される。例えば最初に入力ファイル2aから複数のレコードを読み込んで、抽出条件に合致するレコードを出力ファイル3aに書き出すジョブ1aが実行される。次に出力ファイル3aに書き出されたレコードを読み出し、各レコードを加工するジョブ1bが実行される。特定手段11は、ジョブ1aとジョブ1bとで実行された処理を解析し、ジョブ1aがレコードの抽出処理を行う抽出ジョブであると認識する。そして特定手段11は、例えば第1のジョブの識別情報「ジョブ#1」を期限設定手段12と監視手段13に通知する。
期限設定手段12は、第1のジョブの実行により出力されたデータを用いた処理を行う第2のジョブの実行終了の期限を設定する。図1の例では、ジョブ1aが第1のジョブであり、ジョブ1bが第2のジョブとなる。
例えば期限設定手段12は、第2のジョブをモニタに表示して、ユーザからの第2のジョブの期限の入力を受け付ける。また期限設定手段12は、テスト運用の実績により、第2のジョブの平均実行時間を求め、その平均実行時間に基づいて期限を設定してもよい。第2のジョブの実行開始から、例えば平均実行時間に1以上の係数を乗算して得られる時間経過後の時間を、期限とすることができる。期限設定手段12は、設定した期限を、予測手段14に通知する。
監視手段13は、第1のジョブの実行中に、第1のジョブの実行により出力されたデータ量(出力データ量)を監視する。例えば監視手段13は、複数のジョブ1a,1b,・・・の本運用での実行が開始されると、第1のジョブとして特定されたジョブ1aの実行による出力データ量を定期的に計測する。
図1の例では、第1のジョブとして特定されたジョブ1aが実行されると、入力ファイル2b内のレコードが読み出され、抽出条件に合致するレコードが出力ファイル3bに書き出される。そこで監視手段13は、例えば出力ファイル3bのサイズを、ジョブ1aの出力データ量とする。監視手段13は、ジョブ1aの出力データ量を、予測手段14に通知する。
予測手段14は、第1のジョブの実行により出力されたデータ量に基づいて、第1のジョブの実行により出力されたデータを用いた処理を行う第2のジョブの実行が、予め設定された期限までに終了できるかどうかを予測する。例えば予測手段14は、第1のジョブの実行により出力されたデータ量と、期限までに第2のジョブの実行により処理を施すことが可能なデータ量とを比較することで、第2のジョブの実行が、予め設定された期限までに終了できるかどうかを予測する。期限までに処理可能なデータ量は、例えば第2のジョブの開示時刻と期限との差分時間に、定数「α」(αは正の実数)を乗算して算出できる。αは、単位時間当たりに処理可能なデータ量である。αの値は、例えばテスト運用時に計測しておくことができる。第2の処理の開始時刻は、例えば現在の時刻と、第1のジョブの残りの処理時間から予測できる。第1のジョブの残りの処理時間は、例えば入力ファイル2b内の未処理のレコード数を、単位時間値に処理可能なレコード数で除算することで計算できる。なお第1のジョブの処理時間が第2のジョブの処理時間に比べ極めて短いことが分かっている場合、現在の時刻を、第2のジョブの開始時刻としてもよい。
また予測手段14は、第1のジョブの実行により出力されたデータ量に基づいて、第2のジョブの実行時間を予測することもできる。この場合、予測手段14は、予測された実行時間に基づいて、予め設定された期限までに終了できるかどうかを予測する。
さらに、予測手段14は、例えば第1のジョブの実行により出力されたデータ量が、期限までに第2のジョブの実行により処理を施すことが可能なデータ量を超えた時点で、アラーム15を出力する。アラーム15は、モニタに表示される。
このような情報処理装置10によれば、複数のジョブ1a,1bのテスト運用時に、特定手段11により第1のジョブが特定される。次に期限設定手段12により、第1のジョブの出力ファイルを使用する第2のジョブの実行終了の期限が設定される。そして複数のジョブ1a,1bの本運用が開始されると、監視手段13により、ジョブ1aの出力データ量が監視される。そして予測手段14により、出力データ量に基づいて、ジョブ1bの実行が期限内に終了できるかどうかが予測される。期限内に終了できないと予測された場合、予測手段14によりアラーム15が出力される。
これにより、第2のジョブの実行を期限までに終了できない見込みであることを、第2のジョブに先行して実行される第1のジョブの実行途中で、ユーザに通知できる。すなわち、期限になっても第2のジョブが終了していないことを確認してジョブの遅延を検知する場合に比べ、早期にジョブの遅延を予測検知することができる。ジョブの遅延の発生を、事前に検知できれば、その後の対応が容易となる。例えばバッチ業務のようにデッドラインが決まっている場合、優先度の低いジョブの実行を翌日に移行するといった対処を行い、途中のジョブが遅延してもデッドラインまでにバッチ業務が終了できるようにすることができる。
ところで、抽出ジョブを第1のジョブとする場合、抽出ジョブを精度良く見つけ出すことが重要となる。
抽出ジョブには、入力ファイル内のすべてのレコードを、所定量ずつ読み込むという特徴がある。そこで特定手段11は、例えば、ジョブを実行した場合に、入力ファイル内のすべてのレコードを、所定量ずつ読み込むか否かに基づいて、該ジョブを第1のジョブとして特定するかどうかを判断することができる。
また抽出ジョブには、入力ファイル内の複数のレコードのうち、抽出条件に適合するレコードを、加工せずに出力するという特徴もある。そこで特定手段11は、例えば、ジョブを実行した場合に、入力ファイル内の複数のレコードのうち、抽出条件に適合するレコードを、加工せずに出力するか否かに基づいて、該ジョブを第1のジョブとして特定するかどうかを判断することができる。
また抽出ジョブには、複数のファイルにデータ出力を行った場合に、複数のファイルそれぞれの識別情報が、抽出条件を定義するファイルで指定されているという特徴がある。そこで特定手段11は、例えば、ジョブの実行により、複数のファイルにデータ出力が行われた場合に、抽出条件を定義するファイルを参照する。そして特定手段11は、複数のファイルそれぞれの識別情報が、抽出条件を定義するファイルで指定されているか否かに基づいて、そのジョブを第1のジョブとして特定するかどうかを判断することができる。
さらに抽出ジョブには、抽出条件がファイルに定義されている場合、そのファイルは1回の読み込み処理で読み込まれるという特徴がある。そこで、特定手段11は、ジョブを実行した場合に、抽出条件を定義するファイルが1回の読み込み処理で読み込まれたか否かに基づいて、該ジョブを第1のジョブとして特定するかどうかを判断することができる。
なお特定手段11は、上記の抽出ジョブの特徴のうちの複数の特徴を組み合わせて、第1のジョブを特定してもよい。
以上のようにして、第1の実施の形態によれば、長時間化するジョブが実行開始する前の段階での遅延予測を実現することができる。すなわち、加工処理が長時間化するかどうかは、先行ジョブである抽出処理の結果による。抽出処理結果の抽出データの大きさが大きいほど、以降の処理の実行時間が長くなる。よって、抽出処理を行うジョブを検出し、その出力データ量に着目することで、長時間化するジョブの実行開始前に遅延予測が可能となる。
なお情報処理装置10は、例えばプロセッサやメモリを有するコンピュータである。その場合、特定手段11、期限設定手段12、監視手段13、および予測手段14は、例えば情報処理装置10が有するプロセッサが、メモリに格納されたプログラムを実行することで実現することができる。また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、テスト環境のサーバにおいて評価関数式などの、ジョブの遅延検出に利用する情報を生成し、運用環境のサーバで、その情報に基づいてバッチ業務中のジョブの遅延を検出するものである。
図2は、第2の実施の形態のシステム構成の一例を示す図である。ネットワーク20を介して、複数のサーバ100,200と端末装置31,32,・・・とが接続されている。サーバ100は、運用環境にあるコンピュータであり、オンラインまたはバッチの業務を実行する。サーバ200は、テスト環境にあるコンピュータであり、オンラインまたはバッチの業務のテストを実施する。
このようなシステムを用いて、例えば、日中はオンライン処理がサーバ100で実行され、夜間、サーバ100でバッチ業務が実行される。バッチ業務は、例えばオンライン処理で蓄積された各種データを一括処理するものである。バッチ業務は、複数のジョブの組み合わせによって実現される。実行される各ジョブは、何らかの入力ファイルからデータを読み込み、データに対する処理を実施する。大多数のジョブは、後続のジョブへデータを受け渡すために、出力ファイルに書き込む処理を行っている。これらのジョブの組み合わせで、目的とするデータが最終的に出力される。例えば売上マスターデータベースに当日分の科目別売上が格納される。
このようなジョブ管理分野において、以下の環境変化が起こっている。
<処理対象データが巨大化し、長時間実行するジョブが増加>
例えば、経営活動を支えるICT(Information and Communication Technology)システム内のバッチ業務において、基幹業務処理以外の情報系処理が増加している。基幹業務処理とは、例えば、POS(Point Of Sales system)データ(店舗売上データ)から在庫引き当てし、不足在庫を発注するなどの処理である。情報系処理とは、例えば、過去分を含むPOSデータの売上推移やブログなど口コミ情報など多様・多量の情報を分析し、売れ筋商品を予測するなどの処理である。
基幹業務処理のデータ量に比べ、情報系処理は扱うデータ量が桁違いに大きい。そのため、情報系処理のデータをバッチ業務において処理しようとすると、基幹業務処理のデータを処理するジョブに比べて、ジョブの実行時間が桁違いに長くなる。
<バッチジョブとして動作するアプリケーションソフトウェア(以下「アプリケーション」と呼ぶ)のリリース間隔短期化>
情報系処理のバッチ処理で実行されるアプリケーションは、基幹系と異なりライフサイクルが非常に短い。例えば情報系処理では、新しいデータ種別を分析の入力として追加するなど、高い頻度で改変される。また、開発環境やFW(フレームワーク)の進化により、コーディング量も減少している。そのため、アプリケーションのリリース間隔が短期化している。例えば、更新されたアプリケーションが毎週リリースされることさえある。
<システムに求められる信頼性の向上>
銀行業務であれば、外的要因によりデータ量が一時的に増大することがある。例えば、災害時に、義援金の振り込みが殺到すると、想定を遥かに超えたデータ入力が行われる。その結果、バッチ業務が遅延し、オンライン業務が停止する自体が想定される。特に銀行システムのように社会基盤を支えているシステムにおいては、想定を遥かに超えた突発的なデータ量増加であっても、問題なく処理できることが重要となる。
ここで、監視対象として指定したジョブの終了予定時刻を監視しても、終了予定時刻に達するまでは、ジョブの遅延を検知できない。例えば監視対象ジョブの実行に通常でも4時間かかる場合、監視対象ジョブの実行を開始してから4時間経過しないと、遅延の有無を判断できない。処理対象のデータ量の増加により、正常時の監視対象ジョブの実行時間が長くなればなるほど、遅延の有無を検知する時刻も遅くなる。
しかも、アプリケーションのリリース間隔が短期化することで、監視対象ジョブの通常動作時の実行時間の正確な見積もりも困難となる。例えばアプリケーションに対して、分析対象データの追加や分析ロジック変更などの改修が施されると、最新のリリース日以前の稼働実績データからは、実行時間を正確に見積もることはできない。監視対象ジョブの通常動作時の実行時間が正確に見積もれない場合、実行時間を長めに取って終了予定時刻を決めることとなる。その結果、遅延の有無の検知がさらに遅れることとなる。
ジョブの実行に遅延が発生したとき、その遅延の検知が遅れると、バッチ業務が実行可能な期間内にバッチ業務が終了せず、オンライン業務が開始できない可能性がある。すなわちシステムの信頼性が低下する。
ここで、バッチ業務におけるジョブ実行の遅延原因の1つに、ジョブで処理するデータ量の増大がある。ただしバッチ業務中に実行されるジョブには、データ量の増大の影響で処理が長期化するジョブと、そうでないジョブとがある。
図3は、バッチ業務の一例を示す図である。まずサーバ100は、入力ファイル41からのデータの抽出処理を行う抽出ジョブ42を実行する。例えば抽出ジョブ42が実行されることで、入力ファイル41から、所定の抽出条件に合致するデータが抽出される。サーバ100は、抽出したデータ(抽出データ)を、ファイル(抽出データファイル43)へ出力する。
データの抽出が終了すると、サーバ100は、抽出データファイル43内のデータの加工処理を行う加工ジョブ44を実行する。例えば加工ジョブ44が実行されることで、データ形式変換・データ結合・データ間照会・ソート処理・データ分析などが行われる。サーバ100は、加工したデータを、加工済みデータファイル45に出力する。
データの加工が終了すると、サーバ100は、加工済みデータの集計処理を行う集計ジョブ46を実行する。サーバ100は、集計したデータを、集計結果ファイル47に出力する。
このような手順で業務が行われるとき、データの抽出処理は、業務全体から比較すると、短時間で実行できる。他方、加工処理や集計処理は、処理時間がデータ量に比例する傾向がある。そのため、抽出データファイル43のサイズが増加するほど、加工処理や集計処理の処理時間が長時間化する。
第2の実施の形態では、バッチ業務が稼働している環境に蓄積された稼働実績データに頼らない手法によって、突発的な処理対象データ増加時でもジョブ実行時間を予測できるようにする。すなわち第2の実施の形態に係るシステムでは、バッチ業務が本運用に入る前のテスト運用の段階で、監視対象ジョブを選出し、監視対象ジョブの入力データサイズと実行時間の相関関係を導出する。そして本システムでは、導出された相関関係を用いて、バッチ業務の本運用時の遅延検出を行う。
ジョブの早期遅延検知を実現するまでの処理の流れを以下に示す。
<テスト運用時>
[第1工程]サーバ200が、全ジョブの中から抽出ジョブを自動検知すると共に、全ジョブの稼働実績データを採取する。
<本運用前の準備>
[第2工程]サーバ200が、抽出ジョブによる抽出データのサイズと後続の加工処理を行うジョブ(加工ジョブ)の実行時間の関係を分析し、加工ジョブの属性情報として、相関関係式を記憶する。
[第3工程]サーバ100が、加工ジョブを「監視対象候補」として表示する。その際、サーバ100は、設定の優先順位が分かるよう、実行時間の長いものから一覧表示する。運用に従事する管理者が、監視対象候補の終了予定時刻を、サーバ100内に設定する。
<本運用時>
[第4工程]サーバ100が、抽出ジョブからの抽出データサイズを監視する。
以上のような構成で、ジョブ遅延の早期の予測検知が可能となる。なお、第2工程を運用環境のサーバ100で行ってもよい。また第3工程をテスト環境のサーバ200で行ってもよい。
図4は、本運用時の監視処理を示す図である。サーバ100は、抽出ジョブが実行中の段階で、抽出データを入力とする加工ジョブの終了予定時刻と現在の監視時点時刻の差分の時間から、所定の時間内に処理可能なデータサイズ(加工可能データサイズ)を、相関関係式を使って算出する。そしてサーバ100は、抽出データサイズが、加工可能データサイズより大きくなった時点で、遅延検知アラームを上げる。
これにより、抽出データの大きさによっては、抽出ジョブの実行中に遅延を早期検知することができるようになる。すなわち、実際に加工ジョブ44が終了予定時刻までに完了しないことを検知してアラームを上げる場合に比べ、アラームの出力タイミングを早めることができる。その結果、バッチ業務実行可能期間が終了するまでに余裕を持って遅延を検知することができ、バッチ業務実行可能期間内にバッチ業務を終了させるための対策を、余裕を持って実行することができる。
以下、このような遅延検知を実現するためのシステムの詳細を説明する。
図5は、サーバのハードウェアの一構成例を示す図である。サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101の機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なおサーバ200も、サーバ100と同様のハードウェアで実現することができる。また、第1の実施の形態に示した情報処理装置10も、図5に示したサーバ100と同様のハードウェアにより実現することができる。
サーバ100,200は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。サーバ100,200に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ100,200に実行させるプログラムをHDDに格納しておくことができる。プロセッサは、HDD内のプログラムの少なくとも一部をメモリにロードし、プログラムを実行する。またサーバ100,200に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサからの制御により、HDDにインストールされた後、実行可能となる。またプロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、テスト環境で動作するサーバ200で実行される処理について詳細に説明する。
図6は、テスト環境で動作するサーバの機能を示すブロック図である。サーバ200は、管理DB210、ジョブ管理部220、アプリケーション記憶部230、業務データ記憶部240、アプリケーション実行部250を有する。
管理DB210は、遅延検出に利用する情報を記憶する。例えばメモリやHDDの記憶領域の一部が、管理DB210として使用される。管理DB210には、ジョブ定義情報211、稼働実績管理表212、相関関係表213、および実行時間情報リスト214が格納される。
ジョブ定義情報211は、バッチ業務で実行するジョブに関する定義情報である。例えばジョブが抽出ジョブか否かに関する情報が、ジョブ定義情報211に設定される。
稼働実績管理表212は、テスト運用によるジョブの稼働実績が登録されたデータテーブルである。稼働実績としては、例えば、実行時間や入出力されたファイルのサイズが登録される。
相関関係表213は、相関関係を有する抽出ジョブと加工ジョブとの組み合わせを示すデータテーブルである。
実行時間情報リスト214は、監視対象ジョブとして指定されたジョブの、テスト運用時の実行時間を示す情報である。
ジョブ管理部220は、バッチ業務のテスト運用時にジョブを制御する。そのためにジョブ管理部220は、ジョブ実行制御部221、抽出ジョブ特定部222、および相関関係解析部223を有する。ジョブ実行制御部221は、バッチ業務におけるジョブの実行をアプリケーション実行部250に指示する。抽出ジョブ特定部222は、ジョブ実行時の動作に基づいて、バッチ業務で実行されるジョブの中から、抽出ジョブを特定する。相関関係解析部223は、ジョブの稼働実績に基づいて、抽出ジョブと加工ジョブとの間の相関関係を解析する。
アプリケーション記憶部230は、ジョブの実行に使用される複数のアプリケーションソフトウェアを記憶する。アプリケーションソフトウェアには、処理手順を記述したプログラムや、プログラムに従った処理の実行に使用されるデータが含まれる。
業務データ記憶部240は、バッチ業務の実行に用いられるデータを記憶する。例えば、バッチ業務で処理する入力ファイルや、入力ファイルからデータを抽出する条件が設定された抽出条件ファイルが、業務データ記憶部240に記憶される。またバッチ業務中のジョブを実行することで生成されたデータも、業務データ記憶部240で記憶される。
アプリケーション実行部250は、ジョブ管理部220からの指示に従って、アプリケーション記憶部230内のアプリケーションに基づくジョブを実行する。例えばアプリケーション実行部250は、業務データ記憶部240内のファイルを読み出し、そのファイルを用いたジョブを実行する。そしてアプリケーション実行部250は、ジョブの実行結果を、業務データ記憶部240内のファイルに書き込む。
次に管理DB210に格納されるデータについて詳細に説明する。
図7は、ジョブ定義情報の一例を示す図である。ジョブ定義情報211には、ジョブネット名、ジョブ名、入力ファイル、出力ファイル、および抽出ジョブ判定フラグの欄が設けられている。
ジョブネット名の欄には、バッチ業務で実行されるジョブが属するジョブネットの名称が設定される。ジョブ名の欄には、バッチ業務で実行されるジョブの名称が設定される。入力ファイルの欄には、ジョブの実行時に使用するファイルの識別情報が設定される。出力ファイルの欄には、ジョブの実行結果を出力するファイルの識別情報が設定される。抽出ジョブ判定フラグの欄には、対応するジョブが抽出ジョブか否かを示すフラグ(抽出ジョブ判定フラグ)が設定される。例えば、抽出ジョブであれば、抽出ジョブ判定フラグには「ON」が設定される。抽出ジョブでなければ、抽出ジョブ判定フラグには「OFF」が設定される。
図8は、稼働実績管理表の一例を示す図である。稼働実績管理表212には、ジョブネット名、ジョブ名、実行時間、入力ファイル、入力ファイルサイズ、出力ファイル、および出力ファイルサイズの欄が設けられている。
ジョブネット名の欄には、テスト運用で実行されたジョブが属するジョブネットの名称が設定される。ジョブ名の欄には、テスト運用で実行されたジョブの名称が設定される。実行時間の欄には、ジョブが実行された時間が設定される。入力ファイルの欄には、ジョブの実行の際に読み出したファイルの識別情報が設定される。入力ファイルサイズの欄には、ジョブの実行の際に読み出したファイルのサイズ(データ量)が設定される。出力ファイルの欄には、ジョブの実行結果を出力したファイルの識別情報が設定される。出力ファイルサイズの欄には、ジョブの実行結果を出力したファイルのサイズ(データ量)が設定される。
稼働実績管理表212には、ジョブが実行されるごとに、そのジョブに関する稼働実績を示すレコードが登録される。図8の例では、ジョブ名「job001」のジョブが3回実行されており、3回分の稼働実績が登録されている。
相関関係表213は、ジョブ定義情報211に基づいて作成される。相関関係表213を作成する場合、相関関係解析部223は、ジョブ定義情報211から、抽出ジョブ判定フラグが「ON」になっているジョブを取得する。取得されたジョブは、「抽出ジョブ」とみなされる。相関関係解析部223は、抽出ジョブの「出力ファイル」(“抽出ファイル”と呼ぶ)を「入力ファイル」としている他のジョブを探す。該当する他のジョブは、「加工ジョブ」とみなされる。この結果に基づいて、相関関係解析部223は、図9に示すような相関関係表213を作成する。
図9は、相関関係表の一例を示す図である。相関関係表213には、抽出ジョブ、抽出ファイル、および加工ジョブの欄が設けられている。
抽出ジョブの欄には、抽出ジョブが属するジョブネットの名称(ジョブネット名)と、抽出ジョブの名称(ジョブ名)とが設定される。抽出ファイルの欄には、抽出ジョブで抽出されたデータが格納されるファイル(抽出ファイル)の識別情報が設定される。加工ジョブの欄には、抽出ファイルを入力ファイルとする加工ジョブが属するジョブネットの名称(ジョブネット名)と、抽出ジョブの名称(ジョブ名)とが設定される。このような相関関係表213により、抽出ジョブと加工ジョブとの実行順の前後関係が明らかになる。
図10は、実行時間情報リストの一例を示す図である。実行時間情報リスト214には、ジョブネット名、ジョブ名、平均実行時間、最短実行時間、および最大実行時間の欄が設けられている。
ジョブネット名の欄には、テスト運用により実行されたジョブが属するジョブネットの名称が設定される。ジョブ名の欄には、テスト運用により実行されたジョブの名称が設定される。平均実行時間の欄には、ジョブの平均実行時間が設定される。最短実行時間の欄には、ジョブの実行時間の最短値が設定される。最大実行時間の欄には、ジョブの実行時間の最大値が設定される。
以上のような構成のサーバ200により、バッチ業務のテスト運用が行われる。管理DB210に各種データが登録される。テスト運用は、例えば1以上のジョブネットを含むバッチ業務の情報の入力に応じて実行される。ジョブネットには、ジョブの実行順、各ジョブの実行に使用するアプリケーション、各ジョブの入力ファイルと出力ファイルなどが定義されている。
図11は、テスト運用されるサーバにおける処理手順の一例を示すフローチャートである。
[ステップS101]ジョブ管理部220は、バッチ業務として指定されたジョブネットの中から、未処理のジョブネットの1つを選択する。
[ステップS102]ジョブ管理部220は、稼働実績管理表212内の稼働実績データを消去する。
[ステップS103]ジョブ管理部220は、選択したジョブネットのテスト運用を開始する。バッチ業務のテスト運用の実行により、ジョブ定義情報211や稼働実績管理表212が作成される。この処理の詳細は後述する(図14〜図20参照)。
[ステップS104]ジョブ管理部220は、テスト運用を、予め指定された所定回数繰り返したか否かを判断する。所定回数繰り返した場合、処理がステップS106に進められる。所定回数繰り返していない場合、処理がステップS105に進められる。
[ステップS105]ジョブ管理部220は、入力データ量を変更し、処理をステップS103に進める。例えば管理者は、サーバ200に、データ量の異なる複数の入力データを格納しておく。ジョブ管理部220は、1回のテスト運用が終了すると、テスト運用に使用する入力データを変更し、再度テスト運用を行う。
[ステップS106]ジョブ管理部220は、相関関係式を導出する。この処理の詳細は後述する(図21参照)。
[ステップS107]ジョブ管理部220は、バッチ業務の未処理のジョブネットがあるか否かを判断する。未処理のジョブネットがあれば、処理がステップS101に進められる。すべてのジョブネットについて処理が終了していれば、処理が終了する。
以下、図11の示す各ステップの処理について詳細に説明する。
まず、テスト運用時の処理について説明する。バッチ業務のテスト運用時、実際にジョブが起動され、指定されたアプリケーションに基づいてジョブが順次実行される。そしてジョブの実行中にOSに対して発行される処理要求の一部が分析され、実行しているジョブが抽出ジョブか否かが自動識別される。
次に、抽出ジョブの特定方法について詳細に説明する。
抽出ジョブか否かの判断は、実行しているジョブが、抽出ジョブとしての仕様または特性を有しているか否かによって判断される。抽出ジョブの特性として、以下の4つが挙げられる。
[特性a]抽出ジョブの実行時には、入力ファイルが最初から最後まで、レコード単位、もしくは、ある一定のサイズで、ファイルの最初から順番に読み込まれる。
[特性b]抽出ジョブの実行時には、レコードのあるカラムの値が、抽出アプリケーションに指定された抽出条件に一致した場合に、該当のレコードが出力ファイルへ、レコード単位もしくは、ある一定のサイズで、順番に書き込まれる。この際、レコードの加工は行われない。
[特性c]抽出ジョブの実行時には、1つの出力ファイル固定ではなく、抽出条件に従って、複数の出力ファイルにデータが振り分けられる場合がある。複数の出力ファイルが存在する場合、抽出条件と出力ファイルの関係が、抽出条件定義ファイルに定義されている。
[特性d]抽出条件定義ファイルの読み込みは、一回の読み込み処理で行われ、メモリへ展開される。
図12は、抽出ジョブの仕様/特性の一例を示す図である。ジョブ実行制御部221が、バッチ業務として指定されたアプリケーションの実行指示を出力する。するとアプリケーション実行部250により、指定されたアプリケーションが実行される。例えばアプリケーション実行部250は、アプリケーション記憶部230からアプリケーションのプログラムを読み出し、そのプログラムに従った処理を実行する。
アプリケーション実行部250が実行するアプリケーションが、抽出ジョブの処理内容が定義されたアプリケーションであれば、アプリケーション実行部250は、まず抽出条件ファイル241をメモリに読み込む。この場合、アプリケーション実行部250は、OS260に対して、抽出条件ファイル241を指定した読み込み処理の呼び出しを行う。するとOS260が抽出条件ファイル241の読み込み処理を実行する。OS260によって読み込まれた抽出条件ファイル241は、アプリケーション実行部250が管理するメモリ内の領域に格納される。
アプリケーション実行部250は、抽出条件ファイル241に定義されている抽出条件に従って、入力ファイル242からデータを抽出する。例えばアプリケーション実行部250は、OS260に対して、入力ファイル242を指定した読み込み処理の呼び出しを行う。するとOS260が入力ファイル242内のデータの読み込み処理を実行する。OS260によって読み込まれたデータは、アプリケーション実行部250が管理するメモリ内の領域に格納される。
アプリケーション実行部250は、メモリに格納された入力ファイル242内の個々のデータについて、抽出条件に合致するか否かを判断する。抽出条件に合致するデータがある場合、アプリケーション実行部250は、そのデータを出力ファイル243,244に書き込む。例えばアプリケーション実行部250は、OS260に対して、いずれかの出力ファイルを指定した書き込み処理の呼び出しを行う。するとOS260が指定された出力ファイルへのデータの書き込み処理を実行する。
データの読み込みとデータの書き込みは、入力ファイル242内のすべてのデータが読み込まれるまで、繰り返し実行される。
図12に示すような処理過程におけるアプリケーション実行部250からOS260への指示を、抽出ジョブ特定部222が監視する。例えば、アプリケーション実行部250から、データの読み出しまたは書き込みの呼び出しイベントが発生すると、呼び出し対象の関数の実行前に、データの読み出しまたは書き込みの内容を取得する割り込み処理(トラップ処理)が実行されるようにする。そしてジョブ実行中のトラップ処理によって取得した情報を解析することで、そのとき実行されているジョブが抽出ジョブか否かが判断される。
図13は、抽出ジョブ特定処理の概要を示す図である。例えばジョブ実行制御部221からの指示に従って、アプリケーション実行部250が、アプリケーションを用いてジョブを実行する。ジョブの実行中にアプリケーション実行部250は、OS260に対して読み込み処理呼び出し、書き込み処理呼び出し、またはクローズ処理呼び出しを行うことがある。アプリケーション実行部250からの呼び出し処理は、抽出ジョブ特定部222によるトラップ処理によって、処理の内容を示す情報が取得される。
なおOS260では、読み込み処理が呼び出されると読み込み処理を実行し、書き込み処理が呼び出されると書き込み処理を実行し、クローズ処理が呼び出されるとクローズ処理を実行する。なおクローズ処理は、使用していたファイルを未使用の状態にする処理である。
抽出ジョブ特定部222は、トラップ処理によって取得した情報の解析処理を行う。例えば抽出ジョブ特定部222は、読み込み処理呼び出しに関する情報に基づいて、読み込みデータの解析を行う。抽出ジョブ特定部222は、書き込み処理呼び出しに関する情報に基づいて、書き込みデータの解析を行う。また抽出ジョブ特定部222は、クローズ処理呼び出しに関する情報に基づいて、at-endの有無の確認を行う。さらに抽出ジョブ特定部222は、ファイルオフセットの設定処理の呼び出しの有無の確認も行う。
前述のように、抽出ジョブは4つの特性a〜dを有している。これらの特性を有しているか否かの判断は、以下のようにして行われる。なお特性aと特性dについては、共通の特定処理によって、その特性を有しているかどうかが特定される。
<特性a/dの特定処理>
[特性a/d特定処理1]
抽出ジョブ特定部222は、ジョブとして実行するアプリケーションの読み込み処理/ファイルオフセット設定処理/クローズ処理をトラップし、読み込みデータの分析処理を経由するよう共用ライブラリの関係を変更する。その後、抽出ジョブ特定部222は、アプリケーション実行部250に、アプリケーションの実行を指示する。するとアプリケーション実行部250は、アプリケーションに従ってジョブを実行する。
[特性a/d特定処理2]
抽出ジョブ特定部222は、読み込み処理で読み込むファイルの種別(入力ファイル、抽出条件ファイル)を区別する。例えば抽出ジョブ特定部222は、以下の判断により、入力ファイルなのか、抽出条件ファイルであるかを切り分ける。
・入力ファイル:読み込み処理で指定されたデータサイズ<読み込み対象のファイルのサイズ
・抽出条件ファイル:読み込み処理で指定されたデータサイズ≧読み込み対象のファイルのファイルサイズ
すなわち、入力ファイルの場合にはファイルサイズが大きくなり、ファイルの読み込み処理は複数回に分けて行われる。そのため、読み込み処理で指定されたデータサイズが、読み込み対象のファイルのサイズに満たなければ、読み込み対象のファイルが入力ファイルであると判定できる。他方、抽出条件ファイルは、ファイルサイズはあまり大きくならず、1回の読み込み処理によって読み込むことができる。そのため、読み込み処理で指定されたデータサイズが、読み込み対象のファイルのサイズ以上であれば、読み込み対象のファイルが抽出条件ファイルであると判定できる。
この特定処理は、後述する「特性c特定処理1」との組み合わせによって、抽出ジョブを特定するものである。なお抽出ジョブが、1つの入力ファイルに対して1つの出力ファイルに抽出結果を出力するタイプのジョブであり、ファイル名や抽出条件(文字列)はパラメータとして指定する仕様であることが分かっている場合、「特性a/d特定処理2」は行わなくてもよい。他方、抽出ジョブにおける抽出条件が複数存在し、抽出条件ごとに出力ファイルを分割する場合、抽出条件と出力ファイル名の定義情報をファイルでアプリケーションに受け渡すのが一般的である。実行される抽出ジョブがこのようなタイプであることが分かっている場合、「特性a/d特定処理2」を実行することで、抽出ジョブの判定精度を向上させることができる。
「特性a/d特定処理2」を実施しない場合、「抽出条件ファイル」と「入力ファイル」それぞれを特定できない。このため、複数の入力ファイルを元に、マージ処理やソート処理を行う(加工は一切しない)アプリケーションによるジョブを、誤って抽出ジョブと判断してしまう場合があり得る。「特性a/d特定処理2」の実施により、このような誤った判断が抑止され、抽出ジョブの判定精度が向上する。
[特性a/d特定処理3]
抽出ジョブ特定部222は、ファイルオフセット設定処理が入力ファイルに対して呼び出された場合に、ランダムアクセスしているため、抽出アプリケーションではないと判断する。この「特性a/d特定処理3」は、特定対象アプリケーションが抽出アプリケーションであるか否かを直接的に判定している。「特性a/d特定処理3」を実行することで、抽出ジョブの判定精度が向上する。
「特性a/d特定処理3」を実施しない場合、入力ファイルの各レコードを順次読み込んで、すべてのレコードに対して処理しているのか、あるいか一部のレコードしか読み込んでいないのかについて判断できない。このため、何らかの加工が施されたデータファイルとして、複数の種別のレコードが混在するファイルを入力として、マージ処理やソート処理を行うジョブを、誤って抽出ジョブと判断してしまう場合があり得る。複数の種別のレコードが混在するファイルは、ファイル内に、種別の異なるレコードA、レコードBが混在し、レコードAに対して複数のレコードBが属し、レコードAからは、各レコードBへポイントされている構造となっている。このファイルを入力ファイルとするジョブでは、ファイルのEOF(End Of File)に到達するまでレコードAを読み込みながら、各レコードAがポイントする複数のレコードBの内、必要な情報を保持するレコードBに対してのみ処理が行われる。この場合、ファイルのEOFまで読み込みが行われており、例えば入力ファイルを最後まで読み込んだかどうかの判定処理だけでは、正しく抽出ジョブか否かの判定ができない。「特性a/d特定処理3」の実施により、このような誤った判断が抑止され、抽出ジョブの判定精度が向上する。
[特性a/d特定処理4]
抽出ジョブ特定部222は、入力ファイルに対して、ファイルの途中で読み込みを終了した場合(読み込み処理がat-end未検出)には、抽出ジョブではないものと判断する。
「特性a/d特定処理4」は、実行しているジョブが抽出ジョブであるか否かを直接的に判定している処理である。
「特性a/d特定処理4」を実施しない場合、入力ファイルを終端まで処理しているのか否かを判断できない。このため、入力ファイルの先頭から順次レコードを読み込み、何らかの目的で情報を1件だけ取り出して読み込みを終了するジョブを、誤って抽出ジョブと判断してしまう場合がある。入力ファイルから情報を1件だけ取り出して読み込みを終了するジョブとしては、例えば、注文番号や伝票番号など業務データに対して割り当てられた一意に識別可能な番号をキーワードに、該当データを取り出すジョブがある。このようなジョブは常に1件のデータしか取り出さず、取り出したデータを加工するジョブの処理時間への影響が少ない。そのため入力ファイルから情報を1件だけ取り出して読み込みを終了するジョブについては、ジョブの処理の遅延検知の観点からは、抽出ジョブではないと判定するのが適切である。
<特性bの特定処理>
[特性b特定処理1]
抽出ジョブ特定部222は、ジョブとして実行するアプリケーションの書き込み処理/ファイルオフセット設定処理をトラップし、書き込みデータの分析処理を経由するよう共用ライブラリの関係を変更する。その後、抽出ジョブ特定部222は、アプリケーション実行部250に、アプリケーションの実行を指示する。するとアプリケーション実行部250は、アプリケーションに従ってジョブを実行する。なお、この処理は「特性a/d特定処理1」でも実施される処理であり、特性a/dの特定処理としてすでに実行されていれば、実行せずにすむ。
[特性b特定処理2]
抽出ジョブ特定部222は、書き込み処理が呼び出されるまで、「特性a/dの特定処理」で読み込んだ入力ファイルのデータをメモリ上に保持する。そのうえで、書き込み処理が呼び出された場合、抽出ジョブ特定部222は、書き込みデータをレコード単位(例えば改行コードをレコードの区切りと認識)に分割する。そして抽出ジョブ特定部222は、レコード単位に分割したデータが、メモリ上に保持したデータ内に完全一致する形で存在するか否かを確認する。存在しない場合、抽出ジョブではないと判断する。
「特性b特定処理2」では、実行しているジョブが抽出ジョブであるか否かを直接的に判定している処理である。
「特性b特定処理2」を実施しない場合、入力データに対して加工処理を実施したか否かを判断できない。このため、入力ファイルの先頭から順次レコードを読み込み、集計やデータ変換など何らかの加工処理を実施して出力ファイルに順次書き出すジョブを抽出ジョブと判断してしまう可能性がある。従って、「特性b特定処理2」を実施することで、抽出ジョブの判定精度が向上する。
[特性b特定処理3]
出力ファイルに対してファイルオフセット設定処理が呼び出された場合には、ランダムアクセスをしていると考えられる。そこで、出力ファイルに対してファイルオフセット設定処理が呼び出された場合、抽出ジョブ特定部222は、抽出ジョブではないと判断する。「特性b特定処理3」は、特定対象のジョブが抽出ジョブであるか否かを直接的に判定している処理である。
「特性b特定処理3」を実施しない場合、出力ファイルに処理案件ごとに順次書き込んでいるか否かを判断できない。例えば、入力ファイルの先頭から順次レコードを読み込み、特定のデータ項目(列)のみを出力ファイルに書き込みながら、入力ファイル中の補正レコードを検知すると出力ファイルに出力済みのレコードに対して上書きするようなジョブがある。「特性b特定処理3」を実施しないと、このようなジョブを抽出ジョブと判断してしまう可能性がある。従って、「特性b特定処理3」を実施することで、抽出ジョブの判定精度が向上する。
<特性cの特定処理>
抽出ジョブ特定部222は、「特性a/dの特定処理」において抽出条件ファイルと判断したファイルについて、読み込み処理で読み出したデータに、書き込み処理に指定したファイル名が含まれるか否かを確認する。含まれない場合には、抽出ジョブ特定部222は、実行しているジョブは抽出ジョブではないと判断する。この特性cの特定処理は、「特性a/d特定処置2」と合わせて実行することで、抽出ジョブかどうかの判定が可能となる。
以上が、抽出ジョブに関する特性a〜dに基づく抽出ジョブの特性処理である。抽出ジョブ特定部222は、特定処理すべてにおいて、「抽出ジョブではない」と判断されなかった場合、当該ジョブを「抽出ジョブ」と判断し、ジョブ定義情報211(図7参照)に、抽出ジョブであることを設定する。例えば抽出ジョブ特定部222は、「抽出ジョブ」と判定したジョブの抽出ジョブ判定フラグを「ON」にし、それ以外のジョブの抽出ジョブ判定フラグを「OFF」にする。
このようにして、テスト運用によって実行されたジョブが、抽出ジョブか否かが判定される。なお、上記の判定に用いられた複数の特定処理のうち、一部の特定処理を行わなくても抽出ジョブかどうかの判定は可能である。ただし、多くの特定処理を実施するほど、精度の高い判定結果を得ることができる。
相関関係解析部223は、抽出ジョブ特定部222による抽出ジョブか否かの判定処理と並行して、全ジョブの実行時間、入力ファイルサイズ、出力ファイルサイズを稼働実績管理表に記録する。記録するタイミングは以下の通りである。
・入力ファイルサイズ:ジョブ開始時
・出力ファイルサイズ:ジョブ終了時
・実行時間 :ジョブ終了時
テスト運用は、例えば、異なる複数の条件で複数回実施される。例えば大量データ時の負荷テスト(性能テスト)などが実施される。テストが実施された回数分、稼働実績管理表212に稼働実績データを記録する。テストが3回実施された場合、図8に示すように、1つのジョブに対して3回分の稼働実績データが稼働実績管理表212に記録される。
なお相関関係解析部223は、ジョブ開始時には、毎回、実行するアプリケーションが更新されていないかをチェックする。更新されていた場合は、相関関係解析部223は、そのアプリケーションに基づいて実行されるジョブの稼働実績データを、稼働実績管理表212からクリアする。これにより、複数世代のアプリケーションが実行された際の稼働実績データが混在しないようにすることができる。なおアプリケーションが更新されたかどうかは、例えば、アプリケーションを示す実行ファイルの日付、サイズ、あるいはFP(FingerPrint)などの変更の有無により判断することができる。FPとは、情報が改ざんされていないことを証明するデータであり、例えばプログラムをハッシュ関数にかけて得られるハッシュ値である。
次に図14〜図19を参照して、テスト運用の処理手順について説明する。なおテスト運用前に、ジョブ実行制御部221には、バッチ業務における処理のジョブネット(各ジョブの実行に用いられるアプリケーションの情報を含む)が入力される。
図14は、テスト運用の処理手順の一例を示すフローチャートである。
[ステップS111]ジョブ実行制御部221は、ジョブ定義情報211を作成する。例えばジョブ実行制御部221は、バッチ業務の内容を示すジョブネットの情報に基づいて、ジョブネットに含まれるジョブのジョブ名、入力ファイル、出力ファイルを抽出し、ジョブ定義情報211を作成する。ジョブ実行制御部221は、作成したジョブ定義情報211を、管理DB210に格納する。
[ステップS112]抽出ジョブ特定部222は、OS260に対する処理の呼び出しに関するライブラリを、トラップ処理を組み込んだライブラリに置き換える。
[ステップS113]ジョブ実行制御部221は、ジョブネットに示される実行順に沿って、次に実行するジョブの実行開始を、アプリケーション実行部250に指示する。するとアプリケーション実行部250により、実行するジョブに対応するアプリケーションに基づいてジョブの実行が開始される。
[ステップS114]相関関係解析部223は、アプリケーション実行部250が実行を開始したジョブの入力ファイルサイズを、稼働実績管理表212に記録する。例えば相関関係解析部223は、稼働実績管理表212に対する新たなレコードとして、実行を開始したジョブのジョブネット名、ジョブ名、入力ファイル(入力ファイルの識別情報)、および入力ファイルサイズを登録する。
[ステップS115]抽出ジョブ特定部222は、アプリケーション実行部250からOS260への処理の呼び出しがあるか否かを判断する。抽出ジョブ特定部222は、処理の呼び出しがあれば呼び出される処理を判断する。読み込み処理が呼び出された場合、処理がステップS116に進められる。書き込み処理が呼び出された場合、処理がステップS117に進められる。ファイルオフセット設定処理が呼び出された場合、処理がステップS118に進められる。ファイルクローズ処理が呼び出された場合、処理がステップS119に進められる。処理の呼び出しがなければ、処理がステップS120に進められる。なお、読み込み処理、書き込み処理、ファイルオフセット設定処理、ファイルクローズ処理以外の処理の呼び出しがあった場合も、処理の呼び出しがない場合と同様に、処理がステップS120に進められる。
[ステップS116]抽出ジョブ特定部222は、読み込み解析処理を実行する。この処理の詳細は後述する(図16参照)。読み込み解析処理が終了すると、処理がステップS120に進められる。
[ステップS117]抽出ジョブ特定部222は、書き込み解析処理を実行する。この処理の詳細は後述する(図18参照)。書き込み解析処理が終了すると、処理がステップS120に進められる。
[ステップS118]抽出ジョブ特定部222は、ファイルオフセット設定解析処理を実行する。この処理の詳細は後述する(図19参照)。ファイルオフセット設定解析処理が終了すると、処理がステップS120に進められる。
[ステップS119]抽出ジョブ特定部222は、ファイルクローズ解析処理を実行する。この処理の詳細は後述する(図20参照)。ファイルクローズ解析処理が終了すると、処理がステップS120に進められる。
[ステップS120]ジョブ実行制御部221は、実行中のジョブが終了したか否かを判断する。ジョブが終了した場合、処理がステップS121に進められる。ジョブが終了していなければ処理がステップS115に進められる。
[ステップS121]相関関係解析部223は、ジョブの実行が終了すると、終了したジョブの出力ファイルサイズと実行時間とを、稼働実績管理表212に記録する。例えば相関関係解析部223は、稼働実績管理表212内にステップS114で登録したレコードに、出力ファイル、出力ファイルサイズ(出力ファイルの識別情報)、および実行時間を登録する。
[ステップS122]ジョブ実行制御部221は、バッチ業務が終了したか否かを判断する。バッチ業務が終了した場合、処理がステップS123に進められる。バッチ業務が終了していない場合、処理がステップS113に進められ、ジョブネット上で次に実行するジョブの実行開始が指示される。
[ステップS123]抽出ジョブ特定部222は、ステップS112で置き換えたライブラリを元に戻す。
[ステップS124]抽出ジョブ特定部222は、「抽出ジョブではない」と判定されていないジョブを「抽出ジョブ」と判定し、ジョブ定義情報211に設定する。例えば抽出ジョブ特定部222は、ジョブ定義情報211において、抽出ジョブ判定フラグが未設定のジョブに、抽出ジョブ判定フラグ「OFF」を設定する。
このようにしてテスト運用による抽出ジョブの判定や稼働実績の収集が行われる。ここで、テスト運用によって実行されたジョブが抽出ジョブであった場合の典型的な処理手順について説明する。
図15は、抽出ジョブの処理手順の一例を示すフローチャートである。なお、以下の処理は、抽出ジョブの処理内容が記述されたアプリケーションに基づいて、アプリケーション実行部250によって実行される。
[ステップS131]アプリケーション実行部250は、実行するジョブの抽出条件ファイル241のオープン処理を行う。例えばアプリケーション実行部250は、OS260に対して、抽出条件ファイル241のオープン処理の呼び出しを行う。オープン処理の呼び出しに応じて、OS260は、アプリケーション実行部250から抽出条件ファイル241へのアクセスを許可し、抽出条件ファイル241の状態を使用中にする。
[ステップS132]アプリケーション実行部250は、抽出条件ファイル241の読み込み処理を行う。例えばアプリケーション実行部250は、HDD内の抽出条件ファイル241に示される抽出条件をメモリに格納する。
[ステップS133]アプリケーション実行部250は、抽出条件ファイル241のクローズ処理を行う。例えばアプリケーション実行部250は、OS260に対して、抽出条件ファイル241のクローズ処理の呼び出しを行う。クローズ処理の呼び出しに応じて、OS260は、抽出条件ファイル241を不使用状態にする。
[ステップS134]アプリケーション実行部250は、実行するジョブの入力ファイル242のオープン処理を行う。例えばアプリケーション実行部250は、OS260に対して、入力ファイル242のオープン処理の呼び出しを行う。オープン処理の呼び出しに応じて、OS260は、アプリケーション実行部250から入力ファイル242へのアクセスを許可し、入力ファイル242の状態を使用中にする。
[ステップS135]アプリケーション実行部250は、実行するジョブの出力ファイル243のオープン処理を行う。例えばアプリケーション実行部250は、OS260に対して、出力ファイル243のオープン処理の呼び出しを行う。オープン処理の呼び出しに応じて、OS260は、アプリケーション実行部250から出力ファイル243へのアクセスを許可し、出力ファイル243の状態を使用中にする。
[ステップS136]アプリケーション実行部250は、入力ファイル242の先頭から順にレコードを、1レコードずつ読み込む。
[ステップS137]アプリケーション実行部250は、読み込んだレコードが、ファイルの終端を示す識別子(例えば「at-end」)か否かを判断する。読み込んだレコードがファイルの終端を示す識別子であれば、処理がステップS141に進められる。読み込んだレコードがファイルの終端を示す識別子でなければ、処理がステップS138に進められる。
[ステップS138]アプリケーション実行部250は、読み込んだレコードが、ステップS132で読み込んだ抽出条件に合致するか否かを判断する。抽出条件に合致する場合、処理がステップS139に進められる。抽出条件に合致しない場合、処理がステップS136に進められる。
[ステップS139]アプリケーション実行部250は、読み込んだ1レコードを、出力ファイル243,244に書き込む。
[ステップS140]アプリケーション実行部250は、入力ファイル242を最後まで読み込んだか否かを判断する。最後まで読み込んだ場合、処理がステップS141に進められる。最後まで読み込まれていなければ、処理がステップS136に進められる。
[ステップS141]アプリケーション実行部250は、入力ファイル242のクローズ処理を行う。例えばアプリケーション実行部250は、OS260に対して、入力ファイル242のクローズ処理の呼び出しを行う。クローズ処理の呼び出しに応じて、OS260は、入力ファイル242の状態を不使用にする。
[ステップS142]アプリケーション実行部250は、出力ファイル243,244のクローズ処理を行う。例えばアプリケーション実行部250は、OS260に対して、出力ファイル243,244のクローズ処理の呼び出しを行う。クローズ処理の呼び出しに応じて、OS260は、出力ファイル243,244の状態を不使用にする。
抽出ジョブ特定部222は、図15に示したような処理が実行されたかどうかによって、実行されたジョブが抽出ジョブかどうかを判定する。
図15のステップS133,S136に示した抽出条件ファイル241または入力ファイル242の読み込み時には、抽出ジョブ特定部222で以下のような処理が行われる。
図16は、読み込み解析処理の手順の一例を示すフローチャートである。
[ステップS151]抽出ジョブ特定部222は、アプリケーション実行部250からOS260への、読み込み処理の呼び出しの内容を取得する。
[ステップS152]抽出ジョブ特定部222は、読み込み処理の対象として指定されたファイルが、読み込み処理管理テーブルに設定されているか否かを判断する。読み込み処理管理テーブルは、ファイルの読み込み処理の内容を管理するデータテーブルである。読み込み処理管理テーブルは、抽出ジョブ特定部222によって生成され、メモリに格納される。
図17は、読み込み処理管理テーブルの一例を示す図である。読み込み処理管理テーブル224には、ファイル、種別、および読み込みデータの欄が設けられている。
ファイルの欄には、読み込まれたファイルの識別情報(例えばディレクトリ名+ファイル名)が設定される。種別の欄には、読み込まれたファイルの種別が設定される。ファイルの種別には、入力ファイルと抽出条件ファイルとがある。読み込みデータの欄には、読み込まれたファイル内のデータが設定される。抽出条件ファイルが読み込まれた場合、読み込みデータの欄には、抽出条件や、出力ファイルの識別情報(ディレクトリ名+ファイル名)が設定される。
図16の説明に戻り、ステップS152において、読み込み処理対象のファイルが読み込み処理管理テーブル224に設定されていると判断された場合、処理がステップS156に進められる。読み込み処理対象のファイルが読み込み処理管理テーブル224に設定されていないと判断された場合、処理がステップS153に進められる。
[ステップS153]抽出ジョブ特定部222は、読み込み処理で指定されたデータサイズが、読み込み対象のファイルのサイズ(ファイルサイズ)より小さいか否かを判断する。指定されたデータサイズがファイルサイズに満たない場合、処理がステップS154に進められる。指定されたデータサイズがファイルサイズ以上であれば、処理がステップS155に進められる。
[ステップS154]抽出ジョブ特定部222は、読み込み処理で指定されたデータサイズがファイルサイズに満たない場合、読み込まれたファイルの種別を「入力ファイル」として、読み込み処理管理テーブル224に新たなレコードを登録する。その後、処理がステップS156に進められる。
[ステップS155]抽出ジョブ特定部222は、読み込み処理で指定されたデータサイズがファイルサイズ以上の場合、読み込まれたファイルの種別を「抽出条件ファイル」として、読み込み処理管理テーブル224に新たなレコードを登録する。
[ステップS156]抽出ジョブ特定部222は、OS260から読み込まれたファイル内のデータから、ファイルの終端を示す識別子(例えば「at-end」)を検出したか否かを判断する。ファイルの終端を示す識別子を検出した場合、処理がステップS158に進められる。ファイルの終端を示す識別子を検出していなければ、処理がステップS157に進められる。
[ステップS157]抽出ジョブ特定部222は、読み込まれたデータに、ファイルの終端を示す識別子が含まれていなければ、読み込まれたデータ(レコード)を、読み込み処理管理テーブル224に設定する。その後、読み込み解析処理が終了する。
[ステップS158]抽出ジョブ特定部222は、読み込まれたデータに、ファイルの終端を示す識別子が含まれていれば、at-end検知フラグを「ON」に設定する。なおat-end検知フラグの初期状態は「OFF」である。その後、読み込み解析処理が終了する。
次に、書き込み解析処理について詳細に説明する。
図18は、書き込み解析処理の手順の一例を示すフローチャートである。
[ステップS161]抽出ジョブ特定部222は、アプリケーション実行部250からOS260への、書き込み処理の呼び出しの内容を取得する。
[ステップS162]抽出ジョブ特定部222は、書き込み処理対象として指定されたファイルが、読み込み処理管理テーブル224に設定されているか否かを判断する。書き込み処理対象のファイルが読み込み処理管理テーブル224に設定されている場合、処理がステップS163に進められる。書き込み処理対象のファイルが読み込み処理管理テーブル224に設定されていないと判断された場合、処理がステップS164に進められる。
[ステップS163]抽出ジョブ特定部222は、書き込みデータが読み込みデータと一致するか否かを判断する。例えば抽出ジョブ特定部222は、書き込み処理の呼び出しで書き込み対象とされるデータと、読み込み処理管理テーブル224内に書き込み対象のファイルに対応付けて登録されているデータとを比較する。抽出ジョブ特定部222は、比較の結果、データが一致していれば、書き込みデータと読み込みデータとが一致すると判断する。書き込みデータが読み込みデータと一致していれば、書き込み解析処理を終了する。書き込みデータが読み込みデータと一致していなければ、処理がステップS164に進められる。
[ステップS164]抽出ジョブ特定部222は、書き込みデータが読み込みデータと不一致の場合、現在実行中のジョブを、抽出ジョブではなない(非抽出ジョブ)として記録する。例えば抽出ジョブ特定部222は、ジョブ定義情報211における、現在実行中のジョブの抽出ジョブ判定フラグに、抽出ジョブではないことを示す値「OFF」を設定する。その後、書き込み解析処理が終了する。
次に、ファイルオフセット設定解析処理について詳細に説明する。
図19は、ファイルオフセット設定解析処理の手順の一例を示すフローチャートである。
[ステップS171]抽出ジョブ特定部222は、アプリケーション実行部250からOS260への、ファイルオフセット設定処理の呼び出しの内容を取得する。
[ステップS172]抽出ジョブ特定部222は、現在実行中のジョブを、抽出ジョブではない(非抽出ジョブ)として記録する。例えば抽出ジョブ特定部222は、ジョブ定義情報211における、現在実行中のジョブの抽出ジョブ判定フラグに、抽出ジョブではないことを示す値「OFF」を設定する。その後、ファイルオフセット設定解析処理が終了する。
次に、ファイルクローズ設定解析処理について詳細に説明する。
図20は、ファイルクローズ設定解析処理の手順の一例を示すフローチャートである。
[ステップS181]抽出ジョブ特定部222は、アプリケーション実行部250からOS260への、ファイルクローズ処理の呼び出しの内容を取得する。
[ステップS182]抽出ジョブ特定部222は、現在実行中のジョブについて、at-end検知フラグが「OFF」か否かを判断する。at-end検知フラグが「OFF」であれば、処理がステップS183に進められる。at-end検知フラグが「ON」であれば、ファイルクローズ解析処理が終了する。
[ステップS183]抽出ジョブ特定部222は、at-end検知フラグが「OFF」の場合、現在実行中のジョブを、抽出ジョブではなない(非抽出ジョブ)として記録する。例えば抽出ジョブ特定部222は、ジョブ定義情報211における、現在実行中のジョブの抽出ジョブ判定フラグに、抽出ジョブではないことを示す値「OFF」を設定する。その後、ファイルクローズ解析処理が終了する。
以上のようにして、テスト運用中に実行されたジョブそれぞれについて、抽出ジョブか否かの判定が行われると共に、各ジョブの稼働実績データが記録される。相関関係解析部223では、抽出ジョブの判定結果と稼働実績データとに基づいて、抽出ジョブと加工ジョブとの間の相関関係が解析され、相関関係式が導出される。
図21は、相関関係式導出処理の手順の一例を示すフローチャートである。
[ステップS201]相関関係解析部223は、ジョブ定義情報211から、未選択のジョブを1件選択する。
[ステップS202]相関関係解析部223は、取得したジョブの抽出ジョブ判定フラグが「ON」か否かを判断する。抽出ジョブ判定フラグが「ON」であれば、処理がステップS203に進められる。抽出ジョブ判定フラグが「OFF」であれば、処理がステップS215に進められる。
[ステップS203]相関関係解析部223は、抽出ジョブ判定フラグが「ON」であれば、選択したジョブを抽出ジョブとみなし、その抽出ジョブの情報を相関関係表213に格納する。例えば相関関係解析部223は、抽出ジョブのジョブネット名とジョブ名をジョブ定義情報211から取得し、相関関係表213に登録する。さらに相関関係解析部223は、抽出ジョブの出力ファイルの識別情報をジョブ定義情報211から取得し、取得した出力ファイルの識別情報を、抽出ジョブの抽出ファイルとして相関関係表213に登録する。
[ステップS204]相関関係解析部223は、選択したジョブ(抽出ジョブ)に対応する加工ジョブ探索処理を実行する。この探索処理では、1または複数の加工ジョブが検出される。この処理の詳細は、後述する(図24参照)。
[ステップS205]相関関係解析部223は、ステップS204で検出された加工ジョブのうちの未処理の加工ジョブの1つを、相関関係表213に記録する。例えば相関関係解析部223は、加工ジョブのジョブネット名とジョブ名をジョブ定義情報211から取得し、選択したジョブ(抽出ジョブ)に対応付けて、相関関係表213に登録する。
[ステップS206]相関関係解析部223は、稼働実績管理表212から、ステップS204の探索で見つけ出された加工ジョブの実行時間を抽出する。
[ステップS207]相関関係解析部223は、加工ジョブの実行時間の統計値を、実行時間情報リスト214に登録する。例えば相関関係解析部223は、稼働実績管理表212に基づいて、加工ジョブの平均実行時間、最短実行時間、および最大実行時間を求める。平均実行時間は「実行時間の合計÷テスト回数」である。最短実行時間は、全実行時間の内、最も小さい値である。最大実行時間は、全実行時間の内、最も大きい値である。そして相関関係解析部223は、まず加工ジョブのジョブネット名、ジョブ名、平均実行時間、最短実行時間、最大実行時間の組を新たなレコードとして、実行時間情報リスト214に登録する。
[ステップS208]相関関係解析部223は、稼働実績管理表212内の加工ジョブに関するすべての稼働実績データから、実行時間と入力ファイルサイズとの組を取得する。
[ステップS209]相関関係解析部223は、加工ジョブの入力ファイルサイズ比率を求める。例えば相関関係解析部223は、加工ジョブの稼働実績データに示される入力ファイルサイズのうち、値が最も小さい入力ファイルサイズを基準ファイルサイズとする。次に相関関係解析部223は、加工ジョブの稼働実績データに示されるすべての入力ファイルサイズについて、入力ファイルサイズ比率「入力ファイルサイズ/基準ファイルサイズ」を計算する。そして相関関係解析部223は、計算した入力ファイルサイズ比率を、稼働実績管理表212に設定する。
[ステップS210]相関関係解析部223は、加工ジョブの実行時間比率を求める。例えば相関関係解析部223は、加工ジョブの稼働実績データに示される実行時間のうち、値が最も小さい実行時間を基準実行時間とする。次に相関関係解析部223は、加工ジョブの稼働実績データに示されるすべての実行時間について、実行時間比率「実行時間/基準実行時間」を計算する。そして相関関係解析部223は、計算した実行時間比率を、稼働実績管理表212に設定する。
[ステップS211]相関関係解析部223は、相関値を求める。例えば相関関係解析部223は、加工ジョブの稼働実績データごとに、その稼働実績データから求められた入力ファイルサイズ比率と実行時間比率との相関値「実行時間比率/入力ファイルサイズ比率」を求める。そして相関関係解析部223は、計算した相関値を、稼働実績管理表212に設定する。この相関値は、入力ファイルサイズの増加量に対する、実行時間の増加量を表している。
[ステップS212]相関関係解析部223は、加工ジョブの相関値の平均値を計算する。そして相関関係解析部223は、相関値の平均値を稼働実績管理表212に設定する。
ステップS209〜S212の処理により、稼働実績管理表212が更新される。
図22は、更新された稼働実績管理表の一例を示す図である。図22に示すように、図8に示した稼働実績管理表212に対して、入力ファイルサイズ比率、実行時間比率、および相関値の欄が追加されている。入力ファイルサイズ比率は、稼働実績データに示される入力ファイルサイズの基準ファイルサイズに対する比率である。実行時間比率は、稼働実績データに示される実行時間の基準実行時間に対する比率である。相関値は、実行時間比率を入力ファイルサイズ比率で除算した値である。また相関値の欄には、稼働実績データとは別に、相関値の平均値(平均相関値)が設定されている。
以下、図21の説明に戻る。
[ステップS213]相関関係解析部223は、加工ジョブが指定された時間内に処理可能な入力ファイルのサイズを求めるための相関関係式を作成する。例えば相関関係解析部223は、基準実行時間、基準ファイルサイズ、平均相関値を用いて、相関関係式を作成する。相関関係式は、加工ジョブを実行可能な時間を「&time(変数)」とし、&timeを基準実行時間と平均相関値とで除算した結果に、基準ファイルサイズを乗算する式である。具体的には以下の通りである。
相関関係式「&time/基準実行時間/平均相関値×基準ファイルサイズ」
例えば、図22の例であれば、相関関係式は「&time/611秒/1.043838×1.33GB」となる。運用時に加工ジョブの実行に当てられる時間を「&time」に代入して、相関関係式を計算すると、その時間で処理可能な入力データ量が算出できる。また、相関関係式の計算結果が抽出ジョブの出力データ量となるような「&time」の値を逆算することもできる。このとき得られた「&time」は、出力データ量を加工ジョブが処理するのに要する時間(実行予測時間)を表している。相関関係解析部223は、作成した相関関係式を、ジョブ定義情報211に設定する。
図23は、相関関係式が設定されたジョブ定義情報の一例を示す図である。図23に示すように、抽出ジョブ判定フラグが「ON」のジョブに対応付けて、相関関係式が設定される。
以下、図21の説明に戻る。
[ステップS214]相関関係解析部223は、すべての加工ジョブを処理したか否かを判断する。すべての加工ジョブを処理した場合、処理がステップS215に進められる。未処理の加工ジョブがある場合、処理がステップS205に進められる。
[ステップS215]相関関係解析部223は、ジョブ定義情報211に登録されているすべてのジョブについて処理したか否かを判断する。未処理のジョブがあれば、処理がステップS201に進められる。すべてのジョブの処理が完了していれば、相関関係式導出処理が終了する。
このような手順で、抽出ジョブと加工ジョブとの間の相関関係式が導出される。なお、加工ジョブの探索手順は以下の通りである。
図24は、加工ジョブ探索処理の手順の一例を示すフローチャートである。
[ステップS221]相関関係解析部223は、抽出ジョブのすべての出力ファイルを取得する。例えば相関関係解析部223は、ジョブ定義情報211を参照し、抽出ジョブの出力ファイルの識別情報を取得する。
[ステップS222]相関関係解析部223は、ジョブ定義情報211からジョブの情報を1レコード取得する。
[ステップS223]相関関係解析部223は、抽出ジョブの出力ファイルの識別情報が、取得したレコードの入力ファイルの識別情報と一致するか否かを判断する。一致する場合、処理がステップS224に進められる。一致しない場合、処理がステップS225に進められる。
[ステップS224]相関関係解析部223は、取得したレコードに示されるジョブを、加工ジョブであると認識する。
[ステップS225]相関関係解析部223は、ジョブ定義情報211に登録されているすべてのジョブについて処理したか否かを判断する。すべてのジョブについて処理が終了した場合、加工ジョブ探索処理が終了する。未処理のジョブがあれば、処理がステップS222に進められる。
以上のようにして、テスト環境のサーバ200において、抽出ジョブが特定され、さらに抽出ジョブと加工ジョブとの間の相関関係を示す相関関係式が求められる。求められた情報を用いて、バッチ業務の運用時のジョブ遅延検知が行われる。例えば、管理者は、テスト環境のサーバ200に保持している管理DB210の情報を、運用環境のサーバ100に転送する。
図25は、管理DBの情報転送の一例を示す図である。テスト環境のサーバ200では、管理DB210内の情報をエキスポートし、運用環境のサーバ100に送信する。運用環境のサーバ100では、受信した情報を管理DB110にインポートする。サーバ100では、バッチ業務のジョブを実行する際に管理DB110に保存された情報を参照することで、ジョブの遅延検知を行うことができる。
次に、運用環境のサーバ100で実行される処理について詳細に説明する。
図26は、運用環境で動作するサーバの機能を示す図である。サーバ100は、管理DB110、ジョブ管理部120、アプリケーション記憶部130、業務データ記憶部140、およびアプリケーション実行部150を有している。
管理DB110は、ジョブ定義情報111、稼働実績管理表112、相関関係表113、実行時間情報リスト114、および監視対象ジョブリスト115を格納する。ジョブ定義情報111の内容は、図23に示したジョブ定義情報211と同様である。稼働実績管理表112の内容は、図22に示した稼働実績管理表212と同様である。相関関係表113の内容は、図9に示した相関関係表213と同様である。実行時間情報リスト114の内容は、図10に示した実行時間情報リスト214と同様である。監視対象ジョブリスト115は、遅延監視の対象とするジョブ(監視対象ジョブ)のリストである。
ジョブ管理部120は、予め指定されたバッチ業務のジョブの実行、および遅延検知を行う。そのためにジョブ管理部120は、監視対象ジョブ設定部121、ジョブ実行制御部122、および遅延予測部123を有する。
監視対象ジョブ設定部121は、遅延監視の対象とするジョブの設定、およびそのジョブの終了予定時刻の設定を行う。例えば監視対象ジョブ設定部121は、管理者が使用する端末装置31に実行時間情報リスト114を送信し、加工ジョブに対する終了予定時刻の入力を受け付ける。監視対象ジョブ設定部121は、終了予定時刻が入力された加工ジョブを、監視対象ジョブとする。そして監視対象ジョブ設定部121は、監視対象ジョブリスト115を生成し、管理DB110に格納する。
ジョブ実行制御部122は、運用中のバッチ業務におけるジョブを、ジョブネットに従った順番で実行する。なおバッチ業務のジョブネットは、予めサーバ100に設定されている。
遅延予測部123は、バッチ業務におけるジョブの実行中に、ジョブの遅延の発生を予測する。例えば遅延予測部123は、監視対象ジョブの前に実行される抽出ジョブの出力ファイルのデータ量に基づいて、監視対象ジョブに設定された終了予定時刻までに監視対象ジョブの実行を終了できるか否かを予測する。そして遅延予測部123は、終了予定時刻までに監視対象ジョブを終了できないと予測した場合に、アラームメッセージを出力する。
アプリケーション記憶部130、業務データ記憶部140、およびアプリケーション実行部150は、それぞれ図6に示したテスト環境のサーバ200における同名の要素と同じ機能を有している。
次に、運用環境で動作するサーバ100における処理手順について説明する。
図27は、本運用の処理手順の一例を示すフローチャートである。
[ステップS301]監視対象ジョブ設定部121は、監視対象ジョブ設定処理を行う。この処理の詳細は後述する(図28参照)。
[ステップS302]ジョブ実行制御部122は、バッチ業務の開始時刻になったか否かを判断する。なおバッチ業務の開始時刻は予め設定されている。開始時刻になった場合、処理がステップS303に進められる。開始時刻になっていなければ、ステップS302の処理が繰り返される。
[ステップS303]ジョブ実行制御部122は、バッチ業務の開始時刻になると、アプリケーション実行部150に対して、ジョブネットに示される順にジョブの実行を指示する。この指示により、アプリケーション実行部150がジョブを実行する。
[ステップS304]遅延予測部123は、遅延予測処理を行う。遅延予測処理は、ジョブの実行が開始されると、実行中のジョブの実行状況に基づき、次に実行されるジョブに遅延が発生するかどうかを予測する処理である。遅延予測処理の詳細は後述する(図33参照)。
なお第2の実施の形態では、実行しているジョブが抽出ジョブであれば、アラームを出力する場合を除き、ジョブが終了するまで遅延予測処理が実行される。遅延予測処理でアラームが出力されると、ジョブの実行の終了を待たずに、遅延予測処理が終了する。また、実行しているジョブが抽出ジョブでなければ、ジョブの実行終了を待たずに、遅延予測処理が終了する。
[ステップS305]ジョブ実行制御部122は、ジョブの実行が終了したか否かを判断する。例えばアプリケーション実行部150からジョブ実行終了の応答が返されたとき、ジョブの実行が終了したものと判断する。ジョブの実行が終了した場合、処理がステップS306に進められる。ジョブの実行が終了していなければ、ジョブ実行制御部122はステップS305を繰り返し、ジョブの終了を待つ。
[ステップS306]ジョブ実行制御部122は、バッチ業務が終了したか否かを判断する。例えばジョブ実行制御部122は、ジョブネットにおける最後のジョブの実行が終了した場合、バッチ業務が終了したと判断する。バッチ業務が終了した場合、処理が終了する。バッチ業務における未実行のジョブがあれば、処理がステップS303に進められ、次のジョブが実行される。
このような手順でバッチ業務が実行される。
次に監視対象ジョブ設定処理について詳細に説明する。
図28は、監視対象ジョブ設定処理の手順の一例を示すフローチャートである。
[ステップS311]監視対象ジョブ設定部121は、実行時間情報リスト114の監視対象候補を、最大実行時間でソートする。
[ステップS312]監視対象ジョブ設定部121は、ユーザ(例えばシステムの管理者)が使用する端末装置31に監視対象候補一覧画面を表示する。
[ステップS313]監視対象ジョブ設定部121は、端末装置31を介して、ユーザからの監視対象ジョブの指定、および監視対象ジョブの終了予定時刻の入力を受け付ける。
[ステップS314]監視対象ジョブ設定部121は、入力された終了予定時刻を、ジョブ定義情報111に格納する。
[ステップS315]監視対象ジョブ設定部121は、監視対象ジョブリスト115を作成する。例えば監視対象ジョブ設定部121は、相関関係表113に設定されたレコードをコピーする。そして監視対象ジョブ設定部121は、コピーしたレコードに、ジョブ定義情報111に示される監視対象ジョブの終了予定時刻と相関関係式とを追加し、監視対象ジョブリストとする。
このようにして監視対象ジョブリストが生成される。例えば、ステップS311のソート処理により、図29に実行時間情報リスト114のレコードがソートされる。
図29は、ソートされた実行時間情報リストの一例を示す図である。図29に示すように、実行時間情報リスト114内のレコードが、最大実行時間の値が大きいほど上位に並べ替えられている。最大実行時間が同じ値のレコードが複数ある場合、例えば平均実行時間の値が大きいほど上位に並べ替えられる。
ソート後の実行時間情報リスト114に基づいて、端末装置31に監視対象候補一覧画面が表示される。
図30は、監視対象候補一覧画面の一例を示す図である。監視対象候補一覧画面50には、監視対象候補表示部51と設定ボタン52とが設けられている。
監視対象候補表示部51には、実行時間情報リスト114の内容が表示されている。すなわち、監視対象候補表示部51には、加工ジョブの一覧が、最大実行時間の値が大きい順に表示されている。監視対象候補表示部51に示された加工ジョブが、監視対象候補である。
また監視対象候補表示部51には、加工ジョブごとに、終了予定時刻の設定欄が設けられている。ユーザは、監視対象とする加工ジョブに対して終了予定時刻を入力することができる。
図31は、終了予定時刻を入力した監視対象候補一覧画面の例を示す図である。終了予定時刻を入力後、ユーザは設定ボタン52を押下する。
設定ボタン52は、入力された終了予定時刻の設定をサーバ100に指示するためのボタンである。設定ボタン52が押下されると、端末装置31からサーバ100に、監視対象とする加工ジョブの終了予定時刻が送信される。
サーバ100では、送信された終了予定時刻に基づいて、監視対象ジョブリスト115が生成される。
図32は、監視対象ジョブリストの一例を示す図である。監視対象ジョブリスト115は、例えば相関関係表113に終了予定時刻と相関関係式との欄を追加したデータ構造となっている。終了予定時刻の欄には、監視対象ジョブの終了予定時刻が設定される。相関関係式の欄には、監視対象ジョブの相関関係式が設定される。
このような監視対象ジョブリスト115が作成された後、バッチ業務の開始時刻になると、ジョブネットに示される順でジョブが実行されると共に、遅延予測処理が行われる。
図33は、遅延予測処理の手順の一例を示すフローチャートである。
[ステップS321]遅延予測部123は、ジョブ定義情報111を参照し、実行対象のジョブの抽出ジョブ判定フラグが「ON」か否かを判断する。抽出ジョブ判定フラグが「ON」であれば、処理がステップS322に進められる。抽出ジョブ判定フラグが「OFF」であれば、遅延予測処理が終了する。
[ステップS322]遅延予測部123は、実行しているジョブ(抽出ジョブ)が抽出したデータサイズを取得し、そのデータサイズを、実行している抽出ジョブに対応付けて監視対象ジョブリスト115に格納する。
[ステップS323]遅延予測部123は、監視対象ジョブリスト115を参照し、実行している抽出ジョブに対応付けて、その抽出ジョブの次に実行する加工ジョブ(監視対象ジョブ)の終了予定時刻が設定されているか否かを判断する。終了予定時刻が設定されていれば、処理がステップS324に進められる。終了時刻が設定されていなければ、処理がステップS330に進められる。
[ステップS324]遅延予測部123は、終了時刻が設定されている場合、終了予定時刻までの差分時間を算出する。例えば遅延予測部123は、監視対象ジョブリスト115に示されている終了予定時刻から現在の時刻を減算し、差分時間とする。
[ステップS325]遅延予測部123は、実行している抽出ジョブの相関関係式を演算する。例えば遅延予測部123は、相関関係式を監視対象ジョブリスト115から取得する。そして遅延予測部123は、相関関係式の「&time」に差分時間を代入して、演算する。演算により、差分時間内で加工ジョブが処理可能なデータ量が得られる。
[ステップS326]遅延予測部123は、相関関係式の演算結果を、データサイズの上限値として、監視対象ジョブリスト115に格納する。
[ステップS327]遅延予測部123は、抽出データサイズが上限値より大きいか否かを判断する。抽出データサイズが上限値より大きい場合、処理がステップS333に進められる。抽出データサイズが上限値以下であれば、処理がステップS328に進められる。
[ステップS328]遅延予測部123は、ジョブが終了したか否かを判断する。ジョブが終了した場合、遅延予測処理が終了する。ジョブが終了していなければ、処理がステップS329に進められる。
[ステップS329]遅延予測部123は、1分間だけ待機する。その後、処理がステップS322に進められ、再度、抽出データサイズが取得される。
[ステップS330]実行している抽出ジョブに終了予定時刻が設定されていない場合、遅延予測部123は、実行時間情報リスト114から、その抽出ジョブに対応する加工ジョブの最大実行時間を取得する。
[ステップS331]遅延予測部123は、加工ジョブの実行予測時間を、相関関係式に基づいて算出する。例えば遅延予測部123は、相関関係式の計算結果が、ステップS322で取得した抽出データサイズとなるような、変数「&time」の値を求める。得られた値が、実行予測時間となる。例えば相関関係式が「&time/611/1.043838×1.33GB」であれば、「入力ファイルサイズ/1.33GB×611秒×1.043838」の計算結果が、実行予測時間となる。
[ステップS332]遅延予測部123は、実行予測時間が最大実行時間の10倍よりも大きいか否かを判断する。実行予測時間が最大実行時間の10倍より大きければ、処理がステップS333に進められる。実行予測時間が最大実行時間の10倍以下であれば、処理がステップS328に進められる。
[ステップS333]遅延予測部123は、終了予定時刻が設定されている場合において、抽出データサイズが上限値より大きければ、加工ジョブが遅延するものと予測し、アラームを出力する。また遅延予測部123は、終了予定時刻が設定されていない場合において、実行予測時間が最大実行時間の10倍より大きければ、加工ジョブが遅延するものと予測し、アラームを出力する。その後、遅延予測処理が終了する。
このようにして、遅延予測が行われる。なお図33に示すように、第2の実施の形態では、終了予定時刻が設定されていない監視対象ジョブが存在することを許容している。これは、監視対象候補一覧画面50には、抽出ジョブの出力ファイルを入力とするジョブすべてが一覧表示されるので、監視対象として重要ではないジョブも含め、大量のジョブが表示される可能性があるためである。監視対象として重要ではないジョブは、例えば、最大実行時間や平均実行時間が非常に短いジョブである。大量のジョブが一覧表示されたときに、すべてのジョブに対して終了予定時刻を登録するのは現実的ではない。そこで、例えば入力ファイルが大きくなってもジョブの実行時間があまり長くならないことが分かっている監視対象ジョブについては、終了予定時刻を設定しなくてもよい。
図34は、遅延予測処理中の監視対象ジョブリストの一例を示す図である。遅延予測処理が実施されると、監視対象ジョブリスト115には、抽出データサイズとデータサイズの上限値との欄が追加される。抽出データサイズの欄には、抽出ジョブで抽出したデータ量が設定される。データサイズの上限値の欄には、終了予測時刻までに加工ジョブで処理できるデータ量の上限値が設定される。
抽出データサイズは、抽出ジョブの処理が進行するのに従って増加する。他方、データサイズの上限値は、抽出ジョブの処理が進行するのに従って減少する(終了予定時刻までの残り時間が減るため)。抽出データサイズがデータサイズの上限値以下の間に、抽出ジョブが終了すれば、アラームは出力されない。
しかし、抽出ジョブによって想定以上のデータ量の抽出が行われると、抽出データサイズがデータサイズの上限値を上回る場合がある。
図35は、アラーム出力時の監視対象ジョブリストの一例を示す図である。図35の例では、ジョブ名「job001」の抽出ジョブについて、抽出データサイズが、データサイズの上限値より大きくなっている。
このような状況が確認されると、遅延予測部123によってアラームが出力される。出力されるアラームは、例えばユーザが使用する端末装置31の画面に表示される。
図36は、アラーム表示画面の一例を示す図である。アラーム表示画面60には、検知時刻、遅延が発生するジョブネット名、実行ジョブ名、監視対象ジョブ名、監視対象ジョブ実行予測時間、監視対象ジョブ実行終了見込み時刻、監視対象ジョブの状態が含まれる。
検知時刻は、遅延が発生するとの予測を検知した時刻である。ジョブネット名は、遅延の発生が見込まれるジョブが属するジョブネットの名称である。実行ジョブ名は、実行中のジョブ(遅延の発生が見込まれるジョブに先行して実行されている抽出ジョブ)の名称である。監視対象ジョブ名は、遅延の発生が見込まれるジョブの名称である。監視対象ジョブ実行予測時間は、遅延の発生が見込まれるジョブの実行に要する時間の予測値である。監視対象ジョブ実行終了見込み時刻は、遅延の発生が見込まれるジョブの実行終了時刻の予測値である。監視対象ジョブの状態は、遅延の発生が見込まれるジョブの現在の状態である。例えば、先行するジョブの実行中であれば、遅延の発生が見込まれるジョブの状態は「実行待ち」となる。
またアラーム表示画面60には、例えばジョブの実行遅延が予測されることに加え、対処を促すメッセージが表示される。さらに、アラーム表示画面60には、実行中のジョブや、遅延の発生が見込まれるジョブの後続ジョブ一覧が表示される。実行中のジョブの後続ジョブ一覧には、例えば実行中のジョブの抽出ファイルを用いて、遅延の発生が見込まれるジョブと並列で実行する他のジョブがあった場合に、そのジョブが表示される。遅延の発生が見込まれるジョブの後続ジョブ一覧には、例えば遅延の発生が見込まれるジョブの後に順次実行されるジョブが、実行順に並べて所定数表示される。
このようなアラーム表示画面をユーザが確認することで、ジョブの実行遅延の発生をユーザが認識し、バッチ業務の実行可能期間内にジョブネットのジョブを終了させるための対策を採ることができる。例えば、遅延の発生が見込まれるジョブの後続ジョブの中に、翌日に実行してもよいジョブがあれば、そのジョブを本日の実行対象から除外することができる。
以上説明したように、第2の実施の形態によれば、バッチ業務の遅延を早期に検知し、早い段階で遅延検知が可能となり、翌日オンライン停止など業務影響を抑止できる。そのため、大きなデータに対する長時間走行ジョブを実行開始前に遅延を予測検知できる。また突発的なデータ量増加があっても、早期に遅延を予測検知できる。
また、第2の実施の形態では、監視対象とするジョブ(抽出ジョブの抽出ファイルを使用する加工ジョブ)を自動検出できる。そのため、人手で稼働実績を分析するようなユーザの手間を省くことができると共に、監視対象として適切なジョブについて、遅延監視を行うことができる。
しかも、第2の実施の形態では、抽出ジョブの複数の特性について満足しているかどうか評価し、抽出ジョブであるかどうかを判定している。そのため、抽出ジョブを高精度に特定することができる。
さらに第2の実施の形態では、ファイル受渡しをするジョブの組すべてについて相関関係を導出するのではなく、抽出ジョブと、その抽出ジョブが出力したファイルを入力とする加工ジョブとの組についてのみ相関関係を導出している。これにより、相関関係導出の処理負荷を低減できる。ここで、相関関係の導出に利用する稼働履歴データは、これから本運用環境へリリースする最新アプリケーションに基づくジョブに限定して採取することで、相関関係の精度を落とさないようにすることができる。
また、監視対象を抽出ジョブに限定したことで、闇雲にすべてのジョブの出力ファイルサイズから遅延の発生を予測する場合に比べ、リソース(CPUやメモリ)の消費を抑止することができる。
なお第2の実施の形態ではテスト環境のサーバ200と運用環境のサーバ100とを別で設けているが、1つのサーバにテスト環境と運用環境とを実装してもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1a,1b,・・・ ジョブ
2a,2b 入力ファイル
3a,3b 出力ファイル
10 情報処理装置
11 特定手段
12 期限設定手段
13 監視手段
14 予測手段
15 アラーム

Claims (11)

  1. コンピュータに、
    実行予定の複数のジョブの中から、入力ファイルからの抽出条件に合致するレコードの抽出、および抽出したレコードの出力を行うジョブを、第1のジョブとして特定し、
    前記第1のジョブの実行中に、前記第1のジョブの実行により出力されたデータ量を監視し、
    前記第1のジョブの実行により出力されたデータ量に基づいて、前記第1のジョブの実行により出力されたデータを用いた処理を行う第2のジョブの実行が、予め設定された期限までに終了できるかどうかを予測する、
    処理を実行させるプログラム。
  2. ジョブの特定では、ジョブを実行した場合に、入力ファイル内のすべてのレコードを、所定量ずつ読み込むか否かに基づいて、該ジョブを前記第1のジョブとして特定するかどうかを判断することを特徴とする請求項記載のプログラム。
  3. ジョブの特定では、ジョブを実行した場合に、入力ファイル内の複数のレコードのうち、前記抽出条件に適合するレコードを、加工せずに出力するか否かに基づいて、該ジョブを前記第1のジョブとして特定するかどうかを判断することを特徴とする請求項1または2記載のプログラム。
  4. ジョブの特定では、ジョブの実行によりデータの出力先となるファイルの識別情報が、前記抽出条件を定義するファイルで指定されているか否かに基づいて、該ジョブを前記第1のジョブとして特定するかどうかを判断することを特徴とする請求項1乃至3のいずれかに記載のプログラム。
  5. ジョブの特定では、ジョブを実行した場合に、前記抽出条件を定義するファイルが1回の読み込み処理で読み込まれたか否かに基づいて、該ジョブを前記第1のジョブとして特定するかどうかを判断することを特徴とする請求項1乃至4のいずれかに記載のプログラム。
  6. 予測では、前記第1のジョブの実行により出力されたデータ量と、前記期限までに前記第2のジョブの実行により処理を施すことが可能なデータ量とを比較することを特徴とする請求項1乃至のいずれかに記載のプログラム。
  7. 予測では、前記第1のジョブの実行により出力されたデータ量が、前記期限までに前記第2のジョブの実行により処理を施すことが可能なデータ量を超えた時点で、アラームを出力することを特徴とする請求項1乃至のいずれかに記載のプログラム。
  8. 予測では、前記第1のジョブの実行により出力されたデータ量に基づいて、前記第2のジョブの実行時間を予測し、予測された該実行時間に基づいて、予め設定された期限までに終了できるかどうかを予測することを特徴とする請求項1乃至のいずれかに記載のプログラム。
  9. 前記コンピュータに、さらに、
    前記第1のジョブの実行により出力されるレコードを用いた処理を前記第2のジョブとして特定し、
    特定された前記第2のジョブを表示して、前記第2のジョブの前記期限の入力を受け付ける、
    処理を実行させることを特徴とする請求項1乃至8のいずれかに記載のプログラム。
  10. コンピュータが、
    実行予定の複数のジョブの中から、入力ファイルからの抽出条件に合致するレコードの抽出、および抽出したレコードの出力を行うジョブを、第1のジョブとして特定し、
    前記第1のジョブの実行中に、前記第1のジョブの実行により出力されたデータ量を監視し、
    前記第1のジョブの実行により出力されたデータ量に基づいて、前記第1のジョブの実行により出力されたデータを用いた処理を行う第2のジョブの実行が、予め設定された期限までに終了できるかどうかを予測する、
    ジョブ遅延検知方法。
  11. 実行予定の複数のジョブの中から、入力ファイルからの抽出条件に合致するレコードの抽出、および抽出したレコードの出力を行うジョブを、第1のジョブとして特定する特定手段と、
    前記第1のジョブの実行中に、前記第1のジョブの実行により出力されたデータ量を監視する監視手段と、
    前記第1のジョブの実行により出力されたデータ量に基づいて、前記第1のジョブの実行により出力されたデータを用いた処理を行う第2のジョブの実行が、予め設定された期限までに終了できるかどうかを予測する予測手段と、
    を有する情報処理装置。
JP2013154768A 2013-07-25 2013-07-25 ジョブ遅延検知方法、情報処理装置、およびプログラム Expired - Fee Related JP6260130B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013154768A JP6260130B2 (ja) 2013-07-25 2013-07-25 ジョブ遅延検知方法、情報処理装置、およびプログラム
US14/331,804 US9715409B2 (en) 2013-07-25 2014-07-15 Job delay detection method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013154768A JP6260130B2 (ja) 2013-07-25 2013-07-25 ジョブ遅延検知方法、情報処理装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015026197A JP2015026197A (ja) 2015-02-05
JP6260130B2 true JP6260130B2 (ja) 2018-01-17

Family

ID=52391621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013154768A Expired - Fee Related JP6260130B2 (ja) 2013-07-25 2013-07-25 ジョブ遅延検知方法、情報処理装置、およびプログラム

Country Status (2)

Country Link
US (1) US9715409B2 (ja)
JP (1) JP6260130B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095132A (ja) * 2013-11-13 2015-05-18 富士通株式会社 情報処理システム、情報処理システムの制御方法及び管理装置の制御プログラム
WO2016132497A1 (ja) * 2015-02-19 2016-08-25 株式会社日立製作所 データ分析システム及びデータ分析方法
JP2016189101A (ja) * 2015-03-30 2016-11-04 鉄道情報システム株式会社 バッチ処理システム、バッチ処理方法、バッチ処理プログラムおよびバッチ処理プログラムが記憶されたコンピュータで読み取り可能な記憶媒体
JP6686602B2 (ja) * 2016-03-24 2020-04-22 富士通株式会社 制御方法、制御プログラムおよび制御装置
JP6790552B2 (ja) 2016-07-28 2020-11-25 富士通株式会社 データ特定プログラム、データ特定方法、及びデータ特定装置
FR3061571B1 (fr) * 2016-12-29 2019-04-19 Bull Sas Procede et systeme de surveillance de traitements par lots d'applications executees dans une infrastructure informatique
CN107688531B (zh) * 2017-06-20 2019-02-22 平安科技(深圳)有限公司 数据库集成测试方法、装置、计算机设备及存储介质
US10810046B2 (en) * 2017-08-14 2020-10-20 Tata Consultancy Services Limited Automated system for optimizing batch processing time
CN110381146B (zh) * 2019-07-23 2021-09-03 腾讯科技(深圳)有限公司 批量操作处理方法、装置及存储介质
JP7449779B2 (ja) * 2020-06-03 2024-03-14 株式会社日立製作所 ジョブ管理方法、及びジョブ管理装置
US11487578B2 (en) 2020-09-14 2022-11-01 Shopify Inc. Systems and methods for dynamic scheduling of data processing
CN113254176B (zh) * 2021-05-28 2023-02-07 平安普惠企业管理有限公司 项目管理方法、装置、计算机设备及存储介质
EP4163790B1 (en) * 2021-10-05 2026-01-28 Tata Consultancy Services Limited Method and system for predicting batch processes
WO2023130300A1 (en) * 2022-01-06 2023-07-13 Citrix Systems, Inc. Systems and methods for completing tasks
US12164366B2 (en) * 2022-12-08 2024-12-10 Dell Products L.P. Disk failure prediction using machine learning
CN117520110A (zh) * 2023-12-11 2024-02-06 北京火山引擎科技有限公司 基线监控告警的方法、装置、计算机设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3337131B2 (ja) * 1999-02-05 2002-10-21 セイコーエプソン株式会社 プリンタの制御装置およびタスク制御方法並びにプログラムを記録した記録媒体
US20030005023A1 (en) * 2001-06-01 2003-01-02 John Gilbert Batch access method and system
US7086063B1 (en) * 2003-03-25 2006-08-01 Electric Cloud, Inc. System and method for file caching in a distributed program build environment
JP4102695B2 (ja) * 2003-03-28 2008-06-18 株式会社日本総合研究所 バッチジョブ管理システム及びバッチジョブ管理プログラム
US7721288B2 (en) * 2004-08-31 2010-05-18 Sap Ag Organizing transmission of repository data
US8832706B2 (en) * 2006-12-22 2014-09-09 Commvault Systems, Inc. Systems and methods of data storage management, such as dynamic data stream allocation
US8181178B2 (en) * 2008-08-14 2012-05-15 Yahoo! Inc. Online batch execution
EP2338112B1 (en) * 2008-10-15 2015-10-14 Oracle International Corporation Batch processing system
JP2011053995A (ja) * 2009-09-03 2011-03-17 Hitachi Ltd データ処理制御方法および計算機システム
JP5463885B2 (ja) * 2009-12-07 2014-04-09 富士通株式会社 バッチジョブ処理時間推定プログラム、方法及び装置
US8473951B2 (en) * 2009-12-30 2013-06-25 Bmc Software, Inc. Method and system for traversing in reverse chronological order along a critical path of a plurality of jobs, and reducing time gaps between jobs until an estimated end time of the last job is less than or equal to a target end time
JP2012128770A (ja) 2010-12-17 2012-07-05 Hitachi Ltd バッチジョブ管理サーバ、バッチジョブ処理システム及びバッチジョブ実行方法
US9307048B2 (en) * 2010-12-28 2016-04-05 Microsoft Technology Licensing, Llc System and method for proactive task scheduling of a copy of outlier task in a computing environment
JP5298150B2 (ja) 2011-02-17 2013-09-25 みずほ情報総研株式会社 ジョブシミュレーションシステム、ジョブシミュレーション方法及びジョブシミュレーションプログラム
US9152469B2 (en) * 2013-01-28 2015-10-06 Hewlett-Packard Development Company, L.P. Optimizing execution and resource usage in large scale computing

Also Published As

Publication number Publication date
JP2015026197A (ja) 2015-02-05
US20150033233A1 (en) 2015-01-29
US9715409B2 (en) 2017-07-25

Similar Documents

Publication Publication Date Title
JP6260130B2 (ja) ジョブ遅延検知方法、情報処理装置、およびプログラム
US8516499B2 (en) Assistance in performing action responsive to detected event
JP5874936B2 (ja) 運用管理装置、運用管理方法、及びプログラム
US10713107B2 (en) Detecting a possible underlying problem among computing devices
CN108255620B (zh) 一种业务逻辑处理方法、装置、业务服务器及系统
US10977108B2 (en) Influence range specifying method, influence range specifying apparatus, and storage medium
JP7218797B2 (ja) 情報処理装置およびapi使用履歴表示プログラム
US12124353B2 (en) Operation logs acquiring device, operation logs acquiring method, and operation logs acquiring program
CN112433888A (zh) 数据处理方法及装置、存储介质和电子设备
US20150278656A1 (en) Job discrimination method and device
CN102792278A (zh) 计算环境中的诊断数据捕获
KR102936701B1 (ko) 장애대응방안 제공방법 및 이를 이용하는 장애대응서버
CN119668813A (zh) 一种批量中断任务的处理方法、装置、设备、介质及产品
JP6845657B2 (ja) 管理サーバ、管理方法及びそのプログラム
CN114020524B (zh) 一种存储系统的容灾方法、装置、设备和介质
JP2021135541A (ja) モデル生成装置、モデル生成方法、及びモデル生成プログラム
JP5623950B2 (ja) It障害予兆検知装置及びプログラム
JP2017129970A (ja) 管理装置,管理方法および管理プログラム
JP2020155008A (ja) 制御方法,情報処理装置および制御プログラム
CN116069601A (zh) 一种卡顿分析数据的获取方法、装置、设备及存储介质
JP2018063518A5 (ja)
CN114924832A (zh) 虚拟机调度方法、电子设备和存储介质
JP2009181494A (ja) ジョブ処理システムおよびジョブ情報取得方法
JP2022140929A (ja) 情報処理プログラム、情報処理方法、および情報処理装置
JP6508202B2 (ja) 情報処理装置、情報処理方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171127

R150 Certificate of patent or registration of utility model

Ref document number: 6260130

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees