JP2005107824A - Eaiサーバおよびeaiサーバのプログラム - Google Patents
Eaiサーバおよびeaiサーバのプログラム Download PDFInfo
- Publication number
- JP2005107824A JP2005107824A JP2003339758A JP2003339758A JP2005107824A JP 2005107824 A JP2005107824 A JP 2005107824A JP 2003339758 A JP2003339758 A JP 2003339758A JP 2003339758 A JP2003339758 A JP 2003339758A JP 2005107824 A JP2005107824 A JP 2005107824A
- Authority
- JP
- Japan
- Prior art keywords
- jobs
- job
- host
- data
- queue
- 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.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
【課題】 処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切なホストを起動してジョブを実行する。
【解決手段】 EAIサーバ10は、キューテーブルに記憶されたキューのジョブを起動すべきときに、各ホストにて実行可能なジョブの最大実行数を示す同時実行ジョブ最大数と、同時に実行する最低ジョブ数を示す最低同時実行ジョブ数とを含むノート定義テーブルを参照して、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に相当するジョブを実行すべきホストを、各ホストの最低同時実行ジョブ数および同時実行ジョブ最大数を考慮して特定し、前記ホストにジョブを実行させる。
【選択図】 図1
Description
本発明は、EAI(Enterprise Application
Integration)サーバに関し、より詳細には、適切なジョブスケジューリングが実現できるEAIサーバに関する。
Integration)サーバに関し、より詳細には、適切なジョブスケジューリングが実現できるEAIサーバに関する。
EAIサーバは、そのソフトの性格上複数のシステムとのデータ交換を行うサーバとして機能する。EAIサーバに接続されるシステム、ホスト、サーバには、それぞれ、異なるハードウェアアーキテキチャ、異なるOS、異なる文字セット、異なるジョブスケジューリング機構などが装備されている可能性がある。また、EAIサーバに、新規のサーバが接続された場合、既存のサーバとの整合を図る必要もある。
特開2002−189841号公報
その結果、EAIサーバは、以下のような課題を持つシステムとなる。
(1)加工処理の繁忙期と閑散期が極端。
EAIサーバに接続される各システムで、それぞれにジョブスケジューリング機構が装備されているため、EAIサーバにてデータ加工を行う タイミングは、そのデータの発生システムのジョブスケジューリングに従う事になる。その結果、EAIサーバに対して、複数のシステムから短時間に大量のデータ加工依頼が集中し、或いは、ほとんどデータ加工依頼のない時間帯が発生する事となる。
EAIサーバに接続される各システムで、それぞれにジョブスケジューリング機構が装備されているため、EAIサーバにてデータ加工を行う タイミングは、そのデータの発生システムのジョブスケジューリングに従う事になる。その結果、EAIサーバに対して、複数のシステムから短時間に大量のデータ加工依頼が集中し、或いは、ほとんどデータ加工依頼のない時間帯が発生する事となる。
EAIサーバにおいては、ピーク時は大量のデータ加工を実現する必要がある為、膨大なコンピュータ資源 (CPU数、搭載メモリ、利用可能ディスクスペースなど)が必要とされるが、ピーク時以外は、ほとんどコンピュータ資源を利用していないという特性を持っている。その結果、ピーク時の処理を実現可能なコンピュータ資源を準備すると費用対効果が非常に悪くなる。
(2)EAIサーバ上でのデータ加工処理の特性
EAIサーバ上で実行されるデータ加工処理は、おおよそ以下の3つのパターンに分類される場合が多い。
EAIサーバ上で実行されるデータ加工処理は、おおよそ以下の3つのパターンに分類される場合が多い。
第1のタイプ
大量のコンピュータ資源を消費し、処理時間も長くかかる加工処理。
このパターンの加工処理の特性として、同じパターンの加工処理を同時に実行しない方がよいとされるもの。
大量のコンピュータ資源を消費し、処理時間も長くかかる加工処理。
このパターンの加工処理の特性として、同じパターンの加工処理を同時に実行しない方がよいとされるもの。
第2のタイプ
使用コンピュータ資源も処理時間も平均的な加工処理。
同じパターンの加工処理であれば複数同時実行を行う事により全体のスループット向上につながるもの。
使用コンピュータ資源も処理時間も平均的な加工処理。
同じパターンの加工処理であれば複数同時実行を行う事により全体のスループット向上につながるもの。
第3のタイプ
使用コンピューターリソースも処理時間も小さな加工処理。
使用コンピューターリソースも処理時間も小さな加工処理。
同じパターンの加工処理であればパターン2のものよりも大量に同時実行することが可能なもの。
実際のEAIサーバ上では、上記のような特性を持つ加工処理がランダムに発生するので、単純な同時実行数の制御だけを行うと、コンピュータ資源の不足や余りを発生させてしまう。
(3)複数のファイルを使用する加工処理
EAIサーバ上で加工されるパターンを大別すると
1:1
n:1
1:n
n:m (1、n、mは、それぞれ、ジョブ数)
となるが、このとき、複数のデータを使用して加工を行う場合、どうしても使用するデータの生成を待つ機構が必要となる。
EAIサーバ上で加工されるパターンを大別すると
1:1
n:1
1:n
n:m (1、n、mは、それぞれ、ジョブ数)
となるが、このとき、複数のデータを使用して加工を行う場合、どうしても使用するデータの生成を待つ機構が必要となる。
単一のシステム内でこのような処理を実装する場合は、ジョブコントロール・ソフトウェアを使用してデータ生成のタイミングを取ればよいが、複数のシステムを結合させる立場にあるEAIサーバ では、自身の制御機構の中にデータ待ち合わせ機能が必要となる。
また、他のホストにおいてジョブを実行させる場合には、当該他のホストにおける能力や実行されているジョブを考慮する必要がある。
また、他のホストにおいてジョブを実行させる場合には、当該他のホストにおける能力や実行されているジョブを考慮する必要がある。
特許文献1には、計算機リソースの配分を考慮したワークフロー管理を実現する方法、システムおよび記憶媒体が開示されている。しかしながら、これによっても、上記問題点を解決することは容易ではない。
本発明は、処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行することができるEAIサーバおよびそのプログラムを提供することを目的とする。
本発明の目的は、ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、各ホストにて実行可能なジョブの最大実行数を示す同時実行ジョブ最大数と、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数とを含むノード定義情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、ジョブを実行するホスト名、標準タイプ対比加重、および、データ量対比加重の合計を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルと、前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段と、前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に相当するジョブを実行すべきホストを、各ホストの最低同時実行ジョブ数および同時実行ジョブ最大数を考慮して特定し、前記ホストにジョブを実行させる実行制御手段とを備えたことを特徴とするEAIサーバにより達成される。
好ましい実施態様においては、前記データ待ち合わせ手段が、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶する。
別の好ましい実施態様においては、前記ジョブ実行制御手段が、各ホストに関して、最低同時実行本数枠=最低同時実行ジョブ本数−実行中のジョブ数を算出し、前記最低同時実行本数枠の最大のものに、前記ジョブを実行させる。
より好ましい実施態様においては前記ジョブ実行制御手段が、各ホストに関して、
当該ホストで実行中のジョブの標準タイプ対比加重の合計およびデータ量対比加重の合計の総和である実行中換算ジョブ数を算出し、
同時実行ジョブ最大数−実行中換算ジョブ数に相当する実行可能換算ジョブ数が最大のものに、前記ジョブを実行させる。
当該ホストで実行中のジョブの標準タイプ対比加重の合計およびデータ量対比加重の合計の総和である実行中換算ジョブ数を算出し、
同時実行ジョブ最大数−実行中換算ジョブ数に相当する実行可能換算ジョブ数が最大のものに、前記ジョブを実行させる。
さらに、前記ジョブ実行制御手段が、前記換算ジョブ数>実行可能換算ジョブ数である場合に、前記ホストにジョブを実行させるのが望ましい。
また、本発明の目的は、ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、各ホストにて実行可能なジョブの最大実行数を示す同時実行ジョブ最大数と、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数とを含むノード定義情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、ジョブを実行するホスト名、標準タイプ対比加重、および、データ量対比加重の合計を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルとを含むEAIサーバにより読み出し可能なプログラムであって、前記EAIサーバを、
前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段、および、前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に相当するジョブを実行すべきホストを、各ホストの最低同時実行ジョブ数および同時実行ジョブ最大数を考慮して特定し、前記ホストにジョブを実行させるジョブ実行制御手段として機能させることを特徴とする、EAIサーバにより読み取り可能なプログラムによっても達成される。
好ましい実施態様においては、前記EAIサーバを前記データ待ち合わせ手段として機能させる場合において、各ホストに関して、
最低同時実行本数枠=最低同時実行ジョブ本数−実行中のジョブ数
を算出し、前記最低同時実行本数枠の最大のものに、前記ジョブを実行させるように、前記EAIサーバを動作させる。
最低同時実行本数枠=最低同時実行ジョブ本数−実行中のジョブ数
を算出し、前記最低同時実行本数枠の最大のものに、前記ジョブを実行させるように、前記EAIサーバを動作させる。
別の好ましい実施態様においては、前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、各ホストに関して、当該ホストで実行中のジョブの標準タイプ対比加重の合計およびデータ量対比加重の合計の総和である実行中換算ジョブ数を算出し、同時実行ジョブ最大数−実行中換算ジョブ数に相当する実行可能換算ジョブ数が最大のものに、前記ジョブを実行させるように、前記EAIサーバを動作させる。
より好ましい実施態様においては、前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、前記換算ジョブ数>実行可能換算ジョブ数である場合に、前記ホストにジョブを実行させるように、前記EAIサーバを動作させる。
本発明によれば、処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行することができるEAIサーバおよびそのプログラムを提供することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかるEAIサーバの概略を示すブロックダイヤグラムである。図1に示すように、本実施の形態にかかるEAIサーバ10は、ネットワークを介して、他のサーバやホストコンピュータと接続され、これらとのデータ授受を制御する入出力インタフェース(I/F)12と、EAIサーバにおけるデータ待ち合わせを実行する待ち合わせ処理部14と、データ加工処理の同時実行数を制御する実行制御部16と、各種テーブルやデータを記憶する記憶装置18とを有する。記憶装置20には、後に詳述するシステム制限テーブル20、処理タイプ別制限情報テーブル22、I/F定義テーブル24と、ファイル定義テーブル26と、受信データ管理テーブル28と、キューテーブル30と、ノート定義テーブル32とが保持される。また、記憶装置20は、他のサーバやホストコンピュータからのデータを収容することができる。
このように構成されたEAIサーバ10における各テーブルについて以下に詳細に説明する。図2(a)はシステム制限情報テーブルの例を示す図である。システム制限情報テーブル200は、キューをチェックする間隔を示す「キューチェック間隔」を含む。
図2(b)は、処理タイプ別制限情報テーブルの例を示す図である。本実施の形態において、処理タイプ別制限情報210には、3つの処理タイプが設定され、それぞれのタイプについて、標準の処理タイプのジョブ何本分を換算するかを示す値が付加される。図2(b)の例では、「処理タイプ1」のジョブについては、通常の処理タイプのジョブの「3」本分に換算され、「処理タイプ3」のジョブについては、通常の処理タイプのジョブの「0.5」本分に換算される。また、「処理タイプ2」のジョブが、通常の処理タイプのジョブに相当する。
また、図2(c)に示すように、ノード定義テーブルは、各ホストにて同時に実行できる最大ジョブ数を示す「同時実行ジョブ(Job)最大数」と、無制限に当該ホストを起動することができる最低のジョブ数を示す「最低同時実行ジョブ(Job)数」とを含む。「同時実行ジョブ最大数」などは、EAIサーバのCPU数、メモリ量および平均的な負荷をもつジョブの実行数などに基づいて予め設定される。システム制限情報テーブル、処理タイプ別制限情報テーブル、および、ノード定義テーブルのレコードは事前に登録される。 図2(d)に示すように、I/F定義テーブル220には、項目として、インタフェースを一意的に特定する「I/F識別子」、インタフェース名称を示す「I/F名称」、および、「優先度」および「処理タイプ」が設けられている。
図3(a)は、ファイル定義テーブルの例を示す図である。図3(a)に示すように、ファイル定義テーブル300には、項目として、ファイルを一意的に特定する「ファイル識別子」、「I/F識別子」、「ファイル名称」、送受信を区分する「送受信区分」、ファイルの送信先を示す「送信先情報」、標準的なデータサイズの上限を示す「基準データ量」、および、基準データ量を超えた場合の追加加重を示す「データ量対比加重」が含まれる。I/F定義テーブルおよびファイル定義テーブルにより、1つの加工処理(I/F定義)にて使用されるデータ、生成されるデータ、および、生成されたデータの引渡し先を管理することができる。また、これらI/F定義テーブルおよびファイル定義テーブルのレコードは事前に登録される。
図3(b)は、キューテーブルの例を示す図である。キューテーブル310は、キュー登録日およびキュー番号を示す「キュー識別子」、「I/F識別子」、当該キュー中のジョブの実行状態を示す「実行状態」、キューを実行するホストを示す「ホスト名」、「優先度」、「標準タイプ対比加重」、および、加工処理を実行するときのディレクトリを示す「基準Dir」を含む。キューテーブルにより、実際に処理するジョブの実行順序が管理される。
図3(c)は、受信データ管理テーブルの例を示す図である。受信データ管理テーブルには、項目として、「キュー識別子」、「ファイル識別子」、「I/F識別子」、「データ受信状態」および「データ量対比加重」が含まれる。キューテーブルおよび受信データ管理テーブルのレコードは、処理実行時に動的に登録され或いは削除される。
上記構成のテーブルを備えたEAIサーバにおけるデータ待ち合わせ処理について説明する。図4は、データ待ち合わせ処理を概略的に示すフローチャートである。
EAIサーバの入出力I/F12がデータを受理すると、データ待ち合わせ処理部14は、受信したデータのファイル名から、ファイル識別子(以下、「受信時抽出ファイル識別子」と称する)を抽出する(ステップ401)。
ここで、ファイル名の命名規則は、たとえば、(ファイル識別子_受信日時_受信処理プロセス番号.dat) のように、ファイル識別子を含み、かつ、短時間(もしくは、同時)に同一ファイル識別子のデータを受信しても上書きされる危険のないように設定しておくのが望ましい。
次いで、データ待ち合わせ処理部14は、キューテーブルにデータを配置するために、作業用ロックを「ロック状態」にする(ステップ402)。これにより、キューテーブルへのデータ配置が並列動作することが防止される。なお、「ロック状態」は処理終了の際に解除され、「ロック解除状態」となる。
次いで、データ待ち合わせ処理部14は、受信時抽出ファイル識別子を使用して、I/F定義情報テーブルを検索し、I/F識別子、優先度、処理タイプなどを抽出する(ステップ403)。ここでは、たとえば、以下の検索条件が利用され得る。
検索条件:ファイル識別子=受信時抽出ファイル識別子
AND(かつ) 送受信区分=受信
なお、上記値が抽出できなかった場合は(ステップ404でノー(No))、未登録ファイルの受信としてエラー処理を実行される(ステップ405)。
AND(かつ) 送受信区分=受信
なお、上記値が抽出できなかった場合は(ステップ404でノー(No))、未登録ファイルの受信としてエラー処理を実行される(ステップ405)。
次いで、データ待ち合わせ処理部14は、検索されたI/F識別子(以下、「検索I/F識別子」と称する。)を使用して受信データ管理テーブルを検索する(ステップ406)。たとえば、検索条件、取得順序、取得項目は以下のようなものとなる。
検索条件:I/F識別子=検索I/F識別子
AND ファイル識別子=受信時抽出ファイル識別子
AND データ受信状態=未受信
取得順序:キュー識別子
取得項目:キュー識別子(以下、「受信管理キュー識別子」と称する。)
ファイル識別子(以下、「受信管理ファイル識別子」と称する。)
処理基準ディレクトリ(以下、「検索処理基準ディレクトリ」と称する。)
AND ファイル識別子=受信時抽出ファイル識別子
AND データ受信状態=未受信
取得順序:キュー識別子
取得項目:キュー識別子(以下、「受信管理キュー識別子」と称する。)
ファイル識別子(以下、「受信管理ファイル識別子」と称する。)
処理基準ディレクトリ(以下、「検索処理基準ディレクトリ」と称する。)
なお、ここで抽出されるレコードは1件のみである。
検索の結果、レコードが見出された場合(受信待ちであった場合)には(ステップ407でイエス(Yes))、待ち合わせ処理部14は、受信データ管理テーブルを更新する(ステップ408)。データ更新条件、更新項目は以下のとおりである。
更新条件:キュー識別子=受信データ管理キュー識別子
AND ファイル識別子=受信管理ファイル識別子
更新項目:データ受信状態=受信済み
AND ファイル識別子=受信管理ファイル識別子
更新項目:データ受信状態=受信済み
なお、データ量対比加重について、受信したデータのI/F定義情報に基準データ量・データ量対比加重が登録されている場合は、受信したデータのサイズと基準データ量を比較し、 受信したデータ量が大きい場合は、受信管理テーブルのデータ量対比加重がセットされる。その一方、データ量が大きくない場合は、「0(ゼロ)」がセットされる。
また、データ待ち合わせ処理部14は、受信したデータを検索処理基準ディレクトリに移動し(ステップ409)、キューテーブルを更新する(ステップ410)。更新条件は以下のとおりである。
更新条件:キュー識別子=受信管理キュー識別子
なお、更新項目のうち、データ量対比加重については、受信管理テーブルのキュー識別子=受信管理キュー識別子のレコードのデータ量対比加重の合計となる。
その一方、検索の結果、データが見出されなかった場合(つまり、受信待ちしていない場合)には(ステップ407でノー(No))、図5に示すように、待ち合わせ処理部14は、キュー識別子を採番するとともに、基準ディレクトリ「基準Dir」を生成する(ステップ501)。
その一方、検索の結果、データが見出されなかった場合(つまり、受信待ちしていない場合)には(ステップ407でノー(No))、図5に示すように、待ち合わせ処理部14は、キュー識別子を採番するとともに、基準ディレクトリ「基準Dir」を生成する(ステップ501)。
基準ディレクトリの生成においては、処理日時、処理プログラムのプロセス番号等を使用し、一意性を持ったディレクトリ名が生成される。
次いで、データ待ち合わせ処理部14は、受信データを、生成された基準ディレクトリに移動する(ステップ502)。また、データ待ち合わせ処理部14は、受信管理テーブル検索I/F識別子を使用して、I/F定義情報を検索し(ステップ503)、そのI/F識別子配下にあるファイル識別子すべてについて、先に採番したキュー識別子を使用して受信データ管理テーブルに記憶する(ステップ504)。
このとき、データ受信状態は受信時抽出ファイル識別子のものは、受信済みとし、その他のファイル識別子は未受信として、受信データ管理テーブルに記憶するする。また、I/F定義情報に、「基準データ量・データ量対比加重」が登録されている場合に、
受信したデータのサイズ>基準データ量
が満たされる場合は、受信管理テーブルのデータ量対比加重に、I/F定義情報のデータ量対比加重がセットされる。
が満たされる場合は、受信管理テーブルのデータ量対比加重に、I/F定義情報のデータ量対比加重がセットされる。
次いで、データ待ち合わせ処理部14は、キューテーブルに新規キュー情報を記憶する(ステップ505)。新規キュー情報のレコードには、以下の項目が含まれる。
キュー識別子:先に採番したキュー識別子
I/F識別子:検索I/F識別子
実行状態:実行待ち
実行ホスト名:未登録(ヌル:NULL)
優先度 :I/F定義情報の検索時に取得した優先度
処理タイプ対比加重:I/F定義情報の検索時に取得した処理タイプを使用して処理タイプ別制限情報テーブルを検索して得られた標準タイプ対比加重
基準Dir:先に生成した基準Dir
キュー識別子:先に採番したキュー識別子
I/F識別子:検索I/F識別子
実行状態:実行待ち
実行ホスト名:未登録(ヌル:NULL)
優先度 :I/F定義情報の検索時に取得した優先度
処理タイプ対比加重:I/F定義情報の検索時に取得した処理タイプを使用して処理タイプ別制限情報テーブルを検索して得られた標準タイプ対比加重
基準Dir:先に生成した基準Dir
データ量対比加重合計:上記受信データ管理テーブルに記憶した時のデータ量対比加重
このような、処理ロジックを使用する事により、同一ファイル識別子のデータが多数受信された場合でも、I/Fで使用するデータがFIFO(First In First Out)で結合されて処理される。
このような、処理ロジックを使用する事により、同一ファイル識別子のデータが多数受信された場合でも、I/Fで使用するデータがFIFO(First In First Out)で結合されて処理される。
たとえば、図5(a)および(b)にそれぞれ示すように、処理タイプ別制限情報テーブルおよびノード定義テーブルのレコードに値が当てられているとする。他のシステムから「R0001_200307071354_12345.dat」というファイル名のデータを受理した場合を考える。この例では、ファイル名からファイル識別子を抽出すると、「R0001」となる。また、I/F定義テーブル(図6(c)参照)から、このファイル識別子は、「2:1のI/F」であることがわかる。
データ待ち合わせ処理部14は、ファイル定義テーブル(図6(d)参照)のレコードを参照して、すでにファイル定義テーブル中に存在するか否かを判断する。この例では、対応するレコードがファイル定義テーブルに存在している(符号601参照)。また、そのファイル識別子が、そのファイル識別子が受信データ管理テーブル(図7(a)参照)に、そのデータ受信状態が「未受信」の状態で存在しているか確認する。この例では、対応するレコードのデータ受信状態は「未受信」となっている(符号602参照)
次いで、その未受信データの一番古いキュー識別子が取得される。また、受信したファイルのサイズとファイル定義 テーブルの基準データ量とが比較され、基準データ量より大きい場合には、ファイル定義テーブルのデータ量対比加重が、受信データ管理テーブルにセットされる。次いで、 キューテーブルから基準ディレクトリ「基準Dir」が取得され、受信したデータが移動される。この後、キューのデータ量対比加重項目が再計算され、実行状態が変更される。図7(b)は、キューテーブルの状態の一例を示す。ここでは、まだジョブを実行するホスト名が決定されず、したがって、その項目の値はヌル(NULL)となっている。
次に、本実施の形態にかかる実行制御部16における処理について説明する。実行制御部16におけるデータ加工処理の同時実行数の制御は、以下のように行われる。
ノード定義情報テーブルに登録された各ホストにおいて、最低同時実行ジョブ数に満たないものがあれば、無条件でそのホストにてジョブを起動するように構成される。そのときに、ホストのチェックは、同時実行ジョブ最大数の大きいものから小さいものに向かう順序で行われる。
ノード定義情報テーブルに登録された各ホストにおいて、最低同時実行ジョブ数に満たないものがあれば、無条件でそのホストにてジョブを起動するように構成される。そのときに、ホストのチェックは、同時実行ジョブ最大数の大きいものから小さいものに向かう順序で行われる。
また、キューから取り出された起動対象ジョブの換算ジョブ数が算出される。ここでは、そのジョブの処理タイプに課せられた標準タイプ対比加重と、受信データ量から算出したデータ量対比加重とを使用して換算ジョブ数が算出される。
また、キューテーブルを参照して、ホストごとの実行状態が算出される。ここでは、実行ジョブ数、実行換算ジョブ数、同時実行ジョブ最大数、および、実行可能換算ジョブ数が以下のように取得される。
実行ジョブ数:キューのレコード数
実行換算ジョブ数:「標準タイプ対比加重」の合計 +「データ量対比加重合計」の合計
同時実行ジョブ最大数:キューテーブルのホスト名をキーとして、ノード定義情報テーブルを検索して得られた同時実行ジョブ最大数
実行可能換算ジョブ数:「同時実行ジョブ最大数」−「実行換算ジョブ数」
なお、算出結果は、「実行可能換算ジョブ数」の多い物から取得される。
実行換算ジョブ数:「標準タイプ対比加重」の合計 +「データ量対比加重合計」の合計
同時実行ジョブ最大数:キューテーブルのホスト名をキーとして、ノード定義情報テーブルを検索して得られた同時実行ジョブ最大数
実行可能換算ジョブ数:「同時実行ジョブ最大数」−「実行換算ジョブ数」
なお、算出結果は、「実行可能換算ジョブ数」の多い物から取得される。
起動対象ジョブの換算ジョブ数よりも多い実行可能換算ジョブ数のホストにてジョブが起動されるように、実行制御部16はホストにジョブの処理依頼を送信する。
図8は、実行処理部にて実行される処理を示すフローチャートである。実行制御部16は、キューに実行待ちのものがあるかチェックする(ステップ801)。より詳細には、実行制御部16は、キューテーブル中、「実行状態」が「実行待ち」であるようなレコードを、「優先度」・「キュー識別子」の順に検索し、先頭レコードの換算ジョブ数、つまり、「標準タイプ対比加重+データ量対比加重合計」(以下、「WAITJOB」と称する。)を算出する。
実行待ちのものがなければ(ステップ801でノー(No))、システム制限情報テーブルのキューチェック間隔で指定された時間だけスリープして、ステップ801に戻る。
実行待ちのものがある場合には(ステップ801でイエス(Yes)、実行制御部16は、キューテーブルから所定の情報を取得して(ステップ802)、最低同時実行本数割れのホストを検索する(ステップ803)。より詳細には、キューテーブルに登録されている実行中のレコードから以下の情報がホスト別に取得される。
実行待ちのものがある場合には(ステップ801でイエス(Yes)、実行制御部16は、キューテーブルから所定の情報を取得して(ステップ802)、最低同時実行本数割れのホストを検索する(ステップ803)。より詳細には、キューテーブルに登録されている実行中のレコードから以下の情報がホスト別に取得される。
実行ジョブ総本数:キューテーブルの「実行状態」=「実行中」のレコード数
同時実行ジョブ最大数:キューテーブルのホスト名をキーとしてノード定義情報テーブルを検索して得られた同時実行ジョブ最大数
最低同時実行本数:キューテーブルのホスト名をキーとしてノード定義情報テーブルを検索して得られた最低同時実行ジョブ数
最低同時実行本数枠:「最低同時実行本数」−「同時実行ジョブ総本数」
同時実行ジョブ最大数:キューテーブルのホスト名をキーとしてノード定義情報テーブルを検索して得られた同時実行ジョブ最大数
最低同時実行本数:キューテーブルのホスト名をキーとしてノード定義情報テーブルを検索して得られた最低同時実行ジョブ数
最低同時実行本数枠:「最低同時実行本数」−「同時実行ジョブ総本数」
実行制御部16は、算出結果のうち、「最低同時実行本数枠」、「同時実行ジョブ最大数」の多い物順で探索し、最初のレコードに含まれるホストを特定する。
なお、キューテーブルに実行中のジョブが登録されていないホストに関しては、
実行ジョブ総本数:ゼロ
最低同時実行本数:ノード定義情報テーブルの最低同時実行ジョブ数
最低同時実行本数枠:ノード定義情報テーブルの最低同時実行ジョブ数
として扱う。
実行ジョブ総本数:ゼロ
最低同時実行本数:ノード定義情報テーブルの最低同時実行ジョブ数
最低同時実行本数枠:ノード定義情報テーブルの最低同時実行ジョブ数
として扱う。
実行制御部16は、最低実行本数割れのホストがあるか否かを判断する(ステップ804)。ステップ804でイエス(Yes)と判断された場合には、ステップ801で見出されたキューのジョブを、ステップ803で特定されたホストで実行すべく依頼を送信する(ステップ805)。次いで、システム制限情報テーブルの「キューチェック間隔」で指定された時間だけスリープしてステップ801に戻る。
ステップ804でノー(No)と判断された場合には、実行制御部16は、各ホストの実行可能換算ジョブ数を取得する(ステップ806)。ここでは、実行制御部16は、キューテーブルから以下の情報をホスト別に算出し、実行可能換算ジョブ数の一番多いホストを特定する。
実行ジョブ総本数:キューテーブルの「実行状態」=「実行中」のレコード数
実行中換算ジョブ数(以下、「JRUN」と称する):キューテーブルの実行状態=
実行中のレコードの標準タイプ対比加重の合計+データ量対比加重合計の合計
同時実行ジョブ最大数:キューテーブルのホスト名をキーとしてノード定義情報テーブルを検索して得られた同時実行Job最大数(以下、「MAXRUN」と称する。)
実行可能換算ジョブ数(以下、「EXERUN」と称する。):MAXRUN−JRUN
実行制御部16は、上記算出結果に基づいて、MAXRUNの多い順にホストを特定する。
実行中換算ジョブ数(以下、「JRUN」と称する):キューテーブルの実行状態=
実行中のレコードの標準タイプ対比加重の合計+データ量対比加重合計の合計
同時実行ジョブ最大数:キューテーブルのホスト名をキーとしてノード定義情報テーブルを検索して得られた同時実行Job最大数(以下、「MAXRUN」と称する。)
実行可能換算ジョブ数(以下、「EXERUN」と称する。):MAXRUN−JRUN
実行制御部16は、上記算出結果に基づいて、MAXRUNの多い順にホストを特定する。
次いで、実行処理部16はジョブ起動の可否を判断する(ステップ807)。ここでは、
EXERUN≧WAITJOB
である場合、処理枠があり、ジョブの起動が可能であると判断する。
EXERUN≧WAITJOB
である場合、処理枠があり、ジョブの起動が可能であると判断する。
処理枠なしと判断された場合(ステップ807でノー(No))、実行制御部16は、システム制限情報テーブルのキューチェック間隔で指定された時間だけスリープし、ステップ801に戻る。
その一方、処理枠ありと判断された場合、キューテーブル中、実行すべきジョブのキューの実行状態を実行中に変更し、ステップ806、807で特定されたホストにて、その上部を実行すべく依頼を送信する(ステップ805)。その後、ステム制限情報テーブルの「キューチェック間隔」で指定された時間だけスリープしてステップ801に戻る。
システム情報テーブル、処理タイプ別制限情報テーブル、キューテーブルおよび受信データテーブルに、それぞれ図9(a)〜(c)ならびに図10(a)および(b)に示すようなデータが与えられていた場合を例にして、上記実行制御部16の処理をより詳細に説明する。ここでは、実行されているジョブは存在しない。また、単純化の為、起動したジョブの順番に終了すると考える。
(1)「QUE=2003070100001」を検出したときのキューテーブルの状態を図11(a)に示す。この状態で、実行制御部16が換算ジョブ数を算出すると以下のようになる。
換算ジョブ数=標準タイプ対比加重(=3)+データ量対比加重合計(=0)=3
また、最低同時実行本数割れのホストの検索は以下のようになる。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=2
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=1
となるため、ホストAがヒットする。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=2
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=1
となるため、ホストAがヒットする。
ヒットしたノードの最低同時実行本数枠はゼロでないため、 キュー(2003070100001)の「実行状態」を「実行中」、かつ、「実行HOST名」=「HOST-A」と更新し、ホストA(HOST-A)にてジョブを起動する。ジョブ起動後のキューテーブルの状態を図11(b)に示す。
(2)QUE=2003070100002 検知時(終了したジョブなしとする。)
このときのキューテーブルの状態を図12(a)に示す。実行制御部16は、換算ジョブ数を算出する。
換算Job数=標準タイプ対比加重(=3)+データ量対比加重合計(=0)=3
このときのキューテーブルの状態を図12(a)に示す。実行制御部16は、換算ジョブ数を算出する。
換算Job数=標準タイプ対比加重(=3)+データ量対比加重合計(=0)=3
次いで、最低同時実行本数割れのソフトを検索すると以下のようになる。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ本数 =2
最低同時実行本数枠=1
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=3
最低同時実行ジョブ本数 =1
最低同時実行本数枠=1
となる。その結果、ホストAがヒットする。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ本数 =2
最低同時実行本数枠=1
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=3
最低同時実行ジョブ本数 =1
最低同時実行本数枠=1
となる。その結果、ホストAがヒットする。
ヒットしたノードの最低同時実行本数枠がゼロでないため、 キュー(2003070100002)の「実行状態」を「実行中」、「実行HOST命」=「HOST-A」と更新し、ホストA(HOST-A)にてジョブを起動する。ジョブ起動後のキューテーブルの状態を図12(b)に示す。
(3)QUE=2003070100003 検知時(終了したジョブなしとする。)
このときのキューテーブルの状態を図13(a)に示す。実行制御部16は、換算ジョブを算出する。
このときのキューテーブルの状態を図13(a)に示す。実行制御部16は、換算ジョブを算出する。
換算Job数=標準タイプ対比加重(=1)+データ量対比加重合計(=0)=1
次いで、最低同時実行本数割れのホストを探索すると以下のようになる。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数 =2
最低同時実行本数枠=0
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=1
となる。その結果、ホストB(HOST-B)がヒットする。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数 =2
最低同時実行本数枠=0
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=0
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=1
となる。その結果、ホストB(HOST-B)がヒットする。
ヒットしたノードの最低同時実行本数枠がゼロでないため、 キュー(2003070100003)の「実行状態」を「実行中」、かつ、「実行HOST名」=「HOST-B」と更新し、ホストB(HOST-B)にてJobを起動する。図13(b)は、ジョブ起動後のキューテーブルを示す。
(4)QUE=2003070100004 検知時(終了したJOBなしとする。)
図14は、検知時のキューテーブルの状態を示す図である。
換算ジョブ数を算出すると以下のとおりになる。
換算ジョブ数=標準タイプ対比加重(=3)+データ量対比加重合計(=1)=4
図14は、検知時のキューテーブルの状態を示す図である。
換算ジョブ数を算出すると以下のとおりになる。
換算ジョブ数=標準タイプ対比加重(=3)+データ量対比加重合計(=1)=4
最低同時実行本数割れのホストの探索においては、以下の値が取得される。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数 =2
最低同時実行本数枠=0
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。したがって、最低同時実行本数割れのホストはないと判断される。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数 =2
最低同時実行本数枠=0
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。したがって、最低同時実行本数割れのホストはないと判断される。
このため、実行可能ジョブ数が以下のように取得される。
キューテーブルを参照すると、
ホストA(HOST-A)については、
実行ジョブ本数=2
実行中換算ジョブ数=6
同時ジョブ実行最大数=5
実行可能ジョブ数=5−6=−1
ホストB(HOST-B)については、
実行ジョブ本数=1
実行中換算ジョブ数=1
同時ジョブ実行最大数=3
実行可能ジョブ数=3−1=2
となる。したがって、ホストB(HOST-B)が、ジョブを実行する」ホストの候補となる。
キューテーブルを参照すると、
ホストA(HOST-A)については、
実行ジョブ本数=2
実行中換算ジョブ数=6
同時ジョブ実行最大数=5
実行可能ジョブ数=5−6=−1
ホストB(HOST-B)については、
実行ジョブ本数=1
実行中換算ジョブ数=1
同時ジョブ実行最大数=3
実行可能ジョブ数=3−1=2
となる。したがって、ホストB(HOST-B)が、ジョブを実行する」ホストの候補となる。
しかしながら、先に干すとBにおいては、先に算出された換算ジョブ数=4であるため、実行不可と判定されジョブは起動されない。その結果、実行制御部16はスリープとなる。
(5)QUE=2003070100001 終了後のチェック時(再度、QUE=2003070100004の起動確認を実施する。)
図15(a)は、チェック時のキューテーブルを示す。
このときに、換算ジョブ数は以下のように算出される。
換算ジョブ数=標準タイプ対比加重(=3)+データ量対比加重合計(=1)=4
図15(a)は、チェック時のキューテーブルを示す。
このときに、換算ジョブ数は以下のように算出される。
換算ジョブ数=標準タイプ対比加重(=3)+データ量対比加重合計(=1)=4
最低同時実行本数割れのホストの検索は以下のとおりとなる。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=1
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。その結果、ホストA(HOST-A)がヒットする。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=1
となる。また、ホストB(HOST-B)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。その結果、ホストA(HOST-A)がヒットする。
ヒットしたノードの最低同時実行本数枠がゼロでないため、キュー(2003070100004)の「実行状態」を「実行中」、かつ、「実行HOST名」=「HOST-A」と更新し、ホストA(HOST-A)にてジョブを起動する。起動後のキューテーブルの状態を図15(b)に示す。
(6)QUE=2003070100005 検知時(新たに終了したジョブなしとする。)
図16(a)は、チェック時のキューテーブルを示す。
換算ジョブ数は以下のように算出される。
図16(a)は、チェック時のキューテーブルを示す。
換算ジョブ数は以下のように算出される。
換算ジョブ数=標準タイプ対比加重(=0.5)+データ量対比加重合計(=0)=0.5
また、最低同時実行本数割れのホストは以下のように検索される。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=0
ホストB(HOST-B)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。その結果、最低同時実行本数割れのホストは存在しないと判断される。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=0
ホストB(HOST-B)については、
同時実行ジョブ総本数=1
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。その結果、最低同時実行本数割れのホストは存在しないと判断される。
したがって、実行可能ジョブ数が以下のように、キューテーブルを参照して算出される。
ホストA(HOST-A)については、
実行ジョブ本数=2
実行中換算ジョブ数=7
同時ジョブ実行最大数=5
実行可能ジョブ数=5−7=−2
ホストB(HOST-B)については、
実行ジョブ本数=1
実行中換算ジョブ数=1
同時ジョブ実行最大数=3
実行可能ジョブ数=3−1=2
となる。したがって、ホストB(HOST-B)が、ジョブを実行するホストの候補となる。
実行ジョブ本数=2
実行中換算ジョブ数=7
同時ジョブ実行最大数=5
実行可能ジョブ数=5−7=−2
ホストB(HOST-B)については、
実行ジョブ本数=1
実行中換算ジョブ数=1
同時ジョブ実行最大数=3
実行可能ジョブ数=3−1=2
となる。したがって、ホストB(HOST-B)が、ジョブを実行するホストの候補となる。
ここで、先に換算された換算ジョブ数=0.5であるため、ジョブをホストBにて実行可と判定される。その結果、キュー(2003070100005)の「実行状態」を「実行中」、かつ、「実行HOST名」=「HOST-B」と更新し、ホストB(HOST-B)にてジョブを起動する。起動後のキューテーブルの状態を図16(b)に示す。
(7)QUE=2003070100006 検知時(新たに終了したジョブなしとする。)
図17(a)は、チェック時のキューテーブルを示す。
換算ジョブ数は以下のように算出される。
図17(a)は、チェック時のキューテーブルを示す。
換算ジョブ数は以下のように算出される。
換算ジョブ数=標準タイプ対比加重(=0.5)+データ量対比加重合計(=1)=1.5
また、最低同時実行本数割れのホストは以下のように検索される。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=0
ホストB(HOST-B)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。したがって、最低同時実行本数割れのホストは存在しないと判断される。
キューテーブルとノード定義情報テーブルとから探索した結果、
ホストA(HOST-A)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ本数=2
最低同時実行本数枠=0
ホストB(HOST-B)については、
同時実行ジョブ総本数=2
同時実行ジョブ最大数=3
最低同時実行ジョブ本数=1
最低同時実行本数枠=0
となる。したがって、最低同時実行本数割れのホストは存在しないと判断される。
このため、実行可能ジョブ数が以下のように、キューテーブルを参照して算出される。
ホストA(HOST-A)については、
実行ジョブ本数=2
実行中換算ジョブ数=6
同時ジョブ実行最大数=5
実行可能ジョブ数=5−7=−2
ホストB(HOST-B)については、
実行ジョブ本数=2
実行中換算ジョブ数=1.5
同時ジョブ実行最大数=3
実行可能ジョブ数=3−1.5=1.5
となる。したがって、ホストB(HOST-B)が、ジョブを実行するホストの候補となる。
実行ジョブ本数=2
実行中換算ジョブ数=6
同時ジョブ実行最大数=5
実行可能ジョブ数=5−7=−2
ホストB(HOST-B)については、
実行ジョブ本数=2
実行中換算ジョブ数=1.5
同時ジョブ実行最大数=3
実行可能ジョブ数=3−1.5=1.5
となる。したがって、ホストB(HOST-B)が、ジョブを実行するホストの候補となる。
先に算出された換算ジョブ数=1.5であるため、ジョブをホストBにて実行可能と判断され、キュー(2003070100006)の「実行状態」を「実行中」、かつ、「実行HOST名」=「HOST-B」と更新し、ホストB(HOST-B)にてジョブを起動する。図17(b)はジョブ起動後のキューテーブルの状態を示す図である。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
10 EAIサーバ
12 入出力I/F
14 データ待ち合わせ処理部
16 実行制御部
18 記憶装置
20 システム制限情報テーブル
22 処理タイプ別制限情報テーブル
24 I/F定義テーブル
26 ファイル定義テーブル
28 受信データ管理テーブル
30 キューテーブル
32 ノード定義テーブル
12 入出力I/F
14 データ待ち合わせ処理部
16 実行制御部
18 記憶装置
20 システム制限情報テーブル
22 処理タイプ別制限情報テーブル
24 I/F定義テーブル
26 ファイル定義テーブル
28 受信データ管理テーブル
30 キューテーブル
32 ノード定義テーブル
Claims (10)
- ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、
各ホストにて実行可能なジョブの最大実行数を示す同時実行ジョブ最大数と、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数とを含むノード定義情報テーブルと、
複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、
インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、
ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、
ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、ジョブを実行するホスト名、標準タイプ対比加重、および、データ量対比加重の合計を示すキューテーブルと、
前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルと、
前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段と、
前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に相当するジョブを実行すべきホストを、各ホストの最低同時実行ジョブ数および同時実行ジョブ最大数を考慮して特定し、前記ホストにジョブを実行させるジョブ実行制御手段とを備えたことを特徴とするEAIサーバ。 - 前記データ待ち合わせ手段が、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶することを特徴とする請求項1に記載のEAIサーバ。
- 前記ジョブ実行制御手段が、各ホストに関して、
最低同時実行本数枠=最低同時実行ジョブ本数−実行中のジョブ数
を算出し、前記最低同時実行本数枠の最大のものに、前記ジョブを実行させることを特徴とする請求項1または2に記載のEAIサーバ。 - 前記ジョブ実行制御手段が、各ホストに関して、
当該ホストで実行中のジョブの標準タイプ対比加重の合計およびデータ量対比加重の合計の総和である実行中換算ジョブ数を算出し、
同時実行ジョブ最大数−実行中換算ジョブ数に相当する実行可能換算ジョブ数が最大のものに、前記ジョブを実行させることを特徴とする請求項3に記載のEAIサーバ。 - 前記ジョブ実行制御手段が、
前記換算ジョブ数>実行可能換算ジョブ数
である場合に、前記ホストにジョブを実行させることを特徴とする請求項4に記載のEAIサーバ。 - ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、各ホストにて実行可能なジョブの最大実行数を示す同時実行ジョブ最大数と、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数とを含むノード定義情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、ジョブを実行するホスト名、標準タイプ対比加重、および、データ量対比加重の合計を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルとを含むEAIサーバにより読み出し可能なプログラムであって、前記EAIサーバを、
前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段、および、
前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に相当するジョブを実行すべきホストを、各ホストの最低同時実行ジョブ数および同時実行ジョブ最大数を考慮して特定し、前記ホストにジョブを実行させるジョブ実行制御手段として機能させることを特徴とする、EAIサーバにより読み取り可能なプログラム。 - 前記EAIサーバを前記データ待ち合わせ手段として機能させる場合において、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶するように、前記EAIサーバを動作させることを特徴とする請求項6に記載のプログラム。
- 前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、各ホストに関して、
最低同時実行本数枠=最低同時実行ジョブ本数−実行中のジョブ数
を算出し、前記最低同時実行本数枠の最大のものに、前記ジョブを実行させるように、前記EAIサーバを動作させることを特徴とする請求項6または7に記載のプログラム。 - 前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、各ホストに関して、
当該ホストで実行中のジョブの標準タイプ対比加重の合計およびデータ量対比加重の合計の総和である実行中換算ジョブ数を算出し、
同時実行ジョブ最大数−実行中換算ジョブ数に相当する実行可能換算ジョブ数が最大のものに、前記ジョブを実行させるように、前記EAIサーバを動作させることを特徴とする請求項8に記載のプログラム。 - 前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、
前記換算ジョブ数>実行可能換算ジョブ数
である場合に、前記ホストにジョブを実行させるように、前記EAIサーバを動作させることを特徴とする請求項9に記載のEAIプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003339758A JP2005107824A (ja) | 2003-09-30 | 2003-09-30 | Eaiサーバおよびeaiサーバのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003339758A JP2005107824A (ja) | 2003-09-30 | 2003-09-30 | Eaiサーバおよびeaiサーバのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005107824A true JP2005107824A (ja) | 2005-04-21 |
Family
ID=34534861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003339758A Pending JP2005107824A (ja) | 2003-09-30 | 2003-09-30 | Eaiサーバおよびeaiサーバのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005107824A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703803B1 (ko) * | 2006-01-04 | 2007-04-09 | 삼성전자주식회사 | 어플리케이션의 안정성을 위한 메시지 처리 장치 및 방법 |
JP2007133578A (ja) * | 2005-11-09 | 2007-05-31 | Hitachi Software Eng Co Ltd | データ処理システム及びデータ送信システム |
KR100808368B1 (ko) | 2006-06-05 | 2008-02-27 | 주식회사 케이티프리텔 | 데이터베이스 복제를 위한 대량 데이터 송/수신 방법 및장치 |
JP2008097378A (ja) * | 2006-10-12 | 2008-04-24 | Nomura Research Institute Ltd | ジョブ管理装置、ジョブ実行装置、及びそれら装置を含むジョブ管理システム |
JP2011159107A (ja) * | 2010-02-01 | 2011-08-18 | Nec Corp | スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム |
-
2003
- 2003-09-30 JP JP2003339758A patent/JP2005107824A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007133578A (ja) * | 2005-11-09 | 2007-05-31 | Hitachi Software Eng Co Ltd | データ処理システム及びデータ送信システム |
JP4537307B2 (ja) * | 2005-11-09 | 2010-09-01 | 日立ソフトウエアエンジニアリング株式会社 | データ転送システム |
KR100703803B1 (ko) * | 2006-01-04 | 2007-04-09 | 삼성전자주식회사 | 어플리케이션의 안정성을 위한 메시지 처리 장치 및 방법 |
KR100808368B1 (ko) | 2006-06-05 | 2008-02-27 | 주식회사 케이티프리텔 | 데이터베이스 복제를 위한 대량 데이터 송/수신 방법 및장치 |
JP2008097378A (ja) * | 2006-10-12 | 2008-04-24 | Nomura Research Institute Ltd | ジョブ管理装置、ジョブ実行装置、及びそれら装置を含むジョブ管理システム |
JP2011159107A (ja) * | 2010-02-01 | 2011-08-18 | Nec Corp | スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3882931B2 (ja) | 仮想計算機環境におけるディスパッチ機能の管理 | |
US5687372A (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
EP2002343B1 (en) | Multi-cache cooperation for response output caching | |
US7958511B1 (en) | Mechanism for estimating the computing resources needed to execute a job | |
US7769715B2 (en) | Synchronization of access permissions in a database network | |
US6189007B1 (en) | Method and apparatus for conducting a high performance locking facility in a loosely coupled environment | |
JP2008541263A (ja) | ファイルシステムディレクトリの高速かつ信頼性のある同期 | |
JP2004326753A (ja) | 仮想計算機環境におけるロックの管理 | |
JPH11353196A (ja) | タイム・スケジュ―ルされたプロセス管理用ガバナ | |
JPH06103132A (ja) | 並行制御方法 | |
US5682507A (en) | Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records | |
CN103959275A (zh) | 动态进程/对象范围的存储器关联性调整器 | |
US5790868A (en) | Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment | |
US6253274B1 (en) | Apparatus for a high performance locking facility | |
WO2004077214A2 (en) | System and method for scheduling server functions irrespective of server functionality | |
JP4432087B2 (ja) | データベース更新管理システム、プログラムおよび方法 | |
US5630133A (en) | Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment | |
JP2005107824A (ja) | Eaiサーバおよびeaiサーバのプログラム | |
JP2005107632A (ja) | Eaiサーバおよびeaiサーバのプログラム | |
CN102214094B (zh) | 经由异步编程模型执行操作 | |
JP5055059B2 (ja) | データベース処理方法、その実施システム及びプログラム | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
US20140317619A1 (en) | Virtual computer system and i/o implementing method in virtual computer | |
JP4211645B2 (ja) | 専用プロセッサの備わった計算機システム | |
JP2933005B2 (ja) | 管理情報格納装置 |