JP5619179B2 - 計算機システム、ジョブ実行管理方法、及びプログラム - Google Patents

計算機システム、ジョブ実行管理方法、及びプログラム Download PDF

Info

Publication number
JP5619179B2
JP5619179B2 JP2012542761A JP2012542761A JP5619179B2 JP 5619179 B2 JP5619179 B2 JP 5619179B2 JP 2012542761 A JP2012542761 A JP 2012542761A JP 2012542761 A JP2012542761 A JP 2012542761A JP 5619179 B2 JP5619179 B2 JP 5619179B2
Authority
JP
Japan
Prior art keywords
job
execution
sub
data
information
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
JP2012542761A
Other languages
English (en)
Other versions
JPWO2012063339A1 (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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Publication of JPWO2012063339A1 publication Critical patent/JPWO2012063339A1/ja
Application granted granted Critical
Publication of JP5619179B2 publication Critical patent/JP5619179B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、計算機システム、ジョブ実行管理方法及びプログラムに関し、例えば、ジョブネットワークを制御するための技術に関するものである。
金融・口座レコードの日次・月次処理などの大量データに対してはバッチ処理が行われる。このバッチ処理において重要な点は、終了時間保証である。バッチ処理が終わらないと、次の業務サービス開始に支障が生じてしまうからである。従って、バッチ処理には、大量データでも所定時間内に終了させる高速性や、確実に終了させるための信頼性・障害対応迅速化が求められている。また、バッチ処理には、TCO(Total Cost of Ownership)削減に必要な、低コスト化・運用容易化も求められている。
この点に関し、例えば特許文献1には、大量ジョブを集中的に制御し、ジョブの実行状況を容易に監視するために、複数のバッチジョブを関連付けしたジョブネット(ジョブネットワークともいう)を制御する方法(ジョブスケジュール方法)が開示されている。
一方、ジョブネットの実行結果を利用するサービスを所定の開始時刻に開始可能とするため、ジョブネットは所定時間内に終了させる必要がある。ところが、バッチジョブの処理時間は入出力するデータ量に依存するため、データが増大すると所定時間内にジョブネットを終了できなくなってしまう。この対策として、例えば、特許文献2には、データを分割し、分割したデータをそれぞれジョブに割り当てて複数の計算機上で並列処理させて大量データのバッチジョブ処理を高速化するジョブスケジュール方法が開示されている。特許文献2のジョブスケジュール方法では、あらかじめデータを分割して、分割数分のジョブ定義を生成し、分割したデータとジョブ定義との関係を並列処理管理テーブルに記録する。スケジュール時に並列処理管理テーブルを参照して実行するジョブを判定してそのジョブの識別データを含むジョブ定義をジョブ管理に与える。
特開2006−277696号公報 特開2002−14829号公報
ジョブネットの中には、大量データを処理するジョブが1つではなく、大量データの並び替えや加工をしながらジョブ間でデータを受け渡しして、同一のデータを複数のジョブで処理するジョブネットが存在する。
しかしながら、特許文献1を含む従来のジョブネットのジョブスケジュール方法では、大量データの分割データを処理する各ジョブ間の関係性が定義されておらず、後続ジョブにデータを割り当てるときに、先行ジョブの実行結果や実行場所が考慮されていない。このため、特定のジョブに関連する一部の正常レコードを更新して部分的に再実行する必要がある場合、ジョブネットを最初から実行し直すか、若しくは別のジョブを用意して部分的な更新データだけを処理するといった特殊な運用をする必要がある。したがって、再実行時の処理量が多くなったり、処理が煩雑になったりして、所定時間内にジョブを終了できないリスクが増大する。
また、特許文献2では、上述のように大量データを分割して並列処理させることについては開示しているが、ジョブネットに関する記述がない。このため、ジョブネット上でどのように分割データを処理してジョブの効率化を図るかについて全く考慮されていない。
本発明はこのような状況に鑑みてなされたものであり、ジョブネット内の1つないし複数のジョブに関連する一部のレコードを更新してジョブを再実行したい場合に、規定終了予定時間を超えるリスクを低減可能なジョブネットのジョブ実行管理技術を提供するものである。
上記課題を解決するために、本発明の計算機システムでは、マスタデータ管理情報として、分割キーごとにマスタデータの更新有無を管理する。マスタデータに更新があった場合にはジョブを再実行するが、ジョブ再実行時は更新されたマスタデータに対応する分割キーでのみデータ分割を行い、再実行対象のサブジョブを分割キー単位で局所化してジョブを再実行する。
また、当該計算機システムでは、ジョブ実行後又はジョブ実行中に、マスタデータを更新することができるようになっている。上述のように、マスタデータが更新された場合には、サブジョブが再実行されるが、そのサブジョブの対象である分割データを特定するときに、マスタデータの更新の有無を判断できる情報(更新有無のフラグ、履歴(修正履歴、修正用画面操作履歴、SQLの履歴、ジョブ参照画面からの誤り箇所確認操作など))から更新されたマスタデータに対応する分割キーを特定し、分割キーごとの更新有無をマスタデータ管理情報として管理する。
即ち、本発明による計算機システムは、ジョブを実行する複数のジョブ実行計算機と、マスタデータの分割単位を示す分割キーでマスタデータを分割して複数の分割データを生成し、当該複数の分割データのそれぞれに対してジョブネットを適用してサブジョブを実行するジョブ実行計算機を決定する管理計算機と、少なくともマスタデータとサブジョブの実行結果を格納する少なくとも1つのストレージ装置と、を有している。そして、管理計算機は、マスタデータに対する更新の有無に関する更新関連情報と、更新があった部分に対応する分割キーである更新分割キー情報を管理する。また、管理計算機は、サブジョブ実行後又はサブジョブ実行中に、マスタデータに対して更新がなされた場合、更新分割キー情報に対応する分割データを前記複数の分割データから特定する。さらに、管理計算機は、特定された分割データのみに対してジョブネットを適用してサブジョブを再実行するようにジョブ実行計算機に指示する。そして、ジョブ実行計算機は、管理計算機からのサブジョブ実行指示に応答して、特定された分割データのみに対してサブジョブを再実行する。
本発明によれば、マスタデータを更新した場合に、分割キー単位で特定のサブジョブのみを再実行可能となり、ジョブ全体の終了時間を保証することができると共に、ジョブ実行処理の効率を向上させることができる。
なお、上述した以外の課題、構成及び効果は、以下の本発明を実施するための形態および添付図面によって明らかになるものである。
本発明の実施形態による計算機システムの構成例を示す図である。 本実施形態の計算機システム1において実行されるジョブネットの処理の概要(例)を説明するための図である。 サブジョブの再実行の概念を説明するための図である。 ジョブネット情報管理テーブル100の構成例を示す図である。 ジョブ情報管理テーブル110の構成例を示す図である。 分割データ管理テーブル120の構成を示す図である。 実行サーバ管理テーブル130の構成例を示す図である。 マスタデータ管理テーブル140の構成例を示す図である。 ジョブスケジュール処理プログラム1000によるジョブスケジュール処理の内容を説明するためのフローチャートである。 ジョブ実行処理(ステップ905及び912)の詳細を説明するためのフローチャートである。 サブジョブスケジュール処理(サブジョブ実行処理)の詳細を説明するためのフローチャートである。 マスタデータ表示・編集処理の詳細を説明するためのフローチャートである。 マスタデータ表示画面例(図13A)及びマスタデータ編集画面例(図13B)を示す図である。
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
なお、以後の説明では「テーブル」という表現にて本発明の情報を説明する場合もあるが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことが可能である。
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
以後の説明では「プログラム」を主語として説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、「プログラム」を「モジュール」と読み替えても良い。なお、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
<計算機システムの構成>
図1は、本発明の実施形態による計算機システム1のハードウェア構成を示す図である。計算機システム1は、ジョブのスケジュール処理等、ジョブの管理処理を実行するスケジュールサーバ(管理サーバ、管理計算機ともいう)10と、スケジュールサーバ10からの指示を受けてジョブネットを構成する1つ以上のジョブのサブジョブを実行する少なくとも1つの実行サーバ20a乃至20n(実行サーバ(ジョブ実行計算機)1乃至nともいう)と、を有し、それらがネットワーク2を介して接続されている。また、スケジュールサーバ10には、マスタデータを格納する記憶装置15が接続されている。なお、ここで、ジョブネットとは、実行順序が定義され、一度のスケジュール要求で実行順序に従って実行する一連のジョブの集合をいう。ジョブネットにおいて、あるジョブの実行順序が前の(特に直前の)ジョブを先行ジョブと定義し、後の(直後の)ジョブを後続ジョブと定義する。また、サブジョブとは、処理対象であるマスタデータを分割して生成された分割データに対する、ジョブネットを構成する各ジョブの単位をいう。ジョブで処理するデータを分割して各サブジョブに割り当てるため、同一ジョブから生成されるサブジョブにおいては、処理対象の分割データは異なるがデータ処理の内容は同一となっている。
スケジュールサーバ10は、各種情報と処理プログラムを格納する主記憶装置11と、処理プログラムのコードを実際に解釈して実行したり、他の各処理を実行するCPU(Central Processing Unit)12と、実行サーバ20a乃至20nと通信を行うための通信インタフェース(I/F)13と、スケジュールサーバ10に接続される記憶装置15に対してデータの読み書きを実行するための入出力インタフェース(I/F)14と、を有している。
スケジュールサーバ10の主記憶装置11は、後述するジョブスケジュール処理を実行するためのジョブスケジュール処理プログラム1000と、データ編集・分割・表示処理プログラム1100と、ジョブネットを構成する各ジョブの情報を管理するジョブネット情報管理テーブル100と、各ジョブの出力ファイルの特徴を管理するジョブ情報管理テーブル110と、サブジョブの処理対象である各分割データを管理する分割データ管理テーブル120と、実行サーバの状態を管理する実行サーバ管理テーブル130と、マスタデータの更新状況を管理するマスタデータ管理テーブル140と、を格納する。なお、本実施形態では、ジョブスケジュール処理プログラム1000が、データ編集・分割・表示処理プログラム1100に対して、各サブジョブ実行結果やマスタデータのデータ編集・分割・表示処理を実行するように指示するようになっている。また、このデータ編集・分割・表示処理プログラム1100を各実行サーバに設け、実行サーバ側でマスタデータの分割・表示・編集処理を実行させるようにしても良い。この場合には、ジョブ実行する実行サーバ20は、マスタデータも併せて有していなければならない。
各実行サーバ20a乃至20nはそれぞれ、各種情報と処理プログラムを格納する主記憶装置21と、処理プログラムのコードを実際に解釈して実行したり、他の各処理を実行するCPU(Central Processing Unit)22と、スケジュールサーバ10と通信を行うための通信インタフェース(I/F)23と、スケジュールサーバ10に接続される記憶装置25a及び25b等に対してデータの読み書きを実行するための入出力インタフェース(I/F)24と、を有している。
主億記憶装置21は、後述するサブジョブの実行を制御するサブジョブ実行制御処理プログラム2000を格納する。
記憶装置25bは、例えば、ジョブネットの先頭ジョブ(例えば、図2におけるジョブA)に対する入力となる入力データファイル251と、ジョブネットの各ジョブの出力データである中間データファイル252と、を格納する。また、記憶装置25aは、例えば、各ジョブの出力データである中間データファイル252を格納する。入力データファイル251は、単一のファイルでもよく、事前にサブジョブごとに分割された分割ファイルであっても良い。中間データファイル252は、サブジョブごとに生成させる。
ネットワーク2としては、IPネットワーク、ストレージネットワーク、その他のいかなる種類のデータ通信用のネットワーク等が適用可能である。
<ジョブネット実行概要>
図2は、本実施形態の計算機システム1において実行されるジョブネットの処理の概要(例)を説明するための図である。
ここで、例えば、ジョブネット情報管理テーブル100に、5つのジョブ(分割ジョブ102、ジョブA103、ジョブB104、ジョブC105、ジョブD106)で構成されるジョブネット101が定義されているものとする。また、当該ジョブネットでは、ジョブA103の出力である中間データファイル252がジョブB104の入力となり、ジョブB104の出力である中間データファイル252がジョブCの入力となっているとする。すなわち、ジョブA103の入力データファイル251を分割ジョブ102によって生成された同一の分割データを、ジョブA103・ジョブB104・ジョブC105の3つのジョブにまたがって処理するものとする。例えば、ジョブAが日ごとのデータを月ごとのデータに変更する処理、ジョブBがその月ごとのデータを所定の条件でソートする処理、ジョブCが個人データを印刷する処理、ジョブDが処理結果を統合する処理に相当するものと設定することができる。
ジョブネット100が実行されるとき、ジョブスケジュール処理プログラム1000は、ジョブネット情報管理テーブル100の情報とジョブ情報管理テーブル110の情報に基づいて、分割データ管理テーブル120と実行サーバ管理テーブル130とを主記憶装置11内に生成し、ジョブ実行可能な(空き多重度が「0」ではない、つまり、ジョブを処理する余裕を有することを示す)実行サーバ20a乃至20nのいずれかにサブジョブ204の実行を依頼する。
サブジョブ実行の依頼を受けた実行サーバ(例えば実行サーバ20aとする)のサブ実行制御処理プログラム2000は、ジョブスケジュール処理によって決定されたジョブネットを構成するジョブの実行順序に従って、各分割データに対してサブジョブを実行する。図2は、実行サーバ20aが、サブジョブA1、サブジョブB1、サブジョブB2、及びサブジョブC1を実行するようにジョブが割り当てられた例を示している。
まず、マスタデータは、データ編集・分割・表示処理プログラム1100によって、複数の分割データ(入力データ1乃至n251)に分割される。実行サーバは、処理対象である複数の分割データをスケジュールサーバ10から受信する。或いは、データ編集・分割・表示処理プログラムを各実行サーバに設け、マスタデータを実行サーバ側の記憶装置25に格納している場合には、各実行サーバがマスタデータを分割する。そして、サブジョブ実行制御処理プログラム2000は、入力データ1を、サブジョブA1(ジョブA=プログラムA)によって処理し、中間データ1_252aを生成する。そして、サブジョブ実行制御処理プログラム2000は、中間データ1_252aをサブジョブB1(ジョブB=プログラムB)によって処理し、中間データ1_252bを生成する。並行して、サブジョブ実行制御処理プログラム2000は、中間データ2_252aをサブジョブB2(ジョブB=プログラムB)によって処理し、中間データ2_252bを生成する。さらに、サブジョブ実行制御処理プログラム2000は、中間データ1_252bをサブジョブC1(ジョブC=プログラムC)によって処理し、出力データ1を生成する。図2の例では、入力データ1に関してのみサブジョブAからCまで実行され、中間データ2に関してサブジョブBのみが実行されているが、入力データ2のサブジョブA及びサブジョブCや、他の入力データの各サブジョブは他の実行サーバ20で実行されていることになる。
なお、各実行サーバ20で得られた処理結果は、ジョブD106によって統合されるようにしても良い。なお、計算機システム1において、複数のスケジュールサーバ(管理サーバ、管理計算機)10を設置し、各スケジュールサーバで実行された分割ジョブ、ジョブA乃至Cまでの処理結果を何れかのスケジュールサーバ10のジョブDで最終処理するようにしても良い。
<再実行の概念>
図3は、サブジョブの再実行の概念を説明するための図である。図3では、分割データ2についてサブジョブA2(分割データ2についてのジョブA)を実行した後に、マスタデータ2(分割データ2に相当)に更新があった場合、或いは、サブジョブA2が異常終了した場合に、サブジョブA2を再実行する様子が示されている。
図3において、分割データ1については、サブジョブA1及びB1が実行され、正常に中間データA1及びB1が生成されている。また、分割データ3についても同様に正常に終了している。ところが、分割データ2については、サブジョブA2の実行が異常終了(例えば、サーバの障害等)したか、或いは、サブジョブA2実行中にマスタデータ2(分割データ2に相当)が更新されたとする。従って、当該分割データ2(実線長方形で囲まれている分割データ2)のサブジョブA2(短点線で囲まれたサブジョブ2)の処理結果(中間データ)をそれ以降の処理において用いることは出来ない。そこで、この場合には、分割データ2についてのサブジョブを再実行する。本発明では、ジョブネット構成においても、各サブジョブは分割データごとに管理され、実行されるようになっているため、当該更新があった部分を含む分割データ或いは異常終了した処理の対象であった分割データのみに再度サブジョブを実行すれば良いことになる。
例えば、図3中、更新されたマスタデータ2は二点鎖線で示されている。この場合、更新された分割データ2(点線長方形で囲まれている分割データ2)については、サブジョブA2が再実行される。サブジョブA2の再実行(点線台形)によって、更新された分割データ2(長点線で囲まれた分割データ2)にサブジョブA2が実行されて中間データA2が生成される。そして、中間データA2に対してサブジョブB2が実行され、中間データB2が生成される。この再実行時には処理の異常も、処理途中のデータ更新もなかったため、正常にサブジョブ処理が終了する。
なお、マスタファイルの更新は、例えば、登録したマスタデータの値にエラーがあったため、管理者が書き換えたような場合に実行される。マスタデータの更新の有無は、後述のように、マスタデータ管理テーブル140で管理しているため、実行サーバ20はスケジュールサーバ10との通信により、更新の有無を検知することができるようになっている。
<ジョブネット情報管理テーブル>
図4は、ジョブネット情報管理テーブル100の構成例を示す図である。ジョブネット情報管理テーブル100は、ジョブID1001と、終了コード異常閾値1002と、分割データ管理情報識別子1003と、分割数1004と、を構成項目として有している。
ジョブID1001は、ジョブネットを構成するジョブを特定するための情報である。ジョブID1001の欄に記載されているジョブは、例えば、上から順に実行されるようになっている。
終了コード異常閾値1002は、ジョブIDで特定されたジョブを実行した結果に示される終了コードの値がいくつ以上の場合に、次の処理に移行せずに終了するかを示す情報である。通常、終了コードの値は0から255の値を取るが、大きな値ほど重大な障害が発生したことを示している。
分割管理情報識別子1003は、ジョブの実行対象であって、分割される元のマスタデータのファイル名を特定するための情報である。
分割数1004は、マスタデータの分割数を示す情報であり、即ち、サブジョブ数を示す値である。
なお、ここでは、ジョブDの分割データ管理情報識別子1003はN/A(−)となっており、分割数1004の欄が空欄となっている。これは、例えば、ジョブDが計算機システム1における全ての、或いはいくつかのスケジュールサーバ10によるジョブ実行結果を統合する処理等である場合は、特定のファイルを分割して管理する必要がないからである。
<ジョブ情報管理テーブル>
図5は、ジョブ情報管理テーブル110の構成例を示す図である。ジョブ情報管理テーブル110は、ジョブID1101と、出力ファイル共有情報1102と、出力ファイル削除情報1103と、出力ファイル名1104と、を構成項目として有している。
ジョブID1101は、ジョブネットを構成するジョブを特定するための情報である。
出力ファイル共有情報1102は、該当するジョブの結果である中間データファイルが他の実行サーバとも処理できるファイルか否か示す情報である。つまり、出力ファイル共有情報1102の欄には、サブジョブの出力ファイルである中間データファイルが複数の実行サーバ間で共有する記憶装置(例えば記憶装置25b)に出力するときは「共有」、実行サーバ間で共有しない記憶装置(例えば記憶装置25a)に出力するときは「非共有」が格納される。例えば、ジョブAの出力ファイル共有情報1102は「共有」となっているが、ジョブAを実行して中間データファイルを出力し、この中間データファイルがどの実行サーバからもアクセスできて処理可能となっている。「共有」に設定されていれば、ジョブAを実行した実行サーバに障害が発生しても、空きのある実行サーバでジョブAの中間データファイルに対して他のジョブを実行することができるか判断することができる。このように、「共有」に設定されている場合には、該当する実行サーバが障害になっても、他の実行サーバからアクセス可能である。また、「非共有」に設定されている場合には、該当する実行サーバが障害となった場合はアクセスできないが、ジョブの処理が比較的少なく再実行に要する時間が少ないときは、実行時の性能を優先して非共有の記憶装置に出力することもあると考えられる。
出力ファイル削除情報1103は、中間データファイルを出力した後に、作成した中間データファイルを保持しておくか、削除してしまうかを示す情報である。中間データファイルを入力する後続のサブジョブが終了するときに、中間データファイルを削除する場合には「DELETE」、削除しない場合は「KEEP」が格納される。
出力ファイル名1104は、ジョブ実行結果の中間データファイルのファイル名を示す情報である。出力ファイル名1104における#は、#を分割データIDで置換することを示している。出力ファイル名に分割データIDを付加するのは、分割データID毎に中間データファイルが生成されるため、書く中間データファイルを識別する必要があるからである。
なお、出力ファイル共有情報1102及び出力ファイル削除情報1103は、サブジョブを再実行するときに中間データファイルにアクセス可能か否か判断するためにも参照される。
<分割データ管理テーブル>
図6は、分割データ管理テーブル120の構成を示す図である。分割データ管理テーブル120は、マスタデータ毎に設けられており、図6は、File1に対しての分割データ管理テーブルを示している。
分割データ管理テーブル120は、分割データID1201と、ジョブID1202と、サブジョブID1203と、実行サーバID1204と、状態1205と、を構成項目として有している。
分割データID1201は、マスタデータ(例えばFile1)をn個に分割して生成された分割データを特定するための識別情報である。
ジョブID1202は、該当する分割データに割り当てられたジョブ(サブジョブ)を特定するための情報である。
サブジョブID1203は、該当するサブジョブの識別子を示す情報である。
実行サーバID1204は、該当するサブジョブを実行する実行サーバを特定するための情報である。
状態1205(サブジョブ状態)は、サブジョブの結果が正常に終了したか否かを示す情報である。分割データを処理したサブジョブの終了コードが閾値1002を下回るときに「正常」、上回るときに「異常」と設定され、また、サブジョブ実行中の場合は「実行中」、サブジョブが一度も実行されていない場合は「空白(空欄)」に設定される。分割データ2に対するジョブCの欄は空白であるが、これは分割データ2に対するジョブBが異常終了したため、そのジョブを用いる分割データ2のジョブCは実行されないことが示されている。
なお、再実行時に常にジョブネットの先頭から実行する場合、ジョブネット内で最後に実行されたサブジョブ以外の実行サーバ情報は不要であるため、図6では、最後に実行されたサブジョブ以外のエントリは不要である。また、状態1205を設定せずに、サブジョブの状態が「正常」のときのみジョブID1202を入力するようにしても良い。
<実行サーバ管理テーブル>
図7は、実行サーバ管理テーブル130の構成例を示す図である。実行サーバ管理テーブル130は、実行サーバ数分のエントリを有しており、各エントリの構成項目として、サーバID1301と、サーバ状態1302と、空き多重度1303と、を有している。
サーバID1301は、実行サーバを特定するための情報である。
サーバ状態1302は、該当する実行サーバにサブジョブが実行中、或いは投入可能な「正常」状態か、サーバ障害などの「異常」な状態かを示す情報である。
空き多重度1303は、該当する実行サーバに投入可能なサブジョブの数を示す情報である。
<マスタデータ管理テーブル>
図8は、マスタデータ管理テーブル140の構成例を示す情報であり、マスタデータ毎に存在する。各マスタ管理テーブル140は、分割データ数分のエントリを有しており、各エントリの構成項目として、分割データID1401と、分割キー1402と、更新履歴1403と、更新有無1404と、を有している。
分割データID1401は、マスタデータを分割して得られる分割データを特定するための識別情報である。
分割キー1402は、マスタデータを分割するための単位を示す情報である。例えば、マスタデータが各エントリに事業所名や日付情報を有する場合、その事業所名や期間で情報をまとめ、それらを分割単位とすることができる。このときに用いられるキーワードや関連情報等が分割キーとなる。また、分割キーはキーワード等に限られず、例えば、マスタデータを1000エントリ単位でまとめるような分割キーであっても良い。分割キーがキーワード等の場合には、まとめられた各情報には関連性があるが、エントリ数でまとめる場合には各情報には必ずしも関連性があるわけではない。
更新履歴1403は、該当する分割データを更新した日時、或いはマスタデータを最初に分割した日時が挿入される。マスタデータが更新されたことがない場合には、当該更新履歴1403の欄には、マスタデータを分割した日時が設定されたままとなっている。
更新有無10404は、該当する分割データに更新がなされたか否かを示す情報である。例えば、「無」の場合には、マスタデータを分割して当該分割データを生成してから更新がなされていないことが示されている。
<ジョブスケジュール処理>
図9は、ジョブスケジュール処理プログラム1000によるジョブスケジュール処理の内容を説明するためのフローチャートである。
ジョブスケジュール処理プログラム1000は、ユーザ(管理者等)からの指示入力を受付け、ジョブネットの再実行の指示か否か判断する(ステップS901)。ユーザからの指示入力は、例えば、ジョブネット再実行の場合には、ファイルID(例えば、File1)の指定とジョブネット再実行の指示によって構成され、ジョブネット実行の場合には、ファイルIDの指定と、ジョブネット実行指示と、分割キー及び実行サーバの指定によって構成されている。入力指示がジョブネット再実行である場合(ステップS901でYesの場合)は、処理はステップS902に移行し、ジョブネット実行である場合(ステップS901でNoの場合)は、処理はステップS909に移行する。
ステップS902では、ジョブスケジュール処理プログラム1000は、マスタデータ管理テーブル(マスタデータ管理情報)140の更新有無1404に「有」が含まれているか判断する。更新有無1404に「有」がある場合(ステップS902でYesの場合)、処理はステップS903に移行し、「有」がない場合(ステップS902でNoの場合)、処理は終了する。なお、更新有無1404以外にも、例えば、ファイル属性(日付やデータサイズ)により、マスターデータが変更・修正されたことを判断しても良い。また、データ修正用のエディタ(例えば、図13B参照)を用いてマスタデータが更新されたか否かを示す更新履歴(ログ)を参照して更新の有無を判断しても良い。さらに、マスタデータ表示画面(例えば、図13A)に設けられたマスタデータ編集指示ボタン1301が押下されたか否かを示すアクション情報に基づいて、更新の有無を判断しても良い。また、SQLやジャーナルなどの履歴(ログ)を解析することにより、更新の有無を判断しても良い。
次に、ジョブスケジュール処理プログラム1000は、ステップ902で得られた、更新有無1404が「有」の分割キー1402を用いて、該当する実行サーバ20上でマスタデータを分割し、ジョブ再実行の対象である入力データを生成する(ステップS903)。例えば、更新有無1404の状態が図8に示されるよう様な場合には、分割キー1402「bbbb」でマスタデータ(File1)を分割し、更新された部分を含む分割データ2が生成される。
そして、ジョブスケジュール処理プログラム1000は、分割データ管理テーブル120のエントリの状態を変更(消去)する(ステップS904)。つまり、ジョブスケジュール処理プログラム1000は、分割データ管理テーブル(分割データ管理情報)120のエントリのうち、ステップS903で再度作成した分割データのIDに対応するエントリの状態1205を消去することにより、ジョブ再実行の対象を特定する。例えば、分割データIDが「2」に更新があった場合、分割データ管理テーブル120における分割データIDが「2」に一致するエントリ1206(図6参照)における状態1205である「正常」或いは「異常」を消去し、空欄に設定する。なお、空欄にする以外にも、再実行処理の対象であることを示す特別のフラグを設定するようにしても良い。
続いて、ジョブスケジュール処理プログラム1000は、ステップS904でジョブ再実行の対象であると特定された分割データに対してのみ各ジョブを実行する(ステップS905)。ジョブ実行処理の詳細については後述する。
さらに、ジョブスケジュール処理プログラム1000は、ジョブが再実行され、ジョブ結果が以前の結果と異なるようになったため、データ編集・分割・表示処理プログラム1100を呼出し、マスタデータ表示・編集処理を実行させる(ステップS906)。このマスタデータ表示・編集処理の詳細については後述する。
次に、ジョブスケジュール処理プログラム1000は、マスタデータが更新されているか(特定の分割キーに該当するデータが更新されているか)判断する(ステップS907)。マスタデータが更新されていれば(ステップS907でYesの場合)、処理はステップS908に移行する。マスタデータが更新されていなければ(ステップS907でNoの場合)、処理は終了する。
ステップS908において、ジョブスケジュール処理プログラム1000は、マスタデータ管理テーブル140の更新された分割キーに該当する更新有無1404を「無」から「有」に変更する。ステップS908が終了すると、処理はステップS901に移行する。
一方、ステップS901でジョブネット再実行でないと判断された場合(通常のジョブネット実行が指示された場合)、ジョブスケジュール処理プログラム1000は、データ編集・分割・表示処理プログラム1100を呼出す。呼び出されたデータ編集・分割・表示処理プログラム1100は、指定された分割キーを用いて、指定された実行サーバ上でマスタデータを分割し、ジョブネットに対する入力データを生成する(ステップS909)。
次に、ジョブスケジュール処理プログラム1000は、マスタデータ管理テーブル140に情報を必要な情報を入力する。つまり、ジョブスケジュール処理プログラム1000は、マスタデータ管理テーブル(マスタデータ管理情報)140を生成し、ステップS909で生成した各分割データに対応する分割ID1401と分割キー1402を登録すると共に、更新履歴1403の欄に分割日時を登録し、更新有無1404に「無」(この時点で更新がないとする)を登録する(ステップS910)。
そして、ジョブスケジュール処理プログラム1000は、分割データ管理テーブル(分割データ管理情報)120に必要な情報を登録する(ステップS911)。つまり、ジョブスケジュール処理プログラム1000は、分割データ管理テーブル120にジョブネット管理テーブル(ジョブネット情報)100の分割データID1201、対応するジョブID1202、対応するサブジョブID1203、及び各サブジョブを実行する実行サーバIDを入力する。
続いて、ジョブスケジュール処理プログラム1000は、各分割データに対して該当するジョブを順次実行する(ステップS912)。当該ジョブ実行処理の詳細についても後述する。
ジョブ実行処理(ステップS912)が終了すると、処理はステップS906に移行する。
<ジョブ実行処理>
図10は、ジョブ実行処理(ステップS905及び912)の詳細を説明するためのフローチャートである。
ジョブスケジュール処理プログラム1000は、ジョブネット情報管理テーブル100を参照し、実行すべきジョブに対応する分割データ管理情報識別子1003の設定があるか否か判定する(ステップS1001)。分割データ管理情報識別子1001の設定がなければ(ステップS1001でNoの場合)、処理はステップS1007に移行する。この場合、ジョブスケジュール処理プログラム1000は、複数のサブジョブを作成せずに(マスタデータを分割せずに)、任意の実行サーバ20にジョブネットに従ってジョブを実行させる(ステップS1007)。
一方、分割データ管理情報識別子1001の設定があれば(ステップS1001でYesの場合)、ジョブスケジュール処理プログラム1000は、分割データ管理情報識別子1001に対応する分割データ管理テーブル120がなければ、主記憶装置11に割り当てて初期化する(ステップS1002)。すなわち、ジョブネット実行対象のマスタデータ(例えば、File1)に関し、分割データ管理テーブル120を完成させる。
次に、ジョブスケジュール処理プログラム1000は、実行すべきジョブがジョブネットの再実行であるか否か判断する(ステップS1003)。つまり、マスタデータが更新されたためジョブネット再実行が指示された場合、或いは、ユーザからジョブネット再実行が指示された場合には、該当する分割データに対してジョブネットが実行される。一方、通常のジョブネット実行が指示された場合には、マスタデータを分割して生成した各分割データに対してジョブネットが実行される。ジョブネット再実行が指示されている場合(ステップS1003でYesの場合)、処理はステップSS1005に移行する。ジョブネット実行が指示されている場合(ステップS1003でNoの場合)、処理はステップS1004に移行する。
ステップS1004では、ジョブスケジュール処理プログラム1000は、分割データ管理情報識別子1003に対応する分割データ管理テーブル120の各エントリのうち、実行すべきジョブとジョブIDが一致する全エントリの状態1205の情報を消去し、ジョブ実行対象として選択する。
一方、ステップS1005では、ジョブスケジュール処理プログラム1000は、分割データ管理情報識別子1003に対応する分割データ管理テーブル120の各エントリのうち、実行すべきジョブとジョブIDが一致し、状態1205の欄が空欄のエントリを選択する。なお、ジョブネット再実行の場合には、ステップS904において、再実行対象の分割データに関する状態1205が空欄になっている。
続いて、ジョブスケジュール処理プログラム1000は、サブジョブ実行制御処理プログラム2000に、ステップS1004又はステップS1005で選択されたエントリ(分割データ)に対して、実行サーバのサブジョブスケジュール処理(サブジョブ)を実行するように指示する。そして、サブジョブ実行制御処理プログラム2000は、この指示に従って、サブジョブスケジュール処理を実行する(ステップS1006)。なお、どの実行サーバでサブジョブを実行させるかはサブジョブスケジュール処理において選択される。実行サーバの選択を含むサブジョブスケジュール処理の詳細については、後述する。
<サブジョブスケジュール処理>
図11は、サブジョブスケジュール処理(サブジョブ実行処理)の詳細を説明するためのフローチャートである。
ジョブスケジュール処理プログラム1000は、まず、ジョブネット情報管理テーブル100を参照し、実行対象ジョブの先行ジョブを特定する(ステップS1101)。例えば、ジョブネットが図2に示されるジョブネット101である場合、対象ジョブがジョブAである場合には、先行ジョブは存在しないが、他のジョブB乃至Dに関しては、それぞれ対応する先行ジョブが存在するため、その対応するジョブが特定される。
そして、ジョブスケジュール処理プログラム1000は、ステップS1101において、特定された先行ジョブが存在するか判定する(ステップS1102)。先行ジョブがある場合には処理はステップS1109に移行し、先行ジョブがない場合には処理はステップS1103に移行する。
ステップS1103において、ジョブスケジュール処理プログラム1000は、分割データ管理テーブル120から実行対象となる分割データ(エントリ)を1つ選択する。なお、通常のジョブネット実行の場合には、分割データ1乃至nのうち分割データ1から順に選択して処理される。また、ジョブネット再実行の場合には、対象となる分割データ(更新部分を含む分割データ)の中で1つ選択される。ジョブネット再実行の場合、通常、対象となる分割データは1つであることが多いので、当該1つの分割データのみが処理されることになる。
そして、ジョブスケジュール処理プログラム1000は、選択可能なエントリがない場合には処理をステップS1107に移行させ、選択可能なエントリがある場合には処理をステップS1105に移行させる(ステップS1104)。
次に、ジョブスケジュール処理プログラム1000は、ステップS1103で選択された分割データに関するサブジョブを実行する実行サーバを決定する(ステップS1105)。具体的には、実行サーバを決定する場合、ジョブスケジュール処理プログラム1000が、実行サーバ管理テーブル130を参照し、空き多重度1303が「0」ではない任意のサーバ20を選択する。登録された全てのサーバにおいて、空き多重度が「0」である場合には、何れかのサーバ20において空き多重度1303が「1」以上になるまで待機し、空き多重度が「1」になってから実行サーバが特定される。
そして、ジョブスケジュール処理プログラム1000は、ステップS1105で決定したサーバ20に対して分割データID或いは処理対象の分割データを送信してサブジョブを実行するように指示する。実行サーバがマスタデータを有している場合には、分割ジョブIDのみの送信で良いが、実行サーバがマスタデータを有していない場合には、分割データそのものが当該実行サーバに送信される。指示を受けたサーバ20のサブジョブ実行制御処理プログラム2000は、受信した分割データIDに対応するデータに対してサブジョブを実行する。ステップS1106では先頭のジョブ(例えばジョブA)が実行されるので、決定された実行サーバ20では、特定された分割データに対して先頭ジョブが実行されることになる。
ステップS1104で選択可能なエントリがないと判断された場合には、ジョブスケジュール処理プログラム1000は、ジョブネット上の全ジョブを実行したか判断する(ステップS1107)。全ジョブが実行されている場合には、処理は終了する。全ジョブが実行されていない場合には、ジョブスケジュール処理プログラム1000は、次のジョブ(今まで実行したジョブがジョブAであればジョブB)を選択し、処理をステップS1101に移行させる(ステップS1108)。
一方、ステップS1102で先行ジョブがあると判断された場合、ジョブスケジュール処理プログラム1000は、分割データ管理テーブル120から先行ジョブの状態1205が「正常」であるエントリを1つ選択する(ステップS1109)。つまり、後続のジョブにおいては先行ジョブの実行結果(中間データファイル)を用いるため、先行ジョブが正常終了してなければならないからである。
そして、ジョブスケジュール処理プログラム1000は、選択可能なエントリがない場合には処理をステップS1107に移行させ、選択可能なエントリがある場合には処理をステップS1111に移行させる(ステップS1110)。
ステップS1111では、ジョブスケジュール処理プログラム1000は、サブジョブの実行対象があるか否か判断する。具体的には、選択した先行ジョブ(例えばジョブA)のエントリの分割データIDと分割データIDが同一の分割データであって、実行対象ジョブのジョブID(例えばジョブB)とジョブIDが一致する分割データにおける状態1205が未設定(空欄)であるかが判断される。つまり、先行ジョブに続いて現ジョブを実行すべき分割データが存在するか判断され、サブジョブ実行対象の分割データが特定される。サブジョブ対象がない場合には、処理はステップS1109に移行し、次のエントリについて処理される。サブジョブ実行対象があると判断された場合には、処理はステップS1112に移行する。
ステップS1112では、ジョブスケジュール処理プログラム1000は、ステップS1111で特定された分割データに対してサブジョブを実行するサーバを決定する。より具体的には、ジョブスケジュール処理プログラム1000は、実行サーバ管理テーブル130を参照し、先行ジョブを実行した実行サーバの空き多重度が「1」以上であるかチェックする。1以上であれば、先行ジョブを実行したサーバを実行サーバとして決定する。空き多重度が「0」であった場合、ジョブスケジュール処理プログラム1000は、ジョブ管理テーブル110を参照し、先行ジョブ(例えば、ジョブA))の出力ファイル共有情報1102が「共有」であるかチェックする。「共有」であれば、空き多重度が「1」以上の他のサーバを実行サーバとして決定する。空き多重度が「0」、かつ先行ジョブの出力ファイル共有情報1102が「非共有」である場合には、ジョブスケジュール処理プログラム1000は、先行ジョブを実行したサーバの空き多重度が「1」以上になるまで処理を待機し、空き多重度が「1」以上になった時点で、当該サーバを実行サーバとして決定する。
続いて、ジョブスケジュール処理プログラム1000は、ステップS1112で決定したサーバ20に対して分割データID或いは分割データを送信してサブジョブを実行するように指示する(ステップ1113)。指示を受けたサーバ20のサブジョブ実行制御処理プログラム2000は、受信した分割データIDに対応するデータに対してサブジョブを実行する。
また、ステップS1110で選択可能なエントリがないと判断された場合には、ジョブスケジュール処理プログラム1000は、ジョブネット上の全ジョブを実行したか判断する(ステップS1107)。全ジョブが実行されている場合には、処理は終了する。全ジョブが実行されていない場合には、ジョブスケジュール処理プログラム1000は、次のジョブ(今まで実行したジョブがジョブBであればジョブC)を選択し、処理をステップS1101に移行させる(ステップS1108)。
<マスタデータ表示・編集処理>
図12は、マスタデータ表示・編集処理の詳細を説明するためのフローチャートである。また、図13は、マスタデータ表示画面例及びマスタデータ編集画面例を示す図である。
ジョブ実行処理(ステップS905或いはステップS912)が終了すると、ジョブスケジュール処理プログラム1000は、データ編集・分割・表示処理プログラム1100を呼び出し、マスタデータ及びジョブ結果を図示しない表示装置の画面上に表示させる(ステップS1201)。例えば、データ編集・分割・表示処理プログラム1100は、分割データ管理テーブル120及びマスタデータ管理テーブル140を参照し、そこから、分割データID1401、分割キー1402、更新履歴1403、マスタデータの更新の有無1404、サブジョブID1203、実行サーバID1204、状態1205を抽出し、それらを表形式(図13A参照)で表示する。
そして、ジョブスケジュール処理プログラム1000は、マスタデータ更新の要求があったか否か判断する(ステップS1202)。要求がなければ、処理は終了し、要求があれば処理はステップS1203に移行する。なお、マスタデータ更新の要求の有無は、例えば、マスタデータ表示画面(図13A)に設けられたマスタデータ編集ボタン1501が押下されたか否かで判断される。マスタデータ編集ボタン1501が押下されると、データ編集・分割・表示処理プログラム1100は、図13Bに示されるようなマスタデータ編集画面が表示装置の画面上に表示する。
ステップS1203では、データ編集・分割・表示処理プログラム1100は、ユーザ(管理者)のマスタデータの更新入力に従って、マスタデータを変更(更新)する。マスタデータの更新は、図13Bに示されるようなマスタデータ編集画面上で行われる。
そして、ジョブスケジュール処理プログラム1000は、ステップS1203における更新入力に従って、マスタデータ管理テーブル140を更新する(ステップS1204)。つまり、ジョブスケジュール処理プログラム1000は、更新履歴等から、更新されたマスタデータに対応する分割キーを特定し、マスタデータ管理テーブル140のマスタデータ更新の有無1405を「有」に設定し、更新履歴1404に更新日時を入力する。
なお、マスタデータ表示・編集処理は、上述のように、図9におけるジョブスケジュール処理の流れの中で実行されるようにしても良いし、ユーザの指示により、現時点でのマスタデータ表示画面(図13A)を表示するようにしても良い。そして、ユーザが希望するときに、マスタデータの編集処理ができるようにしても良い。
<まとめ>
本発明の実施形態では、グリッドバッチの再実行可否をマスタデータの更新有無に基づいて判断する。これを実現するために、マスタデータの管理情報として、データの更新情報を管理する。そして、更新済みであれば再実行対象とし、未更新であれば再実行対象としない。より詳細には、データ分割に対するジョブ実行時に、ジョブネット再実行要求(マスタデータに更新があった場合のジョブネット実行要求)があれば、マスタデータ管理情報から更新有無を判断し、更新された分割キーに対応するマスタデータのみをデータ分割し、該当する分割データを処理していたサブジョブは異常状態に更新して再実行対象とする。このようにすることにより、サブジョブ状態が正常/異常に関わらず、マスタデータを部分的に更新して再実行したい場合に、特定サブジョブのみを再実行できるようになる。
また、ジョブ実行後に分割データ管理情報とマスタデータ管理情報を表示し、さらにマスタデータ編集画面を起動し、マスタデータを更新することができる。そして、この更新履歴から、更新箇所に対応する分割キーを特定し、マスタデータ管理情報の更新有無を「有」に更新する。この場合にも、更新があった部分を含む分割データに対してのみジョブ(サブジョブ)を実行する。このようにすることにより、ユーザが自発的に行ったマスタデータの更新処理に対応して、即座にサブジョブを実行することができ、規定終了予定時間を超過するリスクを抑えることが可能となる。
なお、本発明は、実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
また、実施形態で示された各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現しても良い。各機能等を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録或いは記憶装置、またはICカード、SDカード、DVD等の記録或いは記憶媒体に格納することができる。
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
1・・・計算機システム、2・・・ネットワーク、10・・・スケジュールサーバ(管理計算機)、20・・・実行サーバ(ジョブ実行計算機)、15・・・スケジュールサーバ側の記憶装置、25・・・実行サーバ側の記憶装置、100・・・ジョブネット情報管理テーブル、110・・・ジョブ情報管理テーブル、120・・・分割データ管理テーブル、130・・・実行サーバ管理テーブル、140・・・マスタデータ管理テーブル、1000・・・ジョブスケジュール処理プログラム、2000・・・サブジョブ実行制御処理プログラム

