JP3781007B2 - 計算機間のデータ引き継ぎ方法 - Google Patents
計算機間のデータ引き継ぎ方法 Download PDFInfo
- Publication number
- JP3781007B2 JP3781007B2 JP2003027741A JP2003027741A JP3781007B2 JP 3781007 B2 JP3781007 B2 JP 3781007B2 JP 2003027741 A JP2003027741 A JP 2003027741A JP 2003027741 A JP2003027741 A JP 2003027741A JP 3781007 B2 JP3781007 B2 JP 3781007B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- computer
- file
- access
- 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 - Lifetime
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明は、計算機システム間のデータ引き継ぎ方法に関し、特に、複数の計算機間でのデータ引き継ぎを効率的に行うための計算機間のデータ引き継ぎ方法に関する。
【0002】
【従来の技術】
あるジョブ(計算機における処理の単位)と別のジョブ間でデータを引き継ぐ場合、まず書き込み側のジョブが、引き継ぎデータから構成されたファイルを記憶装置内に格納し、書き込みジョブからファイルへのアクセスが終了した後に、読み込み側のジョブがファイルへのアクセスを開始し、引き継ぎデータを読み込む、という方法が従来広く使われている。
【0003】
この方法では、データ引き継ぎ用ファイルへのデータの書き込みが途中までしか完了していないうちは、読み込みジョブからのファイルアクセスを開始することはできない。これは、現在の計算機が、一般のファイルへのアクセスにおいてはファイル単位での同期処理しか行っておらず、書き込み側と読み込み側のアクセスを同時には行えないからである。そのため、上記方式では、書き込みジョブと読み込みジョブを並列に実行することはできない。
【0004】
特願平1−180316(特開平 3-46033 )号公報は、同一計算機で実行中のジョブから別のジョブにデータを受け渡す際、特に受け渡すデータを保存する必要がない場合のデータ引き継ぎ方法を開示している。この方法では、書き込みジョブと読み込みジョブが同時に同一ファイルへアクセスし、ファイル単位ではなく、ファイルを構成するレコード単位での同期を実現している。そのため、書き込み側と読み込み側のファイルアクセスを並列に実行できることが特徴である。その結果、処理時間を短縮し、CPUオーバヘッドを削減できる。
【0005】
これらの方式では、主記憶あるいはそれに準ずる記憶装置に用意したデータ引き継ぎ用領域に、引き継ぎデータを一時的に格納する。また、レコード単位での同期を可能にするための入出力実行履歴情報も、主記憶あるいはそれに準じる記憶装置に用意する。これらの記憶装置は、各計算機に固有のものでなければならない。
【0006】
ところで、データの引き継ぎ処理を行うジョブも含めて、計算機システムの運用は、一連のジョブを一定の規則に従って順次実行することにより成り立っている。このような処理をバッチ処理と呼ぶ。バッチ処理は、一日または一ヶ月といった一定の期間ごとに同じ処理が繰り返される。また、バッチ処理を実行する計算機システムには、通常ファイルへのアクセスといったジョブの実行履歴を記録する機能が備わっている。ジョブ実行履歴を調べることにより、ある程度バッチ処理の処理内容を知ることができる。例えば、前述したようにバッチ処理は一定の期間ごとに同じ処理が繰り返されるので、ジョブ実行履歴にファイルアクセスの記録があれば、ファイルへのアクセスはバッチ処理の実行ごとに毎回繰り返されているものと考えられる。
【0007】
【発明が解決しようとする課題】
前記従来例で示された方式は、同一計算機で実行されるジョブ間でのデータ引き継ぎ方式であり、一台の計算機内に固有の記憶領域内にバッファ領域および入出力実行履歴情報を確保して、レコード単位に同期を取りながらのデータ引き継ぎ処理を可能としている。しかし、記憶装置を共用する複数の計算機システムにおいて、異なる計算機で実行されるジョブ間でデータの引き継ぎを行う場合については、公報ではなんら開示していなかった。
【0008】
また、計算機間のデータ引き継ぎ処理を行うためには、まず既存のジョブの中から、計算機間のデータ引き継ぎ処理を適用可能なジョブを見つけ出し、該当するジョブを変更しなければならなかった。
【0009】
本発明の目的は、記憶装置を共用する計算機システムにおいて、異なる計算機で実行中のジョブの中から、データ引き継ぎ処理を適用可能なジョブを発見する方法を提供し、また、計算機間でデータ引き継ぎ処理を行う書き込みジョブ,読み込みジョブを並列に実行することが可能となる、計算機間のデータ引き継ぎ方法を提供することにある。
【0010】
【課題を解決するための手段】
上記課題を解決するための、代表的な手段は、次のとおりである。
【0011】
本発明の計算機間のデータ引き継ぎ方法は、複数の計算機が記憶装置を共有し、逐次的に実行される一連の処理からなるジョブが複数の計算機で実行される計算機システムにおいて、前記ジョブの使用ファイル名称,ファイルアクセス開始時間,ファイルアクセス終了時間,ファイル内レコードのアクセス順序,アクセス種別(読み込み,書き込みの区別)とからなる稼働情報を取得するステップと、前記稼働情報を用いて、前記ジョブを構成する第一の処理と第二の処理が共に同一のファイルをアクセスし、かつ、第一の処理は前記ファイルに対する書き込み処理であり、かつ、第二の処理は該ファイルに対する読み込み処理であり、かつ、第一の処理の前記ファイルに対する前記ファイルアクセス終了時間は第二の処理の前記ファイルに対する前記ファイルアクセス開始時間よりも早く、かつ、第一の処理の前記ファイルに対する前記ファイル内レコードのアクセス順序は第二の処理の前記ファイルに対する前記ファイル内レコードのアクセス順序と等しいような、第一の処理と第二の処理を発見するステップと、第一の処理のみからなる第一のジョブと第二の処理のみからなる第二のジョブを作成するステップと、前記第一のジョブと前記第二のジョブを、前記計算機システムの異なる計算機で実行させるステップとを有する。
【0012】
また、本発明の計算機間のデータ引き継ぎ方法は、複数の計算機が第一の外部記憶装置と第二の外部記憶装置を共用している計算機システムであって、前記計算機システムの第一の計算機で実行される第一のジョブが前記第一の記憶装置へ一連のデータの書き込みを完了した後に、第二の計算機で実行される第二のジョブが前記書き込んだ一連のデータを読み込む計算機システムにおいて、前記第一のジョブからの第一の外部記憶装置に対するデータの書き込み要求を、前記第一の計算機を制御する第一のオペレーティングシステムが受け付けるステップと、前記第一のオペレーティングシステムは、該書き込み要求を第一の外部記憶装置ではなく第二の外部記憶装置への書き込みに変更して書き込むステップと、前記第一のオペレーティングシステムが、前記第二の計算機を制御する第二のオペレーティングシステムに書き込み完了を通知するステップと、前記第二のオペレーティングシステムは、前記第二の計算機で実行中の第二のジョブの前記第一の外部記憶装置への書き込み要求をトラップするステップと、前記第二のオペレーティングシステムが、前記第一のオペレーティングシステムからの前記完了通知を受け取って、前記第一の外部記憶の代わりに前記第二の外部記憶からデータを読み込んで前記第二のジョブに前記データを渡すステップとを有する。
【0013】
【作用】
システム稼働情報の中から、同一のファイルをアクセスしており、かつ、第一の処理はファイルに対する書き込み処理であり、かつ、第二の処理はファイルに対する読み込み処理であり、かつ、第一の処理のファイルに対するファイルアクセス終了時間は、第二の処理のファイルに対するファイルアクセス開始時間よりも早く、かつ、第一の処理のファイルに対するファイル内レコードのアクセス順序は、第二の処理のファイルに対するファイル内レコードのアクセス順序と等しいような、第一の処理および第二の処理とを発見する。これを満たす第一の処理および第二の処理は、並列に実行してもデータを引き継ぐことができる。
【0014】
第一の処理および第二の処理を並列に実行する際、システムの別の計算機上で実行すれば、より並列性が高くなる。よって、次のステップで、第一の処理および第一の処理が同一のジョブ内で実行されていれば、ジョブを、第一の処理と同じ動作を行う第一のジョブと、第二の処理と同じ動作を行う第二のジョブとに変換する。同じジョブ内で同一ファイルをアクセスする場合、必ず最初のアクセスが終了したのちに次のアクセスを開始しなければならなかったが、元のジョブを二つのジョブに分割することにより、同一ファイルへのアクセスを同時に実行することが可能になる。さらに、第一のジョブおよび第二のジョブを異なる計算機上で実行させることにより、より並列実行の効果が高くなる。
【0015】
異なる計算機上で実行される第一のジョブおよび第二のジョブ間でのデータ引き継ぎ処理を正常に行うために、以下で示す情報を用いて、出力処理と入力処理との間での同期制御を行う。
【0016】
共用記憶装置内に、出力ジョブと入力ジョブとの中間データの受け渡しを管理するためのデータ引き継ぎ記録領域と、データ引き継ぎ用バッファ領域とを設ける。データ引き継ぎ記録領域に設けられた情報を利用し、出力ジョブは順次バッファ領域にデータを書き込み、入力ジョブは順次バッファ領域からデータを読み込む。このとき、バッファに空きがなければ出力ジョブをウェイト状態にし、空きができたときに出力ジョブのウェイト状態を解除する。また、必要とするデータがバッファに出力されていなければ入力ジョブをウェイト状態にし、必要なデータが出力されたときに入力ジョブのウェイト状態を解除する。このように、データ引き継ぎ記録領域の情報をもとに、並列に実行されている出力ジョブと入力ジョブ間でのデータ引き継ぎを行う。
【0017】
このようにして、共用の記憶装置を共用している複数の計算機からなる計算機システムにおいて、異なる計算機上で実行されるジョブ間でデータの引き継ぎを行う場合でもジョブを並列に実行できる。その結果、処理経過時間の短縮が可能となる。
【0018】
【実施例】
図1は、本発明の原理図である。図1において、1,2は計算機である。3,4は各々計算機1および計算機2に固有の記憶装置である。5は計算機1および計算機2の双方に接続されている共用記憶装置である。
【0019】
6はデータ引き継ぎ判定部である。7はバッチ処理変換部である。データ引き継ぎ判定部6,バッチ処理変換部7は、計算機システム内のいずれか一つ以上の計算機のオペレーティングシステム内に存在していればよく、本実施例では計算機1のオペレーティングシステム内に置くものとする。8は計算機1のシステム稼働情報取得部である。9は計算機2のシステム稼働情報取得部である。10は計算機1のジョブスケジューラであり、11は計算機2のジョブスケジューラである。12は計算機1の入出力管理部であり、13は計算機2の入出力管理部である。14は計算機1の同期処理部であり、15は計算機2の同期処理部である。16は計算機1のレコード処理部であり、17は計算機2のレコード処理部である。18は計算機1の固有記憶装置3に置かれたバッチ処理記録ファイルである。また、19は計算機2の固有記憶装置4に置かれたバッチ処理記録ファイルである。22は共用記憶装置5に置かれた変換可能ジョブ記録ファイルである。23は共用記憶装置5に置かれたデータ引き継ぎ記録ファイルである。24は共用記憶装置5に置かれたデータ引き継ぎ用バッファ領域である。
【0020】
公知のシステム稼働情報取得部8および9は、各々計算機1および2での稼働中に実行された全ファイルアクセスの履歴を、それぞれアクセス履歴記録ファイル20および21に記録する。アクセス履歴記録ファイル20および21は、システム間データ引き継ぎ可能な処理を発見するために利用されるが、その処理の詳細については、図3で説明する。
【0021】
図2は、システム稼働情報取得部8および9が、アクセス履歴記録ファイル20および21に書き込むアクセス履歴レコードの構成図である。システム稼働情報取得部8および9は、自計算機で実行中のジョブからのファイルアクセス終了時に、使用ファイル名称201,ファイルアクセス開始時間202,ファイルアクセス終了時間203,ファイル内レコードのアクセス順序204,アクセス種別205,アクセスしたジョブ名称206,アクセスしたジョブを実行した計算機名称207、とを含んだアクセス履歴レコード200を、アクセス履歴記録ファイル20または21に追加する。アクセス履歴記録レコード200は、システム間データ引き継ぎ可能な処理を発見するために利用されるが、その利用方法の詳細については、図3で説明する。
【0022】
図3は、データ引き継ぎ判定部6が、アクセス履歴記録ファイル20および21をもとに、計算機間でデータ引き継ぎ可能な処理を検索する際の処理フローチャートである。
【0023】
まず、アクセス履歴記録ファイル20および21の中から、任意のレコードを一つ取り出し、レコードをレコード1とする(ステップ301)。次に、アクセス履歴記録ファイル20および21の中から、レコード1以外のレコードを任意に取り出し、レコードをレコード2とする(ステップ302)。
【0024】
レコード1とレコード2に対し、以下のチェックを行う。すなわち、レコード1とレコード2内の使用ファイル名称201は等しく(ステップ303)、かつ、レコード1内のアクセス種別205は“書き込み処理”であり(ステップ304)、かつ、レコード2内のアクセス種別205は“読み込み処理”であり(ステップ305)、かつ、レコード1内のアクセス終了時間203はレコード2内のアクセス開始時間202よりも早く(ステップ306)、かつ、レコード1内のレコードアクセス順序204とレコード2内のレコードアクセス順序204とが等しい(ステップ307)かどうかをチェックする。
【0025】
レコード1とレコード2が上記の条件を満たす場合、システム間データ引き継ぎ判定部6は、図4が示す変換可能ジョブ記録レコード400を、変換可能ジョブ記録ファイル22に一つ追加(ステップ308)する。このとき、新たに追加される変換可能ジョブ記録レコード400には、レコード1内のアクセスジョブ名称206を出力ジョブ名称401として格納し、レコード1内の計算機名称207を出力ジョブ実行計算機名称402として格納し、レコード2内のアクセスジョブ名称206を入力ジョブ名称403として格納し、レコード2内の計算機名称207を入力ジョブ実行計算機名称404として格納し、レコード1内のファイル名称201をファイル名称405として格納する。ここで、一つのジョブの中で繰り返し同じファイルをアクセスすることは可能であるから、出力ジョブ名称401と、入力ジョブ名称403が等しくなることもある。
【0026】
レコード1とレコード2がステップ303からステップ307の条件を満たさない場合、別のレコードがアクセス履歴記録ファイル20および21内に存在していれば、それらのレコードに対して、ステップ302からステップ308を順次繰り返す(ステップ309)。
【0027】
ステップ301からステップ309までを、アクセス履歴記録ファイル20および21内に存在する全アクセス履歴記録レコードをレコード1とした場合について繰り返す(ステップ310)。このとき、システム間でのデータ引き継ぎ可能と判断された処理については、すべて変更可能ジョブ記録ファイル22にその情報を書き込む。ここで作成した変換可能ジョブ記録ファイル22は、こののち計算機間でデータ引き継ぎ処理を行うジョブを作成する際に利用されるが、その詳細については図6で説明する。
【0028】
ジョブスケジューラ10および11は、公知の技術である。ジョブスケジューラ10および11は、バッチ処理記録ファイル18および19をもとに順次ジョブを実行する。バッチ処理記録ファイル18および19は、図5に示す構成をしたジョブ記述レコード500から成る。ジョブ記述レコード500は、ジョブ名称501,実行プログラム情報502,アクセスファイル情報503、とから構成される。一つのジョブ記述レコード内に、ジョブ名称501は一つしか格納できないが、実行プログラム情報502,アクセスファイル情報503は複数格納することが可能である。ジョブスケジューラ10および11が、ジョブ記述レコード500に記述されたジョブを実行する際には、ジョブ記述レコード500内の実行プログラム情報502で指定されたプログラムを順に実行し、また、ジョブ記述レコード500内のアクセスファイル情報503で指定されたファイルを順にアクセスする。
【0029】
一般に、計算機システムでバッチ処理を行うときには、一日あるいは一ケ月などという一定の期間ごとに、同じバッチ処理記録ファイルを利用して処理を行っている。そのため、通常は一定期間のサイクルごとに、同じバッチ処理が実行されることになる。逆に、利用するバッチ処理記録ファイルの内容を変更することによって、次のサイクルでバッチ処理を実行するときからは新しい処理を行うことが可能となる。このバッチ処理実行上の性質を利用し、本実施例では、システム間データ引き継ぎを行うために、バッチ処理変換部7が、バッチ処理記録ファイル18および19の内容を変更する。
【0030】
バッチ処理変換部7は、データ引き継ぎ判定部6が作成した変更可能ジョブ記録ファイル22をもとに、バッチ処理記録ファイル18および19を変更する部分である。前述したように、バッチ処理記録ファイル18および19を書き換えることにより、システム間データ引き継ぎ処理を実行することが可能となる。
【0031】
図6は、バッチ処理変換部7が、変更可能ジョブ記録ファイル22をもとに、データ引き継ぎ処理を行うバッチ処理記録ファイル18および19を変更する際の処理フローチャートである。
【0032】
まず、変更可能ジョブ記録ファイル22より、任意の変更可能ジョブ記録レコード400を一つ取り出す(ステップ601)。前述したように、変更可能ジョブ記録レコード400は、システム間データ引き継ぎ可能と判定された処理の、出力ジョブ名称401,入力ジョブ名称403とを含んでいる。ここで、出力ジョブ名称401をジョブ1,入力ジョブ名称403をジョブ2とする(ステップ602)。
【0033】
次にバッチ処理記録ファイル18および19の中から、ジョブ1またはジョブ2に等しいジョブ名称を持つジョブ記述レコード500を探索し、それぞれレコード1,レコード2とする(ステップ603)。ここでジョブ1とジョブ2が同一ジョブである場合と、そうでない場合とで以後の処理が異なる。
【0034】
ジョブ1とジョブ2とが同一ジョブである場合(ステップ604)、レコード1とレコード2は同一レコードである。レコードが記述するジョブの実行中に、同一のファイルに対して順次、書き込みのためのアクセス,読み込みのためのアクセスを行っていることになる。そこで、ジョブに対するジョブ記述レコード500の中に、ファイルへ書き込みアクセスを行うファイルアクセス情報503、および、ファイルへ読み込みアクセスを行うファイルアクセス情報503が存在する。ここで、新しいジョブ記述レコード500を二つ作成(ステップ605)し、ジョブ記述レコード500をそれぞれレコード3,レコード4とする。レコード3およびレコード4に属するジョブ名称501には、それぞれシステム内で一意的な任意のジョブ名称を格納する。また、レコード3の実行プログラム情報502およびアクセスファイル情報503には、それぞれジョブ1のうちファイルへの書き込み処理を記述した部分の実行プログラム情報502およびアクセスファイル情報503を格納する。また、レコード4の実行プログラム情報502およびアクセスファイル情報503には、それぞれジョブ1のうちファイルからの読み込み処理を記述した部分の実行プログラム情報502およびアクセスファイル情報503を格納する。新たに作成したレコード3およびレコード4を、それぞれ新しいレコード1およびレコード2とする(ステップ606)。
【0035】
以下の処理は、ジョブ1とジョブ2が同一ジョブである場合とそうでない場合とで共通して行う。
【0036】
レコード1およびレコード2には、それぞれデータ引き継ぎに利用したファイルへのアクセス処理を記述したアクセスファイル情報503が存在する。その部分のファイル名称を、システムで定めたデータ引き継ぎ用ファイルの名称に書き換える(ステップ607)。ただしファイル名称は、システム内で一意的なものでなければならない。実際にジョブが実行される時点で、各計算機の入出力管理部12および13が、このファイル名称によってシステム間でのデータ引き継ぎを行うか否かを判断する。
【0037】
次に、新たに作成または変更したレコード1およびレコード2を、もとのレコード1およびレコード2の代わりにバッチ処理記録ファイル18または19に格納する。ここで、バッチ処理記録ファイル18および19は、各計算機1または計算機2に独自のものである。そのため、システム間でデータの引き継ぎを行うには、新たに作成または変更したレコード1およびレコード2を、それぞれ異なる計算機のバッチ処理記録ファイル18または19に格納しなければならない。
【0038】
ジョブ1,ジョブ2がもともと異なる計算機上で実行されるジョブである場合、すなわち、変換可能ジョブ記録レコード400内の出力ジョブ実行計算機名称402と入力ジョブ実行計算機名称404とが異なる場合(ステップ608)、レコード1を出力ジョブ実行計算機名称402が示す計算機のバッチ処理記録ファイル18または19に格納し、レコード2を入力ジョブ実行計算機名称404が示す計算機のバッチ処理記録ファイル18または19に格納(ステップ609)する。
【0039】
変換可能ジョブ記録レコード400内の出力ジョブ実行計算機名称402と入力ジョブ実行計算機名称404とが等しい場合、二つのジョブは従来同一計算機上で実行されていたジョブである。この場合、レコード1を出力ジョブ実行計算機名称402および入力ジョブ実行計算機名称404が示す計算機のバッチ処理記録ファイル18または19に格納し、レコード2をそれとは別の計算機のバッチ処理記録ファイル18または19に格納(ステップ610)する。
【0040】
すべての変更可能ジョブ記録レコード400に対して、ステップ601からステップ610で示す処理を繰り返す(ステップ611)。ここで作成された新しいバッチ処理記録ファイル18および19を適用することにより、次回のバッチ処理実行時より、データ引き継ぎ可能な処理か否かを認識することが可能となる。
【0041】
各計算機のジョブスケジューラ10および11は、新たに作成されたジョブ処理記録ファイル18および19をもとにして、従来同様にバッチ処理を実行する。このとき、ジョブスケジューラ10および11は、実行するジョブがシステム間データの引き継ぎを実行しているかどうかは意識しない。システム間データ引き継ぎ処理は、ジョブの実行中、ジョブからの入出力要求が入出力管理部12および13に出されたときに行われる。その際、ジョブ間で引き継がれるデータは、各計算機のレコード処理部16および17が、データ引き継ぎ用バッファ領域24に格納する。また、各計算機の入出力管理部12および13は、出力処理と入力処理との1レコード単位のデータ引き継ぎの同期制御を正常に行うために、データ引き継ぎ記録ファイル23に格納した情報を利用する。データ引き継ぎ記録ファイル23に格納する情報は、各データ引き継ぎ処理ごとに図7で示すデータ引き継ぎ記録レコード700の形をとっている。
【0042】
データ引き継ぎ記録レコード700は、書き込みジョブ,読み込みジョブのいずれかが先にオープン命令を発行した時点で、同期処理部14または同期処理部15が、システム間共用記憶装置5内に置かれたデータ引き継ぎ記録ファイル23内に追加する。同時に、引き継ぎデータを一時的に格納するデータ引き継ぎ用バッファ領域24も、システム間共用記憶装置5内に確保する。データ引き継ぎ記録レコード700およびデータ引き継ぎ用バッファ領域17は、書き込みジョブ、読み込みジョブがともにクローズ命令を発行した時点で共用記憶装置5内から削除される。
【0043】
図7に示したデータ引き継ぎ記録レコード700のうち、ファイル名701には、出力ジョブと入力ジョブとがファイルアクセス時に指定したファイル名を記録する。このファイル名称によって、データ引き継ぎの対応をとる。バッファアドレス702には、対応するデータ引き継ぎ用バッファ領域24の先頭アドレスを記録する。バッファのブロック数703には、対応するデータ引き継ぎ用バッファ領域24のブロック数を記録する。データ入出力の単位長704には、出力ジョブと入力ジョブが起動時に指定した1回の入出力時に取り扱うデータの長さ(データ長)を記録する。書き込みブロック番号705には、次に出力ジョブが出力命令を発行したときに、データを書き出すデータ引き継ぎ用バッファ領域24内のブロック番号を記録する。読み込みブロック番号706には、入力ジョブが入力命令を発行したときに、データ引き継ぎ用バッファ領域24内のどのブロック番号のデータを入力するかを記録する。書き込み回数707には、出力ジョブの出力命令発行により、データ引き継ぎ用バッファ領域24にデータを書き込んだ回数を記録する。読み込み回数708には、入力ジョブの入力命令発行により、データ引き継ぎ用バッファ領域24からデータを読み込んだ回数を記録する。
【0044】
出力ジョブオープンフラグ709は、出力ジョブがオープン命令を発行済みか否かを示すフラグである。出力ジョブがオープン命令を発行したときに、出力ジョブオープンフラグ709をオンにする。ただし、出力ジョブがオープン命令を発行したときに、すでにデータ引き継ぎ記録ファイル23内のオープンフラグ709がオンであるならば、他の出力ジョブがアクセス中であることを意味しているため、入出力管理部12および13は、出力ジョブからのアクセスを禁止する。
【0045】
入力ジョブオープンフラグ710は、入力ジョブがオープン命令を発行済みか否かを示すフラグである。入力ジョブがオープン命令を発行したときに、入力ジョブオープンフラグ710をオンにする。ただし、入力ジョブがオープン命令を発行したときに、すでにデータ引き継ぎ記録ファイル23内のオープンフラグ710がオンであるならば、他の入力ジョブがアクセス中であることを意味しているため、入出力管理部12および13は、入力ジョブからのアクセスを禁止する。
【0046】
出力ジョブクローズフラグ711は、出力ジョブがクローズ命令を発行済みか否かを示すフラグである。出力ジョブがクローズ命令を発行したときに、出力ジョブクローズフラグ711をオンにする。入力ジョブクローズフラグ712は、入力ジョブがクローズ命令を発行済みか否かを示すフラグである。入力ジョブがクローズ命令を発行したときに、入力ジョブクローズフラグ712をオンにする。
【0047】
出力ジョブウェイトフラグ713は、出力ジョブがウェイト状態であるか否かを示すフラグである。出力ジョブがウェイト状態になったとき、出力ジョブウェイトフラグ713をオンにし、ウェイト状態が解除されたとき、出力ジョブウェイトフラグ713をオフにする。入力ジョブウェイトフラグ714は、入力ジョブがウェイト状態であるか否かを示すフラグである。入力ジョブがウェイト状態になったとき、入力ジョブウェイトフラグ714をオンにし、ウェイト状態が解除されたとき、入力ジョブウェイトフラグ714をオフにする。
【0048】
出力処理計算機名715は、出力ジョブを実行している計算機の名称である。入力処理計算機名716は、入力ジョブを実行している計算機の名称である。それぞれ、各ジョブがアクセスを開始した時点で記録する。
【0049】
ジョブ間で引き継ぐデータは、データ引き継ぎ用バッファ領域24の先頭から順に格納されていく。このとき、引き継ぎデータ量がデータ引き継ぎ用バッファ領域24のブロック数よりも多く、すべてのデータをデータ引き継ぎ用バッファ領域24に格納できない状況も考えられる。このような場合、データ引き継ぎ用バッファ領域24を再利用することによってデータの引き継ぎ処理を続行する。すなわち、既に書き込み,読み込みともに終わったデータは不要であるため、当するデータを格納していた領域には新しいデータを上書きしても差し支えない。このように、データ引き継ぎ用バッファ領域24の末尾までデータを書き込んだ場合、以後データ引き継ぎ用バッファ領域24の先頭に戻って処理を続ける。ただし、データ引き継ぎ用バッファ領域24内の該当するブロックのデータがまだ読み込みを終了していないときは、入出力管理部12および13は、出力処理ジョブをウェイトさせる。逆に該当するデータ引き継ぎ用バッファ領域24内の該当するブロックに新しいデータが書き込まれていないときは、入出力管理部12および13は、入力処理ジョブをウェイトさせる。
【0050】
ここで、すべての引き継ぎデータを格納できるように、あらかじめデータ引き継ぎ用バッファ領域24を大きく確保することも可能であるが、通常引き継ぐデータ量は事前には分からないことと、メモリを有効に活用するため、本実施例では前述のように、データ引き継ぎ用バッファ領域24を再利用する方式とする。ただし、本実施例でも、ジョブ間で引き継ぐデータ量がデータ引き継ぎ用バッファ領域24のブロック数よりも少ない場合は、データ引き継ぎ用バッファ領域24を再利用することなく処理が終了する。
【0051】
データ引き継ぎ用バッファ領域24を再利用しながら、データを1レコード単位で引き継ぎ処理を行うためには、前述したようにデータ引き継ぎ記録レコード700を利用して、同期処理部14および15が出力側処理と入力側処理との同期制御を行わなければならない。同期処理部14および15が実行している同期処理の詳細を、書き込み処理の場合と読み込み処理の場合とに分けて、それぞれ図8および図9で示す。
【0052】
図8は、同期処理部14および15が、ジョブからファイルへの書き込み要求を受け取った際の処理のフローチャートである。データ書き込み要求があったとき、まず命令をトラップ(ステップ801)する。さらに、書き込み要求がデータ引き継ぎ用ファイルに対してなされたものかどうかを判定(ステップ802)する。前述の判定は、データ引き継ぎ記録ファイル23内のすべてレコードを検索し、その中のレコードのうち、ファイル名称701が書き込み要求を発行されたファイル名と一致するものがあるか否かを実行することにより行われる。
【0053】
データ引き継ぎ用ファイルに対してなされた書き込み要求でなければ、通常の出力処置を実行(ステップ803)する。データ引き継ぎ用ファイルに対してなされた書き込み要求であれば、引き続きデータ引き継ぎ用バッファ領域24にデータ書き込み可能かどうかを判断(ステップ804)する。ここで、ファイルに対応するデータ引き継ぎ記録レコード700内の、書き込みブロック番号705と読み込みブロック番号706との差が、バッファのブロック数703と等しい場合は、データ引き継ぎ用バッファ領域24へのデータ書き込み不可能と判断し、それ以外の場合はデータ書き込み可能と判断する。
【0054】
データ書き込み不可能と判断した場合、書き込み要求を発行したジョブをウェイトさせ、出力ジョブウェイトフラグ713をオンにする(ステップ805)。ウェイト状態になった出力ジョブを実行中の計算機のオペレーティングシステムは、出力ジョブのウェイト解除の通知を受け取った時点で(ステップ806)、出力ジョブのウェイト状態を解除し、出力ジョブウェイトフラグ713をオフにしたのち(ステップ807)、以下の処理を続ける。ここで、ジョブのウェイト/ウェイト解除の実行は、ジョブを実行中のオペレーティングシステムでなければ行うことができない。そのため、他の計算機で実行中のジョブのウェイト状態を解除したいときには、このようにジョブを実行している計算機のオペレーティングシステムにその旨通知しなければならない。
【0055】
次に、データ引き継ぎ用バッファ領域24のうち、書き込みブロック番号705で示すブロックにデータを書き込み(ステップ808)、書き込みブロック番号705,書き込み回数707を更新(ステップ809)する。ここで、書き込みブロック番号705がバッファのブロック数703を越えた場合、書き込みブロック番号705の値を1に戻す。
【0056】
更に、入力ジョブウェイトフラグ714がオンであり(ステップ810)、書き込み回数707と読み込み回数708の差が、バッファのブロック数703と等しく(ステップ811)なった場合、入力処理計算機名716のオペレーティングシステムにその旨通知(ステップ812)する。通知を受けた計算機のオペレーティングシステムは、該当する入力ジョブのウェイト状態を解除する。
【0057】
ところで、ウェイト/ウェイト解除の制御が多発すると、その影響で処理時間が長くなるおそれがある。そこで本実施例では、データ引き継ぎ用バッファ領域24に一つでもデータが書き込まれた時点で入力ジョブのウェイト状態を解除するのではなく、バッファ一周分のデータが書き込まれた時点で、入力ジョブのウェイト状態を解除する。この方式を採用すれば、少なくともバッファ一周分のデータを入力する間は、再びウェイトすることはない。これにより、ウェイト状態を解除されたジョブがその直後に再びウェイトすることが繰り返され、処理時間が長びくことを防いでいる。
【0058】
図9は、同期処理部14および15が、ジョブからファイルへの読み込み要求を受け取った際の処理のフローチャートである。データ書き込み要求があったとき、まず命令をトラップ(ステップ901)する。さらに、読み込み要求がデータ引き継ぎ用ファイルに対してなされたものかどうかを判定(ステップ902)する。この判定は、データ引き継ぎ記録ファイル23内のすべてレコードを検索し、その中のレコードのうち、ファイル名称701が読み込み要求を発行されたファイル名と一致するものがあるか否かを実行することにより行われる。
【0059】
データ引き継ぎ用ファイルに対してなされた読み込み要求でなければ、通常の入力処置を実行(ステップ903)する。データ引き継ぎ用ファイルに対してなされた読み込み要求であれば、引き続きデータ引き継ぎ用バッファ領域24からデータ読み込み可能かどうかを判断(ステップ904)する。ここで、当するデータ引き継ぎ記録レコード内の、書き込みブロック番号705と読み込みブロック番号706が等しい場合は、データ引き継ぎ用バッファ領域24からのデータの読み込みは不可能と判断し、それ以外の場合はデータ読み込み可能と判断する。
【0060】
データ読み込み不可能と判断した場合、読み込み要求を発行したジョブをウェイトさせ、入力ジョブウェイトフラグ714をオンにする(ステップ905)。ウェイト状態になった入力ジョブを実行中の計算機のオペレーティングシステムは、入力ジョブのウェイト解除の通知を受け取った時点で(ステップ906)、入力ジョブのウェイト状態を解除し、入力ジョブウェイトフラグ714をオフにしたのち(ステップ907)、以下の処理を続ける。
【0061】
次に、データ引き継ぎ用バッファ領域24のうち、読み込みブロック番号706で示すブロックからデータを読み込み(ステップ908)、読み込みブロック番号706,読み込み回数708を更新(ステップ909)する。このとき、読み込みブロック番号706がバッファのブロック数703を越えていれば、読み込みブロック番号706の値を1に戻す。
【0062】
更に、出力ジョブウェイトフラグ713がオンであり(ステップ910)、書き込み回数707と読み込み回数708が等しく(ステップ911)なった場合、出力処理計算機名715のオペレーティングシステムにその旨通知(ステップ912)する。通知を受けた計算機のオペレーティングシステムは、該当する出力ジョブのウェイト状態を解除する。
【0063】
図8で示した入力ジョブのウェイト解除のときと同じように、出力ジョブのウェイト状態を解除するときも、ウェイト/ウェイト解除の制御が多発することを防ぐ工夫を行っている。すなわち、ウェイト中の出力ジョブが存在するときに、データ引き継ぎ用バッファ領域24に一つでも空きブロックが生じた時点で出力ジョブのウェイト状態を解除することも可能だが、本実施例では、データ引き継ぎ用バッファ領域24のすべてのブロックが空き状態になった時点で出力ジョブのウェイト状態を解除する。このとき、少なくともバッファ一周分のデータを出力する間は、出力ジョブが再びウェイトすることはない。すなわち、ウェイト/ウェイト解除の制御回数が多発することを防いでいる。
【0064】
上述したように、本実施例によれば、記憶装置を共用している計算機システムにおいて、システム間でデータの引き継ぎを行う場合に、ファイル単位ではなくレコード単位でのデータの引き継ぎが可能となり、同一ファイルへの書き込みアクセス,読み込みアクセスを同時に実行できる。その結果、システム間でのデータ引き継ぎ処理の処理時間を短縮できる。
【0065】
【発明の効果】
本発明によれば、記憶装置を共用している計算機システムにおいて、中間データの引き継ぎを行うジョブ群を異なる計算機上で並列に実行できるため、処理時間を短縮できる。
【図面の簡単な説明】
【図1】本発明の原理説明図。
【図2】アクセス履歴記録レコードの説明図。
【図3】変換可能ジョブ記録レコードの説明図。
【図4】データ引き継ぎ判定部の処理フローチャート。
【図5】ジョブ記述レコードの説明図。
【図6】バッチ処理変換部の処理フローチャート。
【図7】データ引き継ぎ記録レコードの説明図。
【図8】データ書き込み処理のフローチャート。
【図9】データ読み込み処理のフローチャート。
【符号の説明】
1,2…計算機、3,4…固有記憶装置、5…共用記憶装置、6…データ引き継ぎ判定部、7…バッチ処理変換部、8,9…システム稼働情報取得部、10,11…ジョブスケジューラ、12,13…入出力管理部、14,15…同期処理部、16,17…レコード処理部、18,19…バッチ処理記録ファイル、20,21…アクセス履歴記録ファイル、22…変換可能ジョブ記録ファイル、23…データ引き継ぎ記録ファイル、24…データ引き継ぎ用バッファ領域。
Claims (2)
- 第1のジョブを実行する第1の計算機と、前記第1のジョブを実行することにより出力される出力データに基づいて第2のジョブを実行する第2の計算機とを有するネットワークシステムにおける、前記第1の計算機から前記第2の計算機への前記出力データを引き継ぐデータ引継方法であって、
前記第1の計算機により、前記第1のジョブを実行することにより出力される出力データをレコード単位で共用記憶装置に記憶するステップと、
前記第1の計算機により、前記出力データをレコード単位で前記共用記憶装置に記憶したことを、前記第2の計算機に対して通知するステップと、
前記第2の計算機により、前記通知を受けていることを条件に、前記共用記憶領域に記憶された前記出力データに基づいて前記第2のジョブを実行するステップと、
前記第1の計算機及び前記第2の計算機各々により、ジョブのアクセス履歴情報を取得するステップと、
前記ネットワークシステム内のいずれか1以上の計算機により、前記ジョブのアクセス履歴情報に基づいて、前記第 1 の計算機で実行する前記第 1 のジョブと前記第2の計算機で実行する前記第2のジョブとを各々特定し、前記第1のジョブと前記第2のジョブとが並列的に実行されるようにジョブの実行順序を決定するステップと、
前記ジョブのアクセス履歴情報には、前記ジョブの使用するファイル名と、ファイルへのアクセス開始時刻と、前記ファイルへのアクセス終了時刻と、前記ファイルへのアクセス種別とを示す情報を含み、
前記決定するステップにおいて、
前記ジョブのアクセス履歴情報に従って、前記ジョブにおいて前記ファイルに対してデータを出力する書き込み処理を含むジョブと前記データを入力する読み込み処理を含むジョブであって、前記書込み処理のアクセス終了時刻が前記読込み処理のアクセス開始時刻よりも早いことを条件に、前記書込み処理を含むジョブを第1のジョブとし、前記読込み処理を含むジョブを第2のジョブとして各々特定し、前記第1のジョブと前記第2のジョブとが並列的に実行されるようにジョブの実行順序を決定することを特徴とするデータ引継ぎ方法。 - 逐次的に実行される一連の処理からなる第1のジョブを実行する第1の計算機と、当該第1のジョブを実行することにより出力される出力データに基づいて、逐次的に実行される一連の処理からなる第2のジョブを実行する第2の計算機とを有する計算機システムにおける、前記第1の計算機から前記第2の計算機への前記出力データを引き継ぐデータ引継方法であって、
前記第1の計算機により、前記第1のジョブを実行することにより出力される出力データを、第一の処理としてレコード単位で共用記憶装置に書き込むステップと、
前記第1の計算機により、前記出力データをレコード単位で前記共用記憶装置に書き込んだことを、前記第2の計算機に対して通知するステップと、
前記第2の計算機により、前記通知を受けていることを条件に、第二の処理として、前記第一の処理がアクセスしたファイルについて、前記共用記憶領域に記憶された前記出力データを読み込むステップと、
前記第1の計算機及び前記第2の計算機各々により、ジョブのアクセス履歴情報であって、前記ジョブの使用するファイル名と、ファイルへのアクセス開始時刻と、前記ファイルへのアクセス終了時刻と、前記ファイル内レコードのアクセス順序と、前記ファイルへのアクセス種別とを示す情報を含むものを取得するステップと、
前記ジョブのアクセス履歴情報に従って、第一の処理の前記ファイルに対する前記ファイルアクセス終了時刻が第二の処理の前記ファイルに対する前記ファイルアクセス開始時刻よりも早く、かつ、第一の処理の前記ファイルに対する前記ファイル内レコードのアクセス順序が第二の処理の前記ファイルに対する前記ファイル内レコードのアクセス順序と 等しいような、第一の処理と第二の処理を発見するステップと、
前記発見するステップにおける第一の処理のみからなるジョブを第1のジョブとし、前記発見するステップにおける第二の処理のみからなるジョブを第2のジョブとして各々特定するステップと、
前記第1のジョブと前記第2のジョブとが前記計算機システムの異なる計算機において並列的に実行されるようにジョブの実行順序を決定するステップとを有することを特徴とするデータ引継ぎ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003027741A JP3781007B2 (ja) | 2003-02-05 | 2003-02-05 | 計算機間のデータ引き継ぎ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003027741A JP3781007B2 (ja) | 2003-02-05 | 2003-02-05 | 計算機間のデータ引き継ぎ方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26063493A Division JP3460265B2 (ja) | 1993-10-19 | 1993-10-19 | 計算機間のデータ引き継ぎ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003241981A JP2003241981A (ja) | 2003-08-29 |
JP3781007B2 true JP3781007B2 (ja) | 2006-05-31 |
Family
ID=27785765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003027741A Expired - Lifetime JP3781007B2 (ja) | 2003-02-05 | 2003-02-05 | 計算機間のデータ引き継ぎ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3781007B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5459613B2 (ja) * | 2010-02-26 | 2014-04-02 | 日本電気株式会社 | データ処理システム、データ処理方法およびデータ処理プログラム |
CN102377787A (zh) * | 2011-03-22 | 2012-03-14 | 苏州阔地网络科技有限公司 | 一种设置优先级的文件批量处理方法及系统 |
WO2012127620A1 (ja) * | 2011-03-22 | 2012-09-27 | 株式会社日立製作所 | タスク実行装置及びタスク実行方法 |
CN102255940A (zh) * | 2011-03-22 | 2011-11-23 | 苏州阔地网络科技有限公司 | 一种设置优先级的批量处理的文件传输方法及系统 |
CN102281316B (zh) * | 2011-04-06 | 2013-08-14 | 苏州阔地网络科技有限公司 | 一种设置优先验证的文件批量处理的传输控制方法及系统 |
JP6481463B2 (ja) * | 2015-03-30 | 2019-03-13 | 富士通株式会社 | 管理支援プログラム、方法及び装置 |
-
2003
- 2003-02-05 JP JP2003027741A patent/JP3781007B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003241981A (ja) | 2003-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5647203B2 (ja) | メモリページ管理 | |
CN108573019B (zh) | 一种数据迁移方法、装置、电子设备及可读存储介质 | |
JP3781007B2 (ja) | 計算機間のデータ引き継ぎ方法 | |
US20150160994A1 (en) | Investigation program, information processing apparatus, and information processing method | |
JPH04219844A (ja) | 高速媒体優先解放型排他方式 | |
JP2005302030A (ja) | リンクリストへのマルチプロセスアクセス方法および装置 | |
JP3460265B2 (ja) | 計算機間のデータ引き継ぎ方法 | |
JP4734348B2 (ja) | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 | |
JP3138575B2 (ja) | フアイル複写移行方式 | |
JP7073737B2 (ja) | 通信ログ記録装置、通信ログ記録方法、および、通信ログ記録プログラム | |
JP2009199384A (ja) | データ処理装置 | |
JP4540556B2 (ja) | データアクセス方法及びそのプログラム | |
JP2004206369A (ja) | 共通資源へのアクセス方式及びアクセスプログラム | |
JP3598528B2 (ja) | データ引き継ぎ方法 | |
JP4351328B2 (ja) | 情報処理装置及びシステム起動管理方法 | |
JP2641399B2 (ja) | フアイル管理装置 | |
JP2980610B2 (ja) | トランザクション管理装置 | |
JP3585264B2 (ja) | データベースシステム及びデータ検索方法 | |
JPH0346033A (ja) | ジヨブ間データ転送制御方法 | |
JP3189804B2 (ja) | データバックアップ方法および装置 | |
JP5233817B2 (ja) | ドライバ・プログラム、デバイス管理方法及びコンピュータ装置 | |
JPH04139545A (ja) | データベース更新処理方式 | |
JP2000267866A (ja) | 2段式プロセスの終了状態獲得装置 | |
US8301845B2 (en) | Access control method and computer system | |
JPWO2004023308A1 (ja) | データ抽出方法およびデータ抽出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060112 |
|
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: 20060214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060227 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090317 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110317 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110317 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120317 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130317 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130317 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140317 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |