(57)【要約】【課題】チェックポイント情報の採取によるジョブの実行時間の増大を抑制することが可能な技術を提供する。【解決手段】障害発生時のジョブのリスタートを行う為のチェックポイント情報をジョブの実行中に採取するチェックポイント情報採取方法において、ジョブ管理キューにて管理されるジョブの実行を行うステップと、前記実行の行われているジョブの実行時間と、当該ジョブにおけるチェックポイント情報の採取に要した合計時間であるチェックポイント処理時間とを比較し、前記ジョブの実行時間に対するチェックポイント処理時間の割合が、当該チェックポイント情報の採取を決定する為の所定の値以下である場合に当該ジョブのチェックポイント情報を採取するステップとを有するものである。【選択図】　　　　図１
2004094422.tif 000002
【特許請求の範囲】
【請求項１】
障害発生時のジョブのリスタートを行う為のチェックポイント情報をジョブの実行中に採取するチェックポイント情報採取方法において、
ジョブ管理キューにて管理されるジョブの実行を行うステップと、前記実行の行われているジョブの実行時間と、当該ジョブにおけるチェックポイント情報の採取に要した合計時間であるチェックポイント処理時間とを比較し、前記ジョブの実行時間に対するチェックポイント処理時間の割合が、当該チェックポイント情報の採取を決定する為の所定の値以下である場合に当該ジョブのチェックポイント情報を採取するステップとを有することを特徴とするチェックポイント情報採取方法。
【請求項２】
ユーザによって指定された値をチェックポイント採取閾値として設定し、そのチェックポイント採取閾値を前記チェックポイント情報の採取を決定する為の所定の値として用いることを特徴とする請求項１に記載されたチェックポイント情報採取方法。
【請求項３】
前記チェックポイント情報の採取を決定する為の所定の値を、チェックポイント採取閾値の増減値表中の増減値に応じて変更することを特徴とする請求項１または請求項２のいずれかに記載されたチェックポイント情報採取方法。
【請求項４】
前記チェックポイント情報の採取を決定する為の所定の値をチェックポイント採取閾値の増減値表中の増減値に応じて変更する際に、運用時間、ジョブ実行数またはジョブ実行時間によって異なる増減値により変更することを特徴とする請求項３に記載されたチェックポイント情報採取方法。
【請求項５】
障害発生時のジョブのリスタートを行う為のチェックポイント情報をジョブの実行中に採取する計算機システムにおいて、
ジョブ管理キューにて管理されるジョブの実行を行うジョブ実行部と、前記実行の行われているジョブの実行時間と、当該ジョブにおけるチェックポイント情報の採取に要した合計時間であるチェックポイント処理時間とを比較し、前記ジョブの実行時間に対するチェックポイント処理時間の割合が、当該チェックポイント情報の採取を決定する為の所定の値以下である場合に当該ジョブのチェックポイント情報を採取するチェックポイント情報採取部とを備えることを特徴とする計算機システム。
【請求項６】
障害発生時のジョブのリスタートを行う為のチェックポイント情報をジョブの実行中に採取する計算機システムとしてコンピュータを機能させる為のプログラムにおいて、
ジョブ管理キューにて管理されるジョブの実行を行うジョブ実行部と、前記実行の行われているジョブの実行時間と、当該ジョブにおけるチェックポイント情報の採取に要した合計時間であるチェックポイント処理時間とを比較し、前記ジョブの実行時間に対するチェックポイント処理時間の割合が、当該チェックポイント情報の採取を決定する為の所定の値以下である場合に当該ジョブのチェックポイント情報を採取するチェックポイント情報採取部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は障害が発生した場合に、最後に採取したジョブのチェックポイント情報を用いてチェックポイント情報の採取時点からジョブ実行をリスタートできる様に、ジョブ内からチェックポイント関数を呼び出し、チェックポイント情報を採取する計算機システムに関し、特にチェックポイント情報の採取により、ジョブの実行時間が増大することを抑制する様にチェックポイント情報の採取を決定する計算機システムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
計算機システム上で、ある一連の処理を行うプログラムの集合（ジョブ）の実行中に、計算機システムに何らかの障害が発生して、ジョブの実行が継続不可能となった場合、通常は、その計算機システムを復旧させた後、ジョブを最初からやり直す。ところが、ジョブを最初からやり直すのでは、計算機システムの障害発生前に行ったジョブの実行が無駄となる。特に、長期間動き続けるジョブでは、非常に損失が大きい。
【０００３】
そこで、従来から、計算機で動作中のジョブの実行状態に関する情報（ジョブを構成するプロセスのレジスタ内容やメモリ内容等の資源情報、ジョブ内の各プロセスが使用していたファイルのデータ等）を採取し、これらの情報を二次記憶装置や外部の大容量記憶装置に保存する処理が行われている。
【０００４】
計算機システムに何らかの障害が発生してジョブの実行が継続不可能となった場合、前述の様にジョブの実行状態に関する情報を保存していれば、障害が発生する直前に保存処理を行った時点からジョブを再開することができ、システム障害の影響を最小限に抑えることができる。
【０００５】
この様に、ある時点の状態からジョブを再開できる様に保存するジョブの実行状態に関する情報をチェックポイント情報と呼び、保存する処理をチェックポイント情報の採取と呼ぶ。また、システム障害後にジョブを再開することをジョブのリスタートと呼ぶ。
【０００６】
このチェックポイント情報の採取を指定する方法として、例えば、Ｅ．Ｎ．Ｅｌｎｏｚａｈｙ、Ｄ．Ｂ．Ｊｏｈｎｓｏｎ、Ｙ．Ｍ．Ｗａｎｇ著：Ａ　Ｓｕｒｖｅｙ　ｏｆ　Ｒｏｌｌｂａｃｋ−Ｒｅｃｏｖｅｒｙ　Ｐｒｏｔｏｃｏｌｓ　ｉｎ　Ｍｅｓｓａｇｅ−Ｐａｓｓｉｎｇ　Ｓｙｓｔｅｍｓ（Ｔｅｃｈｎｉｃａｌ　Ｒｅｐｏｒｔ　ＣＭＵ−ＣＳ−９６−１８１、Ｄｅｐａｒｔｍｅｎｔ　ｏｆ　Ｃｏｍｐｕｔｅｒ　Ｓｃｉｅｎｃｅ、Ｃａｒｎｅｇｉｅ　Ｍｅｌｌｏｎ　Ｕｎｉｖｅｒｓｉｔｙ、１９９６）に示してある様に、ある時間間隔で定期的に採取する方法がある。
【０００７】
また、例えば、Ｖ．Ｎａｉｋ、Ｓ．Ｍｉｄｌｋｉｆｆ、Ｊ．Ｍｏｒｅｉｒａ著：Ａ　Ｃｈｅｃｋｐｏｉｎｔｉｎｇ　Ｓｔｒａｔｅｇｙ　ｆｏｒ　ＳｃａｌａｂｌｅＲｅｃｏｖｅｒｙ　ｏｎ　Ｄｉｓｔｒｉｂｕｔｅｄ　Ｐａｒａｌｌｅｌ　Ｓｙｓｔｅｍｓ（ＳＣ’９７、１９９７）に示してある様に、ジョブ内からチェックポイント情報の採取を指定する関数（これを、チェックポイント関数と呼ぶ）を呼び出した場合に採取する方法がある。
【０００８】
ある時間間隔で定期的にチェックポイント情報を採取する方法では、例えば、ジョブの処理に関係なく行う為、通信処理中やファイルＩ／Ｏ中等、チェックポイント情報の採取が困難な時点での採取を試みることにより、チェックポイント情報の採取に要する時間が増加する様なことが考えられる。これに対し、チェックポイント関数を呼び出す場合にチェックポイント情報を採取する方法では、前記処理の実行中には、ジョブ内でチェックポイント関数を呼び出さない様にユーザにより指定が可能であるといった利点が考えられる。
【０００９】
【発明が解決しようとする課題】
しかしながら前記従来技術において、むやみにチェックポイント関数を呼び出した場合、チェックポイント情報の採取に要する時間が増大し、ジョブ実行時間が増大する為、チェックポイント関数をユーザ指定により呼び出す方法では、ジョブ内でチェックポイント関数を呼び出す個所を決定する際に、ジョブの処理時間やチェックポイント情報の採取に要する時間をも考慮する必要があるといった問題があった。
【００１０】
本発明の目的は上記問題を解決し、ジョブ内でチェックポイント関数を呼び出す個所を決定する場合に、ジョブの処理時間やチェックポイント情報の採取に要する時間を考慮する必要を無くし、チェックポイント情報の採取によるジョブの実行時間の増大を抑制することが可能な技術を提供することにある。
【００１１】
【課題を解決するための手段】
本発明は、障害発生時のジョブのリスタートを行う為のチェックポイント情報をジョブの実行中に採取する計算機システムにおいて、ジョブの実行時間に対するチェックポイント処理時間の割合が所定の値以下である場合にチェックポイント情報を採取するものである。
【００１２】
本発明では、ジョブ管理キューにて管理されるジョブの実行を開始し、そのジョブからチェックポイント関数が呼び出されると、その実行の行われているジョブの実行時間を取得した後、当該ジョブにおいてこれまで行われたチェックポイント情報の採取に要した時間の合計であるチェックポイント処理時間を取得し、それらの時間を比較する。そして、前記ジョブの実行時間に対するチェックポイント処理時間の割合が、当該チェックポイント情報の採取を決定する為の所定の値以下であるかどうかを調べ、前記所定の値以下である場合には当該ジョブのチェックポイント情報を採取する。そして、そのチェックポイント情報の採取に要した時間を前記チェックポイント処理時間に加算し、チェックポイント情報の採取に要した合計時間を更新する。
【００１３】
ここで、ユーザによって指定された値をチェックポイント採取閾値として設定しておき、前記ジョブの実行時間とチェックポイント処理時間とを比較する際に、そのチェックポイント採取閾値を前記チェックポイント情報の採取を決定する為の所定の値として用いることとしても良い。
【００１４】
また、前記チェックポイント情報の採取を決定する為の所定の値を、チェックポイント採取閾値の増減値表中の増減値に応じて変更するものとし、例えば運用時間、ジョブ実行数またはジョブ実行時間によってチェックポイント採取閾値を増減させ、前記所定の値を変更するものとしても良い。
【００１５】
以上の様に本発明の計算機システムによれば、ジョブの実行時間に対するチェックポイント処理時間の割合が所定の値以下である場合にチェックポイント情報を採取するので、ジョブ内でチェックポイント関数を呼び出す個所を決定する場合に、ジョブの処理時間やチェックポイント情報の採取に要する時間を考慮する必要を無くし、チェックポイント情報の採取によるジョブの実行時間の増大を抑制することが可能である。
【００１６】
【発明の実施の形態】
以下に障害発生時のジョブのリスタートを行う為のチェックポイント情報をジョブの実行中に採取する一実施形態の計算機システムについて説明する。
【００１７】
図１は本実施形態のジョブの実行時間とジョブのチェックポイント情報の採取時間の関係を示す図である。本実施形態のジョブから呼び出されるチェックポイント関数では、後述の様に、ジョブの実行時間とチェックポイント採取処理に要した時間から、チェックポイント採取処理に要した時間の割合を求め、チェックポイント情報を採取するかどうかを決定する。
【００１８】
図１のＴ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５は各チェックポイント関数の呼び出し時のジョブの実行時間を示し、τ１、τ２、τ３、τ４、τ５は、各チェックポイント関数の処理時間を示している。
【００１９】
１、４回目のチェックポイント関数の呼び出しでは、後述の様に、チェックポイント採取処理に要した時間の割合を、各々、０／Ｔ１、及び、（τ１＋τ２＋τ３）／Ｔ４によって求め、この場合では、チェックポイント情報の採取を行う。
【００２０】
２、３、５回目のチェックポイント関数の呼び出しでは、後述の様に、チェックポイント採取処理に要した時間の割合を、各々、τ１／Ｔ２、（τ１＋τ２）／Ｔ３、（τ１＋τ２＋τ３＋τ４）／Ｔ５によって求め、この場合では、その割合が高いので、チェックポイント情報の採取を行わない。
【００２１】
この様に本実施形態では、チェックポイント関数の呼び出しの頻度が高い場合に、ジョブのチェックポイント情報の採取によるジョブ実行時間の増大を抑制している。
【００２２】
図２は本実施形態のジョブを構成するプログラムの一例を示す図である。図２では、チェックポイント関数をＣＫＰＴ（）にて示しており、繰り返し毎にチェックポイント関数を呼び出すプログラムの例を表している。
【００２３】
図３は本実施形態の計算機システムの概略構成を示す図である。図３に示す様に本実施形態の計算機システム１は、ジョブ実行部２と、チェックポイント情報採取部３と、リスタート処理部４とを有している。
【００２４】
ジョブ実行部２は、ジョブ管理キューにて管理されるジョブの実行を行う処理部である。チェックポイント情報採取部３は、ジョブ実行部２により実行の行われているジョブからのチェックポイント関数呼び出しに応じて、当該ジョブの実行時間と、そのジョブにおけるチェックポイント情報の採取に要した合計時間であるチェックポイント処理時間とを比較し、前記ジョブの実行時間に対するチェックポイント処理時間の割合が、当該チェックポイント情報の採取を決定する為の所定の値以下である場合に当該ジョブのチェックポイント情報を採取してチェックポイント情報５に保存する処理部である。リスタート処理部４は、計算機システム１の障害発生後に、チェックポイント情報５からチェックポイント採取時の情報を取得して、ジョブのリスタートを行う処理部である。
【００２５】
計算機システム１をジョブ実行部２、チェックポイント情報採取部３及びリスタート処理部４として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２６】
また計算機システム１は、チェックポイント情報５と、チェックポイント関連情報６と、ジョブ管理キュー７と、ジョブ情報１０、１１、１Ｎと、ＣＰＵ１０１と、メモリ１０２と、磁気ディスク装置１０３と、入力装置１０４と、出力装置１０５と、ＣＤ−ＲＯＭ装置１０６と、通信装置１０７とを有している。
【００２７】
チェックポイント情報５は、チェックポイント情報採取部３によって採取された情報を保持するデータであり、リスタート処理部４からの要求により伝達されるものである。チェックポイント関連情報６は、ジョブのチェックポイントに関する情報を保持するデータであり、図９、図１１、図１３に示す閾値増減表を含む情報である。
【００２８】
ジョブ管理キュー７は、計算機システム１において実行されるジョブを管理するキューであり、実行される複数個のジョブの情報であるジョブ情報１０、１１、１Ｎを含むものである。ジョブ情報１０、１１、１Ｎは、使用するメモリ等の資源情報、ジョブ実行時間等の各ジョブの情報である。
【００２９】
ＣＰＵ１０１は、計算機システム１全体の動作を制御する装置である。メモリ１０２は、計算機システム１全体の動作を制御する際にその為の各種処理プログラムやデータをロードする記憶装置である。磁気ディスク装置１０３は、前記各種処理プログラムやデータを格納しておく記憶装置である。
【００３０】
入力装置１０４は、ユーザ指定のチェックポイント採取閾値等を設定する為の各種入力を行う装置である。出力装置１０５は、ジョブの実行やチェックポイント情報の採取等に伴う各種出力を行う装置である。
【００３１】
ＣＤ−ＲＯＭ装置１０６は、前記各種処理プログラムを記録したＣＤ−ＲＯＭの内容を読み出す装置である。通信装置１０７は、ネットワークを介して他の処理装置との通信を行う装置である。
【００３２】
図４は第１の実施形態におけるジョブ情報１０の例を示す図である。本実施形態のジョブ情報１０は、一つのジョブに対して一つあり、ジョブ管理キュー７において管理されており、図４に示す様に第１の実施形態におけるジョブ情報１０は、そのジョブが使用する計算機資源の内容を示す計算機資源情報２０と、そのジョブの実行時間を示すジョブ実行時間３０と、そのジョブにおけるチェックポイント情報の採取に要した合計時間を示すチェックポイント処理時間４０を保持している。
【００３３】
図６は第２及び第３の実施形態におけるジョブ情報１０の例を示す図である。図６に示す様に第２及び第３の実施形態におけるジョブ情報１０は、そのジョブが使用する計算機資源を示す計算機資源情報２０、ジョブ実行時間３０、チェックポイント処理時間４０、及び、チェックポイント採取閾値５０を保持する。
【００３４】
ジョブ使用の計算機資源情報２０は、当該ジョブが使用する計算機資源に関する情報であり、例えば、レジスタの状態、使用メモリ領域等の情報を格納している。
【００３５】
ジョブ実行時間３０は、ジョブ実行部２において、当該ジョブを実行した時間の合計を格納している。ジョブ実行時間３０は、ジョブの生成時に、「０」に初期化される。また、チェックポイント情報に保存され、ジョブのリスタート時には、チェックポイント情報に保存されたジョブ実行時間に設定される。なお、本実施形態においては、ジョブ実行時間３０は、後述のチェックポイント処理時間４０の時間を含んでいるものとする。
【００３６】
チェックポイント処理時間４０は、当該ジョブのチェックポイント情報の採取に要した時間の合計を格納している。チェックポイント処理時間４０は、ジョブの生成時に、「０」に初期化される。また、チェックポイント情報として保存され、ジョブのリスタート時には、チェックポイント情報に保存したチェックポイント処理時間に設定される。
【００３７】
チェックポイント採取閾値５０は、チェックポイント情報採取部３において使用され、チェックポイント情報を採取する、または、採取しないを決める為に使用する値を保持している。チェックポイント採取閾値５０は、第２または第３の実施形態において使用し、チェックポイント情報採取部３に設けるチェックポイント採取閾値の設定処理により設定される。また、チェックポイント情報として保存され、ジョブのリスタート時には、チェックポイント情報に保存したチェックポイント採取閾値に設定される。
【００３８】
次に本発明の第１の実施形態を図３、図４、図５を用いて説明する。
ユーザの指示等により生成するジョブは、ジョブ管理キュー７により管理されるジョブ情報１０を持ち、ジョブ実行部２において実行される。ジョブ実行部２は、ジョブの生成時に、図４に示すジョブ情報１０のジョブ実行時間３０及びチェックポイント処理時間４０を「０」に初期化した後、ジョブの実行を開始させ、実行中のジョブが、タイムスライスを使い切った場合には当該ジョブの実行を中断し、次に実行するジョブをジョブ管理キュー７から決定し、そのジョブにＣＰＵを割り当てて実行する。
【００３９】
ジョブの中断時には、当該ジョブのジョブ情報１０におけるジョブ実行時間３０に、今回のＣＰＵの割り当てで使用した時間を加算していく。これは、例えば、Ａ．Ｓ．Ｔａｎｅｎｂａｕｍ著：Ｍｏｄｅｒｎ　Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ（引地信行、引地恵美子訳：ＯＳの基礎と応用（株式会社トッパン、１９９５年発行））の第２５３頁に示してある様に、ジョブのＣＰＵ割り当て時に時刻を取得し、また、ジョブの中断時に時刻を取得し、ＣＰＵ割り当て時の時刻と中断時の時刻の差を求め、それまでのジョブ実行時間３０に加算することで実現できる。
【００４０】
ジョブ内からチェックポイント関数を呼び出した場合、チェックポイント情報採取部３において、当該ジョブのリスタートに必要な情報（例えば、ジョブを構成するプロセスのメモリ内容等）をチェックポイント情報５に保存する。
【００４１】
計算機システム１に何らかの障害が発生した場合、システムの復旧後に、リスタート処理部４において、チェックポイント情報５より、障害が発生する直前に保存を行ったチェックポイント情報を取得し、その時点からジョブをリスタートする。
【００４２】
図５は第１の実施形態のジョブ内から呼び出されるチェックポイント関数の処理手順を示すフローチャートである。第１の実施形態において実行中のジョブ内からチェックポイント関数が呼び出されると、ステップ５０１でチェックポイント情報採取部３は、チェックポイント関数の呼び出し時までの当該ジョブの実行時間（これをＴｓとする）を求め、処理をステップ５０２へ移す。ここでＴｓを求める処理は、前述のジョブの実行時間の求める方法において当該ジョブがＣＰＵに割り当てられた時刻を求めているので、その時刻と、チェックポイント関数呼び出し時の時刻の差によって行うことができる。
【００４３】
ステップ５０２では、当該ジョブのチェックポイント情報の採取に要した時間（これをＴｃとする）を取得し、処理をステップ５０３へ移す。ここでＴｃは、ジョブ情報１０のチェックポイント処理時間４０を読み出すことで取得されるものとする。
【００４４】
ステップ５０３では、その時点での当該ジョブのジョブ実行時間とチェックポイント処理時間の割合を求め、所定の値を超えているかを判定する。本実施形態においては、ジョブ実行時間にチェックポイント処理時間を含めるので、当該割合は、ステップ５０１とステップ５０２で求めたＴｓ及びＴｃを用いてＴｃ／Ｔｓにより求める。なお、「Ａ／Ｂ」はＡをＢで割った商を示すものとする。また、このステップにおいては、一例として、チェックポイント処理に要した割合が１０％を超えているかの判定を行うものとする。
【００４５】
ステップ５０３で判定した結果、Ｔｃ／Ｔｓが１０％を超えていない場合には処理をステップ５０４へ移し、Ｔｃ／Ｔｓが１０％を超えている場合には、処理をステップ５０５へ移す。
【００４６】
ステップ５０４では、当該ジョブのチェックポイント情報を採取し、処理をステップ５０５へ移す。
ステップ５０５では、当該ジョブのチェックポイント関数終了前までの実行時間（これをＴｅとする）を求め、処理をステップ５０６へ移す。Ｔｅは、ステップ５０１におけるＴｓと同様にして求めることができる。
【００４７】
ステップ５０６では、このチェックポイント関数に要した時間を、当該ジョブのジョブ情報１０のチェックポイント処理時間４０に加算して、処理を終了する。これは、前記ステップまでに求めたＴｓ、Ｔｃ、Ｔｅを用いて、当該ジョブのジョブ情報１０のチェックポイント処理時間４０に、（Ｔｃ＋Ｔｅ−Ｔｓ）を格納することで実現できる。なぜならば、（Ｔｅ−Ｔｓ）は、当該チェックポイント関数に要した時間を示しており、Ｔｃは、当該チェックポイント関数の呼び出し前までに、当該ジョブのチェックポイント情報の採取に要した時間を示している為である。
【００４８】
次に本発明の第２の実施形態を図３、図６、図７、図８を用いて説明する。
第２の実施形態は、第１の実施形態においてチェックポイント情報の採取において使用した、閾値の指定を可能とするものであり、ジョブの実行の形態は第１の実施形態と同一である。
【００４９】
第２の実施形態では、チェックポイント情報の採取に使用する閾値を指定可能とする為、チェックポイント情報採取部３に、チェックポイント採取閾値設定処理を設ける。また、ジョブ情報１０に当該閾値を保存する為、ジョブ情報１０は、図６に示す様にチェックポイント採取閾値５０を具備する。
【００５０】
チェックポイント採取閾値設定処理では、ユーザが指定した値を、閾値としてジョブ情報１０のチェックポイント採取閾値５０に設定する処理を行う。閾値の設定は、例えば、ジョブの実行開始の際にユーザの指定により行うことが可能であるし、また、チェックポイント関数の呼び出しの都度に行うことも可能である。また、予めシステムによって決定しておき、ジョブの生成時にチェックポイント採取閾値の設定処理により行うことも可能である。
【００５１】
図７は第２の実施形態のチェックポイント採取閾値設定処理の処理手順を示すフローチャートである。ステップ７０１でチェックポイント情報採取部３は、ユーザが指定した値を、ジョブ情報１０のチェックポイント採取閾値５０に設定し、処理を終了する。
【００５２】
図８は第２の実施形態のチェックポイント関数の処理手順を示すフローチャートである。第２の実施形態において実行中のジョブ内からチェックポイント関数が呼び出されると、ステップ８０１でチェックポイント情報採取部３は、チェックポイント関数の呼び出し時までの当該ジョブの実行時間（これをＴｓとする）を求め、処理をステップ８０２へ移す。
【００５３】
ステップ８０２では、当該ジョブのチェックポイント情報の採取に要した時間（これをＴｃとする）を、ジョブ情報１０のチェックポイント処理時間４０から取得し、処理をステップ８０３へ移す。
【００５４】
ステップ８０３では、チェックポイント採取閾値（これをＲｔｈとする）を、ジョブ情報１０のチェックポイント採取閾値５０から取得し、処理をステップ８０４へ移す。
【００５５】
ステップ８０４では、その時点での当該ジョブのジョブ実行時間とチェックポイント処理時間の割合を求め、チェックポイント採取閾値を超えているかを判定する。これはＴｃ／ＴｓとＲｔｈを比較することで行うことができる。Ｔｃ／ＴｓがＲｔｈを超えていない場合には処理をステップ８０５へ移し、Ｔｃ／ＴｓがＲｔｈを超えている場合には処理をステップ８０６へ移す。
【００５６】
ステップ８０５では、当該ジョブのチェックポイント情報を採取し、処理をステップ８０６へ移す。
ステップ８０６では、当該ジョブのチェックポイント関数終了前までの実行時間（これをＴｅとする）を求め、処理をステップ８０７へ移す。
【００５７】
ステップ８０７では、このチェックポイント関数に要した時間を、当該ジョブのジョブ情報１０のチェックポイント処理時間４０に加算する、すなわち、（Ｔｃ＋Ｔｅ−Ｔｓ）を設定して、処理を終了する。
【００５８】
次に、本発明の第３の実施形態を図３、図６、図７、図９、図１０、図１１、図１２、図１３、図１４を用いて説明する。
第３の実施形態では、第２の実施形態と同様に、ジョブ情報１０は、図６のチェックポイント採取閾値５０を具備しているものとする。ジョブ情報１０のチェックポイント採取閾値５０の設定は、第２の実施形態と同じく、図７のフローチャートに示したチェックポイント採取閾値設定処理により行える。
【００５９】
第３の実施形態は、第２の実施形態において使用したチェックポイント情報の採取を決定する割合の閾値を、所定の表を参照することで変更可能とするものである。当該閾値を変更する方法としては、例えば、システムの運用状況に応じて変更する、計算機システムで実行されるジョブ数に応じて変更する、ジョブの実行時間に応じて変更する等が考えられる。
【００６０】
図９、図１０は、システムの運用状況に応じて閾値を変更する方法を示している。システムの運用状況に応じて閾値を変更する方法は、例えば、昼は対話型でシステムを運用し、夜はバッチ型でシステムを運用する場合に、それぞれの運用形態で、チェックポイント採取閾値を増減する様な目的で使用できる。
【００６１】
図９は第３の実施形態の運用時間によるチェックポイント採取閾値の増減値を格納した、運用時間によるチェックポイント採取閾値の増減値表の一例を示す図である。図９の運用時間によるチェックポイント採取閾値の増減値表９０は、計算機システム１のチェックポイント関連情報６に具備されているものとする。
【００６２】
運用時間によるチェックポイント採取閾値の増減値表９０は、時刻の範囲指定とチェックポイント採取閾値の増減値を格納する行９１、９２、９Ｎから構成されている。時刻の範囲指定は、対応するチェックポイント採取閾値の増減値を使用する時刻の範囲を示し、チェックポイント採取閾値の増減値は、対応する時刻の範囲指定の時刻にて使用する閾値の増減値を示し、「０」、正または負の値で増減させる割合を示すものとする。
【００６３】
図９に示す例において、行９１は、時刻０８：００から時刻１７：００では、閾値を５０％増加させ、行９２は、時刻１７：００から時刻２２：００では、閾値を変化させないことを示している。
【００６４】
図１０は第３の実施形態においてシステムの運用状況に応じて閾値を変更する場合のチェックポイント関数の処理手順を示すフローチャートである。第３の実施形態において実行中のジョブ内からチェックポイント関数が呼び出されると、ステップ１００１でチェックポイント情報採取部３は、チェックポイント関数の呼び出し時までの当該ジョブの実行時間（これをＴｓとする）を求め、処理をステップ１００２へ移す。
【００６５】
ステップ１００２では、当該ジョブのチェックポイント情報の採取に要した時間（これをＴｃとする）を、ジョブ情報１０のチェックポイント処理時間４０から取得し、処理をステップ１００３へ移す。
【００６６】
ステップ１００３では、チェックポイント採取閾値（これをＲｔｈとする）を、ジョブ情報１０のチェックポイント採取閾値５０から取得し、処理をステップ１００４へ移す。
【００６７】
ステップ１００４では、チェックポイント関連情報６に保持されているチェックポイント採取閾値の増減値表９０を参照し、この時点の時刻における増減値（これをＳｔｈとする）を取得し、処理をステップ１００５へ移す。
【００６８】
ステップ１００５では、その時点での当該ジョブのジョブ実行時間とチェックポイント処理時間の割合を求め、チェックポイント採取閾値を超えているかを判定する。
【００６９】
この場合、チェックポイント採取閾値は、当該ジョブのジョブ情報１０のチェックポイント採取閾値５０のみでなく、ステップ１００４において求めたチェックポイント採取閾値の増減値も加味する。すなわち、Ｔｃ／Ｔｓと（Ｒｔｈ＋Ｓｔｈ）を比較することで前記判定を行い、Ｔｃ／Ｔｓが（Ｒｔｈ＋Ｓｔｈ）を超えていない場合には、処理をステップ１００６へ移し、Ｔｃ／Ｔｓが（Ｒｔｈ＋Ｓｔｈ）を超えている場合には、処理をステップ１００７へ移す。
【００７０】
ステップ１００６では、当該ジョブのチェックポイント情報を採取し、処理をステップ１００７へ移す。
ステップ１００７では、当該ジョブのチェックポイント関数終了前までの実行時間（これをＴｅとする）を求め、処理をステップ１００８へ移す。
ステップ１００８では、このチェックポイント関数に要した時間を、当該ジョブのジョブ情報１０のチェックポイント処理時間４０に加算する、すなわち、（Ｔｃ＋Ｔｅ−Ｔｓ）を設定して、処理を終了する。
【００７１】
また図１１、図１２は、計算機システムで実行されるジョブ数に応じて閾値を変更する方法を示している。ジョブ数に応じて閾値を変更する方法は、例えば、計算機システムで実行されるジョブ数が多い場合には、システム負荷の増加により、システム障害が発生する可能性が増えることを懸念して、チェックポイント採取の割合を変更すること等で使用できる。
【００７２】
図１１は第３の実施形態のジョブ数に応じたチェックポイント採取閾値の増減値を格納した、ジョブ数に応じたチェックポイント採取閾値の増減値表の一例を示す図である。図１１のジョブ数に応じたチェックポイント採取閾値の増減値表１１０は、計算機システム１のチェックポイント関連情報６に具備されているものとする。
【００７３】
ジョブ数に応じたチェックポイント採取閾値の増減値表１１０は、ジョブ数の範囲指定とチェックポイント採取閾値の増減値を格納する行１１１、１１２、１１Ｎから構成されている。ジョブ数の範囲指定は、対応するチェックポイント採取閾値の増減値を使用するジョブの範囲を示し、チェックポイント採取閾値の増減値は、対応するジョブ数の範囲指定のジョブ数にて使用する、閾値の増減値を示し、「０」、正または負の値で増減させる割合を示すものとする。
【００７４】
図１１に示す例において、行１１１は、ジョブ数が１個から５個では、閾値を１０％減少させ、行１１２は、ジョブ数が６個から９個では、閾値を１０％増加させることを示している。
【００７５】
図１２は第３の実施形態においてジョブ数に応じて閾値を変更する場合のチェックポイント関数の処理手順を示すフローチャートである。第３の実施形態において実行中のジョブ内からチェックポイント関数が呼び出されると、ステップ１２０１でチェックポイント情報採取部３は、チェックポイント関数の呼び出し時までの当該ジョブの実行時間（これをＴｓとする）を求め、処理をステップ１２０２へ移す。
【００７６】
ステップ１２０２では、当該ジョブのチェックポイント情報の採取に要した時間（これをＴｃとする）を、ジョブ情報１０のチェックポイント処理時間４０から取得し、処理をステップ１２０３へ移す。
【００７７】
ステップ１２０３では、チェックポイント採取閾値（これをＲｔｈとする）を、ジョブ情報１０のチェックポイント採取閾値５０から取得し、処理をステップ１２０４へ移す。
【００７８】
ステップ１２０４では、ジョブ管理キュー７からジョブ実行数を求め、チェックポイント関連情報６に保持する、チェックポイント採取閾値の増減値表１１０を参照し、チェックポイント採取閾値の増減値（これをＪｔｈとする）を取得し、処理をステップ１２０５へ移す。
【００７９】
ステップ１２０５では、その時点での当該ジョブのジョブ実行時間とチェックポイント処理時間の割合を求め、チェックポイント採取閾値を超えているかを判定する。
【００８０】
この場合、チェックポイント採取閾値は、当該ジョブのジョブ情報１０のチェックポイント採取閾値５０のみでなく、ステップ１２０４において求めたチェックポイント採取閾値の増減値も加味する。すなわち、Ｔｃ／Ｔｓと（Ｒｔｈ＋Ｊｔｈ）を比較することで前記判定を行い、Ｔｃ／Ｔｓが（Ｒｔｈ＋Ｊｔｈ）を超えていない場合には、処理をステップ１２０６へ移し、Ｔｃ／Ｔｓが（Ｒｔｈ＋Ｊｔｈ）を超えている場合には、処理をステップ１２０７へ移す。
【００８１】
ステップ１２０６では、当該ジョブのチェックポイント情報を採取し、処理をステップ１２０７へ移す。ステップ１２０７では、当該ジョブのチェックポイント関数終了前までの実行時間（これをＴｅとする）を求め、処理をステップ１２０８へ移す。ステップ１２０８では、このチェックポイント関数に要した時間を、当該ジョブのジョブ情報１０のチェックポイント処理時間４０に加算する、すなわち、（Ｔｃ＋Ｔｅ−Ｔｓ）を設定して、処理を終了する。
【００８２】
また図１３、図１４は、ジョブの実行時間に応じて閾値を変更する方法を示している。ジョブの実行時間に応じて閾値を変更する方法は、例えば、実行時間が少ない場合は、システム障害発生後にジョブを最初から実行しても影響が小さいことから、チェックポイント情報の採取の割合を低くする様なことに使用できる。
【００８３】
図１３は第３の実施形態のジョブの実行時間に応じたチェックポイント採取閾値の増減値表の一例を示す図である。図１３のジョブの実行時間に応じたチェックポイント採取閾値の増減値表１３０は、計算機システム１のチェックポイント関連情報６に具備されているものとする。
【００８４】
ジョブの実行時間に応じたチェックポイント採取閾値の増減値表１３０は、ジョブの実行時間の範囲指定とチェックポイント採取閾値の増減値を格納する行１３１、１３２、１３Ｎから構成されている。
【００８５】
ジョブの実行時間の範囲指定は、対応するチェックポイント採取閾値の増減値を使用するジョブの実行時間の範囲を示し、チェックポイント採取閾値の増減値は、対応するジョブの実行時間の範囲で指定されている実行時間にて使用する閾値の増減値を示し、「０」、正または負の値で増減させる割合を示しているものとする。
【００８６】
図１３に示す例において、行１３１は、ジョブの実行時間が０時間から１０時間では閾値を変化させず、行１３２は、ジョブの実行時間が１０時間から２４時間では閾値を１０％増加させることを示している。
【００８７】
図１４は第３の実施形態においてジョブの実行時間に応じて閾値を変更する場合のチェックポイント関数の処理手順を示すフローチャートである。第３の実施形態において実行中のジョブ内からチェックポイント関数が呼び出されると、ステップ１４０１でチェックポイント情報採取部３は、チェックポイント関数の呼び出し時までの当該ジョブの実行時間（これをＴｓとする）を求め、処理をステップ１４０２へ移す。
【００８８】
ステップ１４０２では、当該ジョブのチェックポイント情報の採取に要した時間（これをＴｃとする）を、ジョブ情報１０のチェックポイント処理時間４０から取得し、処理をステップ１４０３へ移す。
【００８９】
ステップ１４０３では、チェックポイント採取閾値（これをＲｔｈとする）を、ジョブ情報１０のチェックポイント採取閾値５０から取得し、処理をステップ１４０４へ移す。
【００９０】
ステップ１４０４では、ステップ１４０１で求めたジョブの実行時間を用いて、チェックポイント関連情報６に保持する、チェックポイント採取閾値の増減値表１３０を参照し、チェックポイント採取閾値の増減値（これをＴｔｈとする）を取得し、処理をステップ１４０５へ移す。
【００９１】
ステップ１４０５では、その時点での当該ジョブのジョブ実行時間とチェックポイント処理時間の割合を求め、チェックポイント採取閾値を超えているかを判定する。
【００９２】
この場合、チェックポイント採取閾値は、当該ジョブのジョブ情報１０のチェックポイント採取閾値５０のみでなく、ステップ１４０４において求めたチェックポイント採取閾値の増減値も加味する。すなわち、Ｔｃ／Ｔｓと（Ｒｔｈ＋Ｔｔｈ）を比較することで前記判定を行い、Ｔｃ／Ｔｓが（Ｒｔｈ＋Ｔｔｈ）を超えていない場合には、処理をステップ１４０６へ移し、Ｔｃ／Ｔｓが（Ｒｔｈ＋Ｔｔｈ）を超えている場合には、処理をステップ１４０７へ移す。
【００９３】
ステップ１４０６では、当該ジョブのチェックポイント情報を採取し、処理をステップ１４０７へ移す。ステップ１４０７では、当該ジョブのチェックポイント関数終了前までの実行時間（これをＴｅとする）を求め、処理をステップ１４０８へ移す。ステップ１４０８では、このチェックポイント関数に要した時間を、当該ジョブのジョブ情報１０のチェックポイント処理時間４０に加算する、すなわち、（Ｔｃ＋Ｔｅ−Ｔｓ）を設定して、処理を終了する。
【００９４】
以上説明した様に本実施形態の計算機システムによれば、ジョブの実行時間に対するチェックポイント処理時間の割合が所定の値以下である場合にチェックポイント情報を採取するので、ジョブ内でチェックポイント関数を呼び出す個所を決定する場合に、ジョブの処理時間やチェックポイント情報の採取に要する時間を考慮する必要を無くし、チェックポイント情報の採取によるジョブの実行時間の増大を抑制することが可能である。
【００９５】
【発明の効果】
本発明によればジョブの実行時間に対するチェックポイント処理時間の割合が所定の値以下である場合にチェックポイント情報を採取するので、ジョブ内でチェックポイント関数を呼び出す個所を決定する場合に、ジョブの処理時間やチェックポイント情報の採取に要する時間を考慮する必要を無くし、チェックポイント情報の採取によるジョブの実行時間の増大を抑制することが可能である。
【図面の簡単な説明】
【図１】本実施形態のジョブの実行時間とジョブのチェックポイント情報の採取時間の関係を示す図である。
【図２】本実施形態のジョブを構成するプログラムの一例を示す図である。
【図３】本実施形態の計算機システムの概略構成を示す図である。
【図４】第１の実施形態におけるジョブ情報１０の例を示す図である。
【図５】第１の実施形態のジョブ内から呼び出されるチェックポイント関数の処理手順を示すフローチャートである。
【図６】第２及び第３の実施形態におけるジョブ情報１０の例を示す図である。
【図７】第２の実施形態のチェックポイント採取閾値設定処理の処理手順を示すフローチャートである。
【図８】第２の実施形態のチェックポイント関数の処理手順を示すフローチャートである。
【図９】第３の実施形態の運用時間によるチェックポイント採取閾値の増減値を格納した、運用時間によるチェックポイント採取閾値の増減値表の一例を示す図である。
【図１０】第３の実施形態においてシステムの運用状況に応じて閾値を変更する場合のチェックポイント関数の処理手順を示すフローチャートである。
【図１１】第３の実施形態のジョブ数に応じたチェックポイント採取閾値の増減値を格納した、ジョブ数に応じたチェックポイント採取閾値の増減値表の一例を示す図である。
【図１２】第３の実施形態においてジョブ数に応じて閾値を変更する場合のチェックポイント関数の処理手順を示すフローチャートである。
【図１３】第３の実施形態のジョブの実行時間に応じたチェックポイント採取閾値の増減値表の一例を示す図である。
【図１４】第３の実施形態においてジョブの実行時間に応じて閾値を変更する場合のチェックポイント関数の処理手順を示すフローチャートである。
【符号の説明】
１…計算機システム、２…ジョブ実行部、３…チェックポイント情報採取部、４…リスタート処理部、５…チェックポイント情報、６…チェックポイント関連情報、７…ジョブ管理キュー、１０、１１、１Ｎ…ジョブ情報、１０１…ＣＰＵ、１０２…メモリ、１０３…磁気ディスク装置、１０４…入力装置、１０５…出力装置、１０６…ＣＤ−ＲＯＭ装置、１０７…通信装置、２０…計算機資源情報、３０…ジョブ実行時間、４０…チェックポイント処理時間、５０…チェックポイント採取閾値、９０…運用時間によるチェックポイント採取閾値の増減値表、９１、９２、９Ｎ…行、１１０…ジョブ数に応じたチェックポイント採取閾値の増減値表、１１１、１１２、１１Ｎ…行、１３０…ジョブの実行時間に応じたチェックポイント採取閾値の増減値表、１３１、１３２、１３Ｎ…行。
【図１】
2004094422.tif 000003
【図２】
2004094422.tif 000004
【図３】
2004094422.tif 000005
【図４】
2004094422.tif 000006
【図５】
2004094422.tif 000007
【図６】
2004094422.tif 000008
【図７】
2004094422.tif 000009
【図８】
2004094422.tif 000010
【図９】
2004094422.tif 000011
【図１０】
2004094422.tif 000012
【図１１】
2004094422.tif 000013
【図１２】
2004094422.tif 000014
【図１３】
2004094422.tif 000015
【図１４】
2004094422.tif 000016