Claims (13)

  1. ジョブを実行する複数のジョブ実行計算機と、
    マスタデータの分割単位を示す分割キーでマスタデータを分割して複数の分割データを生成し、当該複数の分割データのそれぞれに対して前記ジョブの処理実行するサブジョブを実行するジョブ実行計算機を決定する管理計算機と、
    少なくとも前記マスタデータと、前記サブジョブの実行結果を格納する少なくとも1つのストレージ装置と、を有し、
    前記管理計算機は、
    前記マスタデータに対する更新の有無に関する更新関連情報と、更新があった部分に対応する分割キーである更新分割キー情報と、前記複数のジョブ実行計算機でサブジョブを実行することが可能かどうかを示す空き多重度情報と、前記ジョブを構成する複数のサブジョブの実行結果が複数のジョブ実行計算機間で共有されているか否かを示す出力ファイル共有情報と保持し、
    前記ジョブの再実行要求を受け付けたとき前記サブジョブ実行後又はサブジョブ実行中に前記マスタデータに対して更新がなされた前記更新分割キー情報に対応する分割データを前記複数の分割データから特定し、
    特定された分割データに対応するサブジョブを特定し、
    実行しようとするサブジョブに先行する先行サブジョブを実行したジョブ実行計算機の空き多重度情報が後続のジョブを実行できないことを示す場合、前記出力ファイル共有情報を参照し、前記先行ジョブの実行結果が他のジョブ実行計算機で利用可能であるか否か確認して、当該確認結果に基づいて前記後続のサブジョブを再実行する前記ジョブ実行計算機を決定することを特徴とする計算機システム。
  2. 請求項において、
    前記管理計算機は、前記先行サブジョブの実行結果が他のジョブ実行計算機で利用不可能である場合、前記先行サブジョブを実行したジョブ実行計算機が サブジョブ実行可能になるまで前記ジョブ実行計算機の決定を保留することを特徴とする計算機システム。
  3. 請求項1において、
    前記更新関連情報は、前記マスタデータが変更されたことを示す、ファイルサイズを含むファイル属性であり、
    前記管理計算機は、前記ファイル属性の情報を用いて前記マスタデータの更新の有無を判断することを特徴とする計算機システム。
  4. 請求項1において、
    前記更新関連情報は、前記マスタデータが変更された履歴を示す更新履歴情報であり、
    前記管理計算機は、前記更新履歴情報を用いて前記マスタデータの更新の有無を判断することを特徴とする計算機システム。
  5. 請求項1において、
    前記更新関連情報は、前記マスタデータの内容を表示するためのマスタデータ表示画面に設けられたマスタデータ編集ボタンが押下されたか否かのユーザアクション情報であり、
    前記管理計算機は、前記ユーザアクション情報が存在する場合に前記マスタデータの更新がなされたと判断することを特徴とする計算機システム。
  6. 請求項1において、
    前記管理計算機は、前記サブジョブの実行後、前記マスタデータの管理情報及び前記サブジョブ実行結果を表示装置の表示画面上に表示することを特徴とする計算機システム。
  7. 請求項において、
    前記管理計算機は、ユーザの要求に応答して、前記関す他データの管理情報及び前記サブジョブ実行結果を表示装置の表示画面上に表示することを特徴とする計算機システム。
  8. 請求項において、
    前記管理計算機は、ユーザの指示に応答して、前記マスタデータを編集するための編集画面を前記表示画面上に表示し、前記マスタデータの更新を受け付けると共に、更新の有無を前記マスタデータの管理情報に反映することを特徴とする計算機システム。
  9. ジョブを実行する複数のジョブ実行計算機と、前記ジョブの実行と前記複数のジョブ実行計算機を管理する管理計算機とを含む計算機システムにおけるジョブ実行管理方法であって、
    前記管理計算機は、マスタデータに対する更新の有無に関する更新関連情報と、更新があった部分に対応する分割キーである更新分割キー情報と、前記複数のジョブ実行計算機でサブジョブを実行することが可能かどうかを示す空き多重度情報と、前記ジョブを構成する複数のサブジョブの実行結果が複数のジョブ実行計算機間で共有されているか否かを示す出力ファイル共有情報とを保持しており、
    前記ジョブ実行管理方法は、
    前記管理計算機が、マスタデータの分割単位を示す分割キーでマスタデータを分割して複数の分割データを生成するステップと、
    前記管理計算機が、当該複数の分割データのそれぞれに対して前記ジョブの処理実行するサブジョブを実行するジョブ実行計算機を決定するステップと、
    前記管理計算機が、前記サブジョブ実行後又はサブジョブ実行中に前記マスタデータに対して更新がなされた前記更新分割キー情報に対応する分割データを前記複数の分割データから特定するステップと、
    特定された分割データに対応するサブジョブを特定し、
    実行しようとするサブジョブに先行する先行サブジョブを実行したジョブ実行計算機の空き多重度情報が後続のジョブを実行できないことを示す場合、前記出力ファイル共有情報を参照し、前記先行ジョブの実行結果が他のジョブ実行計算機で利用可能であるか否か確認して、当該確認結果に基づいて前記後続のサブジョブを再実行する前記ジョブ実行計算機を決定するステップと、
    を有することを特徴とするジョブ実行管理方法。
  10. 請求項9において、
    さらに、前記管理計算機が、前記サブジョブの実行後、前記マスタデータの管理情報及び前記サブジョブ実行結果を表示装置の表示画面上に表示するステップを有することを特徴とするジョブ実行管理方法。
  11. 請求項10において、
    さらに、前記管理計算機が、ユーザの指示に応答して、前記マスタデータを編集するための編集画面を前記表示画面上に表示し、前記マスタデータの更新を受け付けると共に、更新の有無を前記マスタデータの管理情報に反映するステップを有することを特徴とするジョブ実行管理方法。
  12. 請求項において、
    前記管理計算機は、前記複数のジョブ実行計算機のそれぞれにおける、サブジョブを実行することが可能かどうかを示す空き多重度情報を保持し、
    前記ジョブ実行計算機を決定するステップにおいて、前記管理計算機は、前記空き多重度情報を参照し、サブジョブを実行するジョブ実行計算機を、前記サブジョブを再実行する前記ジョブ実行計算機として決定することを特徴とするジョブ実行管理方法。
  13. ジョブを実行する複数のジョブ実行計算機を有する計算機システムにおいて、
    マスタデータに対する更新の有無に関する更新関連情報と、更新があった部分に対応する分割キーである更新分割キー情報と、前記複数のジョブ実行計算機でサブジョブを実行することが可能かどうかを示す空き多重度情報と、前記ジョブを構成する複数のサブジョブの実行結果が複数のジョブ実行計算機間で共有されているか否かを示す出力ファイル共有情報とを保持する機能と、
    前記マスタデータの分割単位を示す分割キーで前記マスタデータを分割して複数の分割データを生成する機能と、
    当該複数の分割データのそれぞれに対して前記ジョブの処理実行するサブジョブを実行するジョブ実行計算機を決定する機能と、
    前記サブジョブ実行後又はサブジョブ実行中に前記マスタデータに対して更新がなされた前記更新分割キー情報に対応する分割データを前記複数の分割データから特定する機能と、
    特定された分割データに対応するサブジョブを特定し、
    実行しようとするサブジョブに先行する先行サブジョブを実行したジョブ実行計算機の空き多重度情報が後続のジョブを実行できないことを示す場合、前記出力ファイル共有情報を参照し、前記先行ジョブの実行結果が他のジョブ実行計算機で利用可能であるか否か確認して、当該確認結果に基づいて前記後続のサブジョブを再実行する前記ジョブ実行計算機を決定する機能
    を実現させることを特徴とするプログラム。
JP2012542761A 2010-11-10 2010-11-10 計算機システム、ジョブ実行管理方法、及びプログラム Expired - Fee Related JP5619179B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/070043 WO2012063339A1 (ja) 2010-11-10 2010-11-10 計算機システム、ジョブ実行管理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2012063339A1 JPWO2012063339A1 (ja) 2014-05-12
JP5619179B2 true JP5619179B2 (ja) 2014-11-05

Family

ID=46050521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012542761A Expired - Fee Related JP5619179B2 (ja) 2010-11-10 2010-11-10 計算機システム、ジョブ実行管理方法、及びプログラム

Country Status (3)

Country Link
US (1) US9183038B2 (ja)
JP (1) JP5619179B2 (ja)
WO (1) WO2012063339A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5967791B2 (ja) * 2014-03-05 2016-08-10 株式会社日立製作所 情報処理方法及び情報処理システム
US9870295B2 (en) * 2014-07-18 2018-01-16 General Electric Company Automation of workflow creation and failure recovery
US11132681B2 (en) 2018-07-06 2021-09-28 At&T Intellectual Property I, L.P. Services for entity trust conveyances
US10802872B2 (en) * 2018-09-12 2020-10-13 At&T Intellectual Property I, L.P. Task delegation and cooperation for automated assistants
US11481186B2 (en) 2018-10-25 2022-10-25 At&T Intellectual Property I, L.P. Automated assistant context and protocol
JP2021043684A (ja) * 2019-09-11 2021-03-18 富士通株式会社 情報処理システム、情報処理方法および情報処理プログラム
US11461147B2 (en) * 2020-12-16 2022-10-04 Marvell Asia Pte Ltd Liaison system and method for cloud computing environment
CN113157421B (zh) * 2021-04-29 2024-04-09 浙江工业大学 一种基于用户作业流程的分布式集群资源调度方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916527A (ja) * 1995-06-30 1997-01-17 Nippon Telegr & Teleph Corp <Ntt> 大規模分散情報処理方法及びシステム
JP2000148517A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd ジョブネット実行方式
JP2000194576A (ja) * 1998-12-28 2000-07-14 Hitachi Ltd ジョブ運用管理システム
JP2002014829A (ja) * 2000-06-30 2002-01-18 Japan Research Institute Ltd 並列処理制御システム,方法および並列処理制御のためのプログラムを格納した媒体
WO2007108062A1 (ja) * 2006-03-17 2007-09-27 Fujitsu Limited サーバ管理方法、プログラム及び装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
JPH0877010A (ja) * 1994-09-07 1996-03-22 Hitachi Ltd データ分析方法および装置
JPH08286932A (ja) * 1995-04-11 1996-11-01 Hitachi Ltd ジョブの並列実行制御方法
US5592945A (en) * 1996-02-28 1997-01-14 Hewlett-Packard Company Real-time event charting in an electronic flowsheet
US20020065835A1 (en) * 2000-11-27 2002-05-30 Naoya Fujisaki File system assigning a specific attribute to a file, a file management method assigning a specific attribute to a file, and a storage medium on which is recorded a program for managing files
JP2004102449A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd ジョブネットワークの設定方法、ジョブネットワークの実行方法、ジョブ管理システム、管理端末、およびプログラム
JP2005031771A (ja) * 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
US7596788B1 (en) * 2004-05-11 2009-09-29 Platform Computing Corporation Support of non-trivial scheduling policies along with topological properties
JP4538736B2 (ja) 2005-03-30 2010-09-08 日本電気株式会社 ジョブ実行監視システム、ジョブ制御装置、ジョブ実行方法及びジョブ制御プログラム
JP2007052673A (ja) 2005-08-18 2007-03-01 Nec Corp ジョブ管理システム、ジョブ管理方法、及びジョブ管理プログラム
US8205189B2 (en) * 2006-07-13 2012-06-19 Oracle International Corporation Method and system for definition control in a data repository application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916527A (ja) * 1995-06-30 1997-01-17 Nippon Telegr & Teleph Corp <Ntt> 大規模分散情報処理方法及びシステム
JP2000148517A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd ジョブネット実行方式
JP2000194576A (ja) * 1998-12-28 2000-07-14 Hitachi Ltd ジョブ運用管理システム
JP2002014829A (ja) * 2000-06-30 2002-01-18 Japan Research Institute Ltd 並列処理制御システム,方法および並列処理制御のためのプログラムを格納した媒体
WO2007108062A1 (ja) * 2006-03-17 2007-09-27 Fujitsu Limited サーバ管理方法、プログラム及び装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200100091041; 酒井淳嗣ほか: '制御並列アーキテクチャ向け自動並列化コンパイル手法 Automatic Parallelizing Method for Control-Paral' 情報処理学会シンポジウム論文集 Vol. 98, No. 7, 19980603, 383-390頁, 社団法人情報処理学会 *
JPN6014016532; 酒井淳嗣ほか: '制御並列アーキテクチャ向け自動並列化コンパイル手法 Automatic Parallelizing Method for Control-Paral' 情報処理学会シンポジウム論文集 Vol. 98, No. 7, 19980603, 383-390頁, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
JPWO2012063339A1 (ja) 2014-05-12
US20130219406A1 (en) 2013-08-22
US9183038B2 (en) 2015-11-10
WO2012063339A1 (ja) 2012-05-18

Similar Documents

Publication Publication Date Title
JP5619179B2 (ja) 計算機システム、ジョブ実行管理方法、及びプログラム
JP4605072B2 (ja) 制御装置および情報システムの制御方法
JP4764472B2 (ja) データベース管理方法、データベース管理プログラム、および、データベース管理装置
JPH08287162A (ja) ワークフローシステム
CN103593236A (zh) 一种业务流程调度的计算机设备、方法和装置
CN110427258B (zh) 基于云平台的资源调度控制方法及装置
JP2011053995A (ja) データ処理制御方法および計算機システム
JP2004287932A (ja) データベース更新処理システム、データベース更新のための更新データ入力方法、更新データ処理方法、およびプログラム
US20150095875A1 (en) Computer-assisted release planning
US20130263143A1 (en) Information processing method and system
JP6272556B2 (ja) 共有リソース更新装置及び共有リソース更新方法
JP5420358B2 (ja) バッチ処理実行方法及びバッチ処理実行システム
JP4055013B2 (ja) ワークフローシステムおよびワークフローシステムにおける作業分割方法
US20150106747A1 (en) Groupware management
JP4421669B2 (ja) リソース管理プログラム、リソース管理方法およびリソース管理装置
JP5222171B2 (ja) データベース管理方法およびデータベース管理システム
JP6657725B2 (ja) データベースシステム、レプリケーション制御装置、レプリケーション方法、及びプログラム
JP2019101595A (ja) データベース管理システム及び方法
JP2004280457A (ja) データ管理システム、バッチ制御システム、及びバッチ制御プログラム
JP5061086B2 (ja) ジョブ管理方法及びその実施装置とプログラム
US10606939B2 (en) Applying matching data transformation information based on a user&#39;s editing of data within a document
WO2019167710A1 (ja) ユーザインタフェース制御装置、ユーザインタフェース制御方法、及び、ユーザインタフェース制御プログラムが格納された記録媒体
JP2008009966A (ja) 業務プロセス設定装置及び業務プロセス設定方法
JP3305782B2 (ja) ソフトウェア標準化方法およびソフトウェア生産物の解析方法
WO2012157044A1 (ja) 業務フロー管理方法、装置及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140610

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140916

R151 Written notification of patent or utility model registration

Ref document number: 5619179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees