(57)【特許請求の範囲】
【請求項１】
１台のサーバ内に構築された複数の仮想サーバの上で動作する、ジョブを実行する複数のジョブ実行手段と、
前記ジョブ単位で、ジョブ識別情報と、実行元の前記ジョブ実行手段の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて記憶する、前記サーバに備えられたジョブ管理情報記憶手段と、
前記ジョブ実行手段の何れかで障害が発生した場合に、前記ジョブ管理情報記憶手段を参照し、前記ジョブ実行手段の識別情報が障害発生元の前記ジョブ実行手段の識別情報と一致するレコードについて、前記ジョブ継続実行優先度が高いジョブから順番に、前記ジョブ識別情報と前記ジョブ実行情報を、前記サーバ内のメモリコピーにより、前記障害発生元のジョブ実行手段を除く何れかの前記ジョブ実行手段に送付して、送付先の前記ジョブ実行手段に当該ジョブを継続実行させるジョブ継続管理手段と、
を備えるジョブ継続管理装置。
【請求項２】
前記ジョブ管理情報記憶手段は、前記ジョブを実行する特定の時期と、前記特定の時期に限定して当該ジョブの前記継続実行優先度として適用する例外タイミング継続実行優先度とを対応付けて格納し、
前記ジョブ継続管理手段は、システムの現在日時情報と前記ジョブ継続管理手段に格納された前記特定の時期の情報が一致するレコードが存在する場合、当該レコードにおける前記継続実行優先度を前記例外タイミング継続実行優先度に置き換える
請求項１に記載のジョブ継続管理装置。
【請求項３】
１台のサーバ内に構築された複数の仮想サーバの上で動作する、複数のジョブ実行手段によりジョブを実行し、
前記ジョブ単位で、ジョブ識別情報と、実行元の前記ジョブ実行手段の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて前記サーバに備えられた記憶域に記憶し、
前記ジョブ実行手段の何れかで障害が発生した場合に、前記記憶域を参照し、前記ジョブの実行手段の識別情報が障害発生元の前記ジョブ実行手段の識別情報と一致するレコードについて、前記ジョブ継続実行優先度が高いものから順番に、前記ジョブ識別情報と前記ジョブ実行情報を、前記サーバ内のメモリコピーにより、前記障害発生元のジョブ実行手段を除く何れかの前記ジョブ実行手段に送付して、送付先の前記ジョブ実行手段に当該ジョブを継続実行させる
ジョブ継続管理方法。
【請求項４】
前記ジョブを実行する特定の時期と、前記特定の時期に限定して当該ジョブの前記継続実行優先度として適用する例外タイミング継続実行優先度とを対応付けて前記記憶域に格納し、
システムの現在日時情報と前記記憶域に格納された前記特定の時期の情報が一致するレコードが存在する場合、当該レコードにおける前記継続実行優先度を前記例外タイミング継続実行優先度に置き換える
請求項３に記載のジョブ継続管理方法。
【請求項５】
１台のサーバ内に構築された複数の仮想サーバの上で動作する、ジョブを実行する複数のジョブ実行手段と記憶域を備えるコンピュータに、
前記ジョブ単位で、ジョブ識別情報と、実行元の前記ジョブ実行手段の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて前記記憶域に記憶するジョブ管理情報記憶処理と、
前記ジョブ実行手段の何れかで障害が発生した場合に、前記記憶域を参照し、前記ジョブ実行手段の識別情報が障害発生元の前記ジョブ実行手段の識別情報と一致するレコードについて、前記ジョブ継続実行優先度が高いジョブから順番に、前記ジョブ識別情報と前記ジョブ実行情報を、前記サーバ内のメモリコピーにより、前記障害発生元の前記ジョブ実行手段を除く何れかの前記ジョブ実行手段に送付して、送付先の前記ジョブ実行手段に当該ジョブを継続実行させるジョブ継続管理処理と、
を実行させるジョブ継続管理プログラム。
【請求項６】
前記ジョブ管理情報記憶処理は、前記ジョブを実行する特定の時期と、前記特定の時期に限定して当該ジョブの前記継続実行優先度として適用する例外タイミング継続実行優先度とを対応付けて記憶域に格納し、
前記コンピュータに、システムの現在日時情報と前記記憶域に格納された前記特定の時期の情報が一致するレコードが存在する場合、当該レコードにおける前記継続実行優先度を前記例外タイミング継続実行優先度に置き換える前記ジョブ継続管理処理を実行させる
請求項５に記載のジョブ継続管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、システム障害発生時に実行中のジョブを効率的に継続実行するためのジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラムに関する。
【背景技術】
【０００２】
ＩＴ環境が高度に発達し日常生活におけるＩＴへの依存度が高まっている現代社会においては、コンピュータシステムの障害による社会への影響が非常に大きく、コンピュータシステムに対する高可用性への要求が益々高まってきている。このような高可用システムにおいては、障害が発生した場合の復旧をいかに効率的に行うかが、大きな課題の一つである。
【０００３】
高可用性システムを構築するための方式の一つとして、例えば通常の運用で使用する現用系のサーバの他に、予備のサーバを待機系のサーバとして準備しておき、現用系サーバで障害が発生した時に、待機系のサーバに切り替えてシステムを継続するようなことが行われている。また近年では、ハードディスク、メモリの大容量化・低価格化の進行や、１台のサーバを仮想的に複数のサーバに分割する仮想化技術の進歩により、１台のサーバの中に現用系の仮想サーバ、待機系の仮想サーバを構築することも可能となり、高可用性システムを比較的安価に構築する技術環境も整ってきている。
【０００４】
このような仮想化技術を活用した高可用システムの例として、特許文献１には仮想計算機システムにより生成される子ＯＳの一部を待機系として存在させ、現用系の子ＯＳがシステム異常により処理できなくなった場合、その処理を待機系の子ＯＳに引き継がせることで、システムの無停止運用を実現するためのシステムが公開されている。
【０００５】
また、障害発生時の復旧処理を効率的に行うシステムの他の例として、特許文献２には、分散処理システム上の分散ノードで障害が発生した時に、その障害によって喪失されるアプリケーションタスクについて、その引き継ぎ先を決定するためのノードの優先度に従い、正常な分散ノード間で喪失機能代替を行うようにしたシステムが公開されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平9-288590
【特許文献２】特開平8-314875
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述の特許文献１に記載された技術では、障害が発生した現用系の子ＯＳ、あるいは分散ノードが実行していた全ての処理を、待機系の子ＯＳ、あるいは正常な分散ノードが同時に引き継ぐことになる。したがって、障害発生元で実行していた処理の引継ぎ先での再スタートは、障害発生元の実行環境に関する全てのデータが引継ぎ先に引き渡された後になり、復旧に時間を要するという問題がある。
【０００８】
また、特許文献２に記載された技術は、障害により実行が中断したアプリケーションタスクを、どのノードが引き継ぐかの優先度に従って引継ぐものであり、アプリケーションタスク自体の処理優先度に従うものではない。したがって、本来処理優先度が高いアプリケーションタスクが最初に継続実行されるとは限らないという問題がある。
【０００９】
本願発明の目的は、これらの問題点を解決したジョブ継続管理装置、ジョブ継続管理システム、ジョブ継続管理方法、及び、ジョブ継続管理プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本願発明の一実施形態のジョブ継続管理装置は、ジョブを実行する複数のジョブ実行手段と、前記ジョブ単位で、ジョブ識別情報と、実行元の前記ジョブ実行手段の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて記憶するジョブ管理情報記憶手段と、前記ジョブ実行手段の何れかで障害が発生した場合に、前記ジョブ管理情報記憶手段を参照し、前記ジョブ実行手段の識別情報が障害発生元の前記ジョブ実行手段の識別情報と一致するレコードについて、前記ジョブ継続実行優先度が高いジョブから順番に、前記ジョブ識別情報と前記ジョブ実行情報を、前記障害発生元のジョブ実行手段を除く何れかの前記ジョブ実行手段に送付して、送付先の前記ジョブ実行手段に当該ジョブを継続実行させるジョブ継続管理手段と、を備える
本願発明の一実施形態のジョブ継続管理方法は、複数のジョブ実行手段によりジョブを実行し、前記ジョブ単位で、ジョブ識別情報と、実行元の前記ジョブ実行手段の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて記憶域に記憶し、前記ジョブ実行手段の何れかで障害が発生した場合に、前記記憶域を参照し、前記ジョブの実行手段の識別情報が障害発生元の前記ジョブ実行手段の識別情報と一致するレコードについて、前記ジョブ継続実行優先度が高いものから順番に、前記ジョブ識別情報と前記ジョブ実行情報を、前記障害発生元のジョブ実行手段を除く何れかの前記ジョブ実行手段に送付して、送付先の前記ジョブ実行手段に当該ジョブを継続実行させる。
【００１１】
本願発明の一実施形態のジョブ継続管理プログラムは、ジョブを実行する複数のジョブ実行手段と記憶域を備えるコンピュータに、前記ジョブ単位で、ジョブ識別情報と、実行元の前記ジョブ実行手段の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて前記記憶域に記憶するジョブ管理情報記憶処理と、前記ジョブ実行手段の何れかで障害が発生した場合に、前記記憶域を参照し、前記ジョブ実行手段の識別情報が障害発生元の前記ジョブ実行手段の識別情報と一致するレコードについて、前記ジョブ継続実行優先度が高いジョブから順番に、前記ジョブ識別情報と前記ジョブ実行情報を、前記障害発生元の前記ジョブ実行手段を除く何れかの前記ジョブ実行手段に送付して、送付先の前記ジョブ実行手段に当該ジョブを継続実行させるジョブ継続管理処理と、を実行させる。
【発明の効果】
【００１２】
本願発明は、コンピュータシステムの障害により中断したジョブを、効率的に継続させることを実現する。
【図面の簡単な説明】
【００１３】
【図１】本願発明の第１の実施形態の構成を示すブロック図である。
【図２】本願発明の第１の実施形態の動作を示すフローチャートである。
【図３】本願発明の第１の実施形態におけるジョブ管理情報の構成例である。
【図４】本願発明の第１の実施形態におけるマシン管理情報の構成例である。
【図５】本願発明の第１の実施形態のバリエーションの構成を示すブロック図である。
【図６】本願発明の第２の実施形態の構成を示すブロック図である。
【図７】本願発明の第２の実施形態におけるジョブ管理情報の構成例である。
【図８】本願発明の第３の実施形態の構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
本願発明の第一の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は、本実施形態の構成を示すブロック図である。
【００１６】
本実施形態のジョブ継続管理システムは、ホストサーバ１と、クライアント端末１６と、入出力データ格納部１７とを包含している。
【００１７】
ホストサーバ１は、仮想サーバシステムを構築しており、現用系仮想サーバ１０乃至１１と、待機系仮想サーバ１２と、仮想サーバ監視部１3と、共有メモリ１４と、ジョブ継続管理部１５とを包含している。
【００１８】
現用系仮想サーバ１０乃至１１は、ホストサーバ１によって構築された仮想サーバであり、それぞれ、サーバ１、サーバ２の名称がホストサーバ１により付与されている。現用系仮想サーバ１０乃至１１は、通常運用時にジョブを実行する仮想サーバであり、それぞれ、ジョブ実行部１００と１１０、および、ローカルメモリ１０１と１１１を包含している。ローカルメモリ１０１と１１１は、それぞれ、ジョブ実行部１００と１１０が実行するジョブのプログラムやデータを格納している。
【００１９】
待機系仮想サーバ１２も同様に、ホストサーバ１によって構築された仮想サーバであり、サーバ３の名称がホストサーバ１により付与されている。待機系仮想サーバ１２は、通常運用時にはジョブを実行せず、現用系仮想サーバ１０乃至１１の何れかで障害が発生し、障害サーバでジョブを実行できなくなった場合に、障害サーバからジョブを引き継いで、中断したジョブを継続実行する。待機系仮想サーバ１２はジョブ実行部１２０とローカルメモリ１２１を包含している。ローカルメモリ１２１は、ジョブ実行部１２０が実行するジョブのプログラムやデータを格納している。
【００２０】
仮想サーバ監視部１３は、現用系仮想サーバ１０乃至１１における障害発生を監視しており、何れかの仮想サーバで障害が発生した場合、障害の発生した仮想サーバから障害メッセージを受信し、そのサーバのサーバ名称をジョブ継続管理部１５へ送信する。
【００２１】
共有メモリ１４は、ホストサーバ１が直接管理しているメモリであり、現用系仮想サーバ１０乃至１１、および、待機系仮想サーバ１２からもアクセス可能である。共有メモリ１４は、現用系仮想サーバ１０乃至１１、待機系仮想サーバ１２が実行するジョブのプログラムやデータの写しを格納している。
【００２２】
共有メモリ１４は、ジョブ管理情報記憶部１４０を包含している。ジョブ管理情報記憶部１４０は、現用系仮想サーバ１０乃至１１が実行している各々のジョブに関する管理情報であるジョブ管理情報１４１を格納している。
【００２３】
ジョブ管理情報１４１の構成例を図３に示す。ジョブ管理情報１４１は、ジョブ名と、ジョブ実行サーバと、ジョブ処理エンジンと、結果通知先と、処理中の入力データと、継続優先度を対応付けている。「ジョブ名」は、ホストサーバ１の中で実行されている全てのジョブを識別できるよう、ホストサーバ１によってユニークに付与されている。「ジョブ実行サーバ」は、当該ジョブを実行しているサーバを示すものであり、例えば、ジョブ１とジョブ２は現用系仮想サーバ１０（サーバ１）で実行され、ジョブ２とジョブ３は現用系仮想サーバ１１（サーバ２）で実行されていることを示している。「ジョブ処理エンジン」は、ジョブが実行するプログラムの名称を示すものであり、例えば、ジョブ１はａｄｄｉｔｉｏｎ（入力データの加算）、ジョブ２はｍｕｌｔｉｐｌｉｃａｔｉｏｎ（入力データの乗算）のプログラムを実行することを示している。「結果通知先」はジョブ実行結果の出力先を示すものであり、本構成例では、ジョブ１乃至４ともクライアント端末１６に出力することを示している。「処理中の入力データ」は、ジョブが現在処理している入力データを示すものであり、例えば、ジョブ１は入力データＮＵＭ１（５）とＮＵＭ２（５）を処理中であり、ジョブ２はＮＵＭ１（３）とＮＵＭ２（３）を処理中であることを示している。「継続優先度」はホストサーバ１により設定された、障害発生時にジョブを継続実行するときの実行優先度を示すものであり、値の小さい方の優先順位が高く、本構成例では、ジョブ１、ジョブ３、ジョブ２、ジョブ４の優先順位であることを示している。
【００２４】
共有メモリ１４は、システムの管理情報であるマシン管理情報１４２も格納している。
【００２５】
マシン管理情報１４２の構成例を図４に示す。マシン管理情報１４２は、サーバ名と、ＩＰアドレスと、最大同時実行ジョブ数を対応付けている。「ＩＰアドレス」は本実施形態のシステム管理者により付与された、各サーバやクライアント端末のＩＰアドレスである。「最大同時実行ジョブ数」は、現用系仮想サーバ１０（サーバ１）乃至１１（サーバ２）や待機系仮想サーバ１２（サーバ３）が同時に実行可能な最大ジョブ数を示しており、現用系仮想サーバ１０乃至１１の最大ジョブ数は２、待機系仮想サーバ１２の最大ジョブ数は１であることを示している。待機系仮想サーバ１２の最大ジョブ数が、現用系仮想サーバ１０乃至１１の最大ジョブ数と比較して小さいのは、ハードウェアリソースの有効活用のため、通常運用時には使用しない待機系仮想サーバ１２へ割り当てるハードウェアリソースを小さくしているからである。
【００２６】
ジョブ継続管理部１５は、現用系仮想サーバ１０乃至１１の何れかで障害が発生した場合に、障害が発生した仮想サーバで実行していたジョブを、待機系仮想サーバ１２に引き継がせて実行させる。
【００２７】
例えば現用系仮想サーバ１０（サーバ１）で障害が発生した場合、仮想サーバ監視部１３は、現用系仮想サーバ１０から発信された障害発生情報を受信して、現用系仮想サーバ１０で障害が発生したことをジョブ継続管理部１５へ報告する。
【００２８】
ジョブ継続管理部１５は障害発生の報告を受けて、ジョブ管理情報記憶部１４０におけるジョブ管理情報１４１の中から、ジョブ実行サーバがサーバ１であるレコードを検索し、サーバ１が実行していたジョブ１とジョブ２に関するレコードを抽出する。
【００２９】
ジョブ継続管理部１５は、ジョブ管理情報１４１から現時点で待機系仮想サーバ１２が実行しているジョブ数が０であり、マシン管理情報１４２から待機系仮想サーバ１２の最大同時実行ジョブ数が１であることから、待機系仮想サーバ１２がジョブ実行可能な状態であることを確認する。
【００３０】
ジョブ実行管理部１５は、上述で抽出したジョブ１とジョブ２に関するレコードにおける継続優先度の比較を行い、継続優先度が高いジョブ１のレコードにおけるジョブ名と、ジョブ処理エンジンと、結果通知先と、処理中の入力データの情報を、待機系仮想サーバ１２のジョブ実行部１２０に送信して、ジョブ１の継続実行を指示する。ジョブ継続管理部１５は同時に、ジョブ管理情報１４１におけるジョブ１のレコードのジョブ実行サーバのデータを、サーバ１からサーバ３に書き換える。
【００３１】
待機系仮想サーバ１２のジョブ実行部１２０は、ジョブ継続管理部１５からのジョブ１継続実行の指示を受けて、ジョブ処理エンジンのａｄｄｉｔｉｏｎのプログラムと、入力データのＮＵＭ１（Ｉ）とＮＵＭ２（Ｉ）を共有メモリ１４からローカルメモリ１２１にロードして、Ｉ＝５からジョブの継続実行を開始する。
【００３２】
ジョブ継続管理部１５は、ジョブ１に引き続いて、ジョブ２についても同様に、待機系仮想サーバ１２のジョブ実行部１２０にジョブ継続実行を指示する準備をする。待機系仮想サーバ１２におけるジョブ１の継続実行が完了していない時点では、待機系仮想サーバ１２が実行しているジョブ数は１である。また、マシン管理情報１４２から待機系仮想サーバ１２の最大同時実行ジョブ数は１である。したがって、ジョブ継続管理部１５は、待機系仮想サーバ１２にジョブを追加実行させることができない状態であることを確認する。この場合、ジョブ継続管理部１５は、待機系仮想サーバ１２におけるジョブ１の継続実行が完了するまで、待機系仮想サーバ１２に対するジョブ２の継続実行の指示を保留する。
【００３３】
ジョブ実行部１２０は、ジョブ１の継続実行を完了すると、ジョブ継続管理部１５に対してジョブ１の実行完了を報告する。ジョブ継続管理部１５は、ジョブ１の実行完了報告を受けて、ジョブ管理情報１４１におけるジョブ１のレコードを削除する。この時点で、ジョブ管理情報１４１における待機系仮想サーバ１２が実行しているジョブ数が０となる。したがって、ジョブ継続実行管理部１５は、待機系仮想サーバ１２がジョブ実行可能な状態であることを確認して、保留していた待機系仮想サーバ１２に対するジョブ２の継続実行の指示を、ジョブ実行部１２０に出力する。ジョブ継続管理部１５は同時に、ジョブ管理情報１４１におけるジョブ２のレコードのジョブ実行サーバのデータを、サーバ１からサーバ３に書き換える。
【００３４】
ジョブ実行部１２０は、ジョブ継続管理部１５からのジョブ２継続実行の指示を受けて、ジョブ処理エンジンのｍｕｌｔｉｐｌｉｃａｔｉｏｎのプログラムと、入力データのＮＵＭ１（Ｉ）とＮＵＭ２（Ｉ）を共有メモリ１４からローカルメモリ１２１にロードして、Ｉ＝３からジョブの継続実行を開始する。
【００３５】
この時点で、現用系仮想サーバ１０で実行していたジョブで、継続実行されていないジョブが無くなり、ホストサーバ１は、待機系仮想サーバ１２０を現用系サーバに昇格させる。
【００３６】
クライアント端末１６は、本実施形態のシステムの利用者が、ジョブ実行を指示し、ジョブの実行結果を確認する端末である。
【００３７】
入出力データ格納部１７は、本実施形態のシステムが実行するジョブが使用するプログラムや入力データ、あるいはジョブの実行結果の出力データを格納するディスク装置である。
【００３８】
次に図２のフローチャートを参照して、本実施形態の動作について詳細に説明する。
【００３９】
仮想サーバ監視部１３は、現用系仮想サーバ１０乃至１１の何れかから障害発生情報を受信し、障害発生情報をジョブ継続管理部１５へ送付する（Ｓ１０１）。ジョブ継続管理部１５は、ジョブ管理情報１４１を参照し、障害の発生した仮想サーバで実行中のジョブが存在するか確認する（Ｓ１０２）。障害の発生した仮想サーバで実行中のジョブが存在しない場合（Ｓ１０３でＮｏ）、ホストサーバ１は、待機系仮想サーバ１２を現用系仮想サーバに昇格させ（Ｓ１１０）、全体の処理は終了する。
【００４０】
障害の発生した仮想サーバで実行中のジョブが存在する場合（Ｓ１０３でＹｅｓ）、ジョブ継続管理部１５は、マシン管理情報１４２における待機系仮想サーバ１２の最大同時実行ジョブ数と、ジョブ管理情報１４１におけるジョブ実行サーバの情報から算出した待機系仮想サーバ１２で実行中のジョブ数との差分を算出する（Ｓ１０４）。差分が１以上でない場合（Ｓ１０５でＮｏ）、ジョブ継続管理部１５は、この状態で待機する。
【００４１】
差分が１以上である場合（Ｓ１０５でＹｅｓ）、ジョブ継続管理部１５はジョブ管理情報記憶部１４０におけるジョブ管理情報１４１を参照し、ジョブ実行サーバが障害発生元のサーバと一致するレコードの中から、継続優先度が一番高いレコードのデータを読み出す（Ｓ１０６）。ジョブ継続管理部１５は、読み出した継続優先度が一番高いレコードの情報を待機系仮想サーバ１２におけるジョブ実行部１２０に送付し、そのレコードのジョブの継続実行を指示する。そして、ジョブ継続管理部１５は、ジョブ管理情報１４１における当該ジョブに関するレコードのジョブ実行サーバの情報を、待機系仮想サーバの「サーバ3」に書き換える（Ｓ１０７）。
【００４２】
ジョブ実行部１２０は、ジョブ継続管理部１５から指示されたジョブの継続実行に必要なデータを、共有メモリ１４からローカルメモリ１２１にロードして当該ジョブの継続実行を開始し、ジョブ実行が完了したらジョブ継続管理部１５へ報告する（Ｓ１０８）。ジョブ継続管理部１５は、ジョブ管理情報１４１から、実行完了の報告を受けたジョブに関するレコードを削除し、Ｓ１０２に戻る（Ｓ１０９）。
【００４３】
本実施形態には、システム障害の発生により実行が中断されたジョブを、短時間で効率的に継続実行を開始するという効果がある。第一の理由は、ジョブ継続管理部１５が、ジョブ管理情報記憶部１４０に格納されたジョブの継続優先度の情報に従い、継続優先度の高いジョブから順次、ジョブの継続実行に必要な情報を待機系仮想サーバ１２に引き渡して、ジョブの継続実行を指示するからである。待機系仮想サーバ１２は、優先順位の高いジョブの継続実行に必要な情報を入手できた時点で、そのジョブの継続実行を開始することが可能となり、障害発生元のサーバで実行していた全てのジョブの継続実行のための情報を入手してから継続実行を開始する方式と比較して、短時間でジョブの継続実行を開始することが可能となる。
【００４４】
また、第二の理由は、ジョブ継続管理部１５による待機系仮想サーバ１２へのジョブ継続実行情報の引渡しが、仮想サーバシステムを構築しているホストサーバ１内のメモリコピーで行われるからである。ジョブ引継ぎ先へのジョブ継続情報の引渡しが、異なる物理サーバ間で行われる場合と比較して、データ転送に要する時間が短いため、短時間でジョブの継続実行を開始することが可能となる。
【００４５】
以上、ジョブ継続管理装置が、２台の現用系仮想サーバと１台の待機系仮想サーバを包含するシステムを例に本実施形態を説明したが、本実施形態は、この構成に限定されるものではない。仮想サーバは実プロセッサなどでもよい。また、現用系サーバが待機系サーバの機能を兼ね備えてもよい。
【００４６】
本実施形態のバリエーションの構成のブロック図を図５に示す。本構成例では、ジョブ継続管理装置１は、上述の構成例における現用系仮想サーバ１０乃至１１、待機系仮想サーバ１２の代わりに、ジョブ実行ユニット２０乃至２２を包含している。ジョブ実行ユニット２０乃至２２は、それぞれ、ジョブ実行部１００、１１０、１２０と、ローカルメモリ１０１、１１１、１２１を包含している。ジョブ実行部１００、１１０、１２０は、それぞれ１つのプロセッサである。ジョブ実行ユニット２０乃至２２は運用系であるとともに待機系の機能も兼ねており、ジョブ実行ユニット２０乃至２２の何れかで障害が発生した場合は、ジョブ継続管理部１５の指示により、障害が発生していない２台のジョブ実行ユニットが中断したジョブを引き継ぐ。
＜第二の実施形態＞
次に、本願発明の第二の実施形態について図面を参照して詳細に説明する。
【００４７】
図６は、本実施形態の構成を示すブロック図である。
【００４８】
本実施形態のジョブ継続管理システムの構成は、ジョブ継続管理部１５の中に例外タイミング継続優先度設定部１５０を追加したことを除いては、図１に示す第一の実施形態の構成と同様である。
【００４９】
また、本実施形態では、ジョブ管理情報記憶部１４０が記憶するジョブ管理情報２４１が、第一の実施形態におけるジョブ管理情報１４１とは異なる。ジョブ管理情報２４１の構成例を図７に示す。
【００５０】
ジョブ管理情報２４１は、第一の実施形態におけるジョブ管理情報１４１に対して、例外タイミングと、例外タイミング継続優先度の情報を追加している。これらは、「例外タイミング」に示す月末や期末等のある特定の時期においては、通常の時期とは異なり、ジョブ継続管理部１５が「例外タイミング継続優先度」に示す値を継続優先度として使用するための情報である。
【００５１】
例外タイミング継続優先度設定部１５０は、ホストサーバ１が保持している現在日時情報と、ジョブ管理情報２４１における例外タイミングの情報を照らし合わせる。例外タイミング継続優先度設定部１５０は、現在日時が例外タイミングに記載された時期であるレコードが存在する場合、当該レコードのジョブについて、当該レコードにおける継続優先度の値を、例外タイミング継続優先度の値に置き換えてジョブ継続の動作を行うよう、ジョブ継続管理部１５に指示する。
【００５２】
例えば、５月末日（月末）に現用系仮想サーバ１０（サーバ１）で障害が発生した場合、例外タイミング継続優先度設定部１５０は、ジョブ管理情報２４１においてジョブ１の例外タイミングが月末であることから、ジョブ１の継続優先度の値を４から２に置き換えてジョブ継続の動作を行うよう、ジョブ継続管理部１５に指示する。
【００５３】
ジョブ継続管理部１５は、ジョブ１の継続優先度を４から２に置き換えた上で、第一の実施形態と同様の動作を行う。この場合、ジョブ１、ジョブ２の継続優先度はそれぞれ２と５になり、ジョブ継続管理部１５は、ジョブ１、ジョブ２の順番でジョブ継続動作を行う。
【００５４】
また、９月末日（期末）に現用系仮想サーバ１０（サーバ１）で障害が発生した場合は、９月末日は月末でもあり期末でもあることから、ジョブ１、ジョブ２の継続優先度は、それぞれ２と０になり、ジョブ継続管理部１５は、ジョブ２、ジョブ１の順番でジョブ継続動作を行う。
【００５５】
本実施形態には、ある特定の時期に限定してジョブの継続優先度の設定を変更したい場合に、その設定変更を自動で行う効果がある。その理由は、例外タイミング継続優先度設定部１５０が、ジョブ管理情報２４１に記載された例外タイミングの時期とその時期に適用する例外タイミング継続優先度の値を参照し、例外タイミングの時期であれば、例外タイミング継続優先度の値を継続優先度として使用するようにジョブ継続管理部１５に指示するからである。
【００５６】
通常時期における優先度はそれほど高くないが、月末や期末などの特定の時期における優先度が高いジョブについて、人手で優先度の設定変更を行う場合は、設定漏れによる最優先ジョブの処理の遅れが発生する可能性がある。本実施形態では、優先度の設定変更を例外タイミング継続優先度設定部１５０が自動で行うため、上述の問題は解消される。
＜第三の実施形態＞
次に、本願発明の第三の実施形態について図面を参照して詳細に説明する。
【００５７】
図７は、本実施形態の構成を示すブロック図である。
【００５８】
本実施形態のジョブ継続管理装置１は、複数、例えば２個のジョブ実行部３０１乃至３０２と、ジョブ管理情報記憶部３４０と、ジョブ継続管理部３５とを包含している。
【００５９】
ジョブ実行部３０１乃至３０２はジョブを実行する装置である。これらは通常プロセッサの場合もあれば、第一の実施形態における現用系仮想サーバ１０乃至１１のような仮想サーバの場合もある。
【００６０】
ジョブ管理情報記憶部３４０は、ジョブ実行部３０１乃至３０２が実行する各ジョブに対して、ジョブの識別情報と、実行元のジョブ実行部の識別情報と、ジョブ実行情報と、ジョブ継続実行優先度とを対応付けて記憶している。その詳細構成は、図３に示す第一の実施形態のジョブ管理情報１４１と同様である。
【００６１】
ジョブの識別情報は、全てのジョブを識別できるように、システム管理部（図示せず）が付与したユニークな名称である。実行元のジョブ実行部の識別情報は、ジョブ実行部３０１、もしくはジョブ実行部３０２のいずれかの名称となる。
【００６２】
ジョブ実行情報は、図３に示すとおり、ジョブ処理エンジンと結果通知先と処理中の入力データとを包含しており、それらの詳細は、第一の実施形態で記載した通りである。ジョブ継続実行優先度は、システム管理部により設定された、障害発生時にジョブを継続実行するときの実行優先度を示すものであり、その詳細は、第一の実施形態で記載した通りである。
【００６３】
ジョブ継続管理部３５は、例えば、ジョブ実行部３０１で障害が発生した場合に、ジョブ管理情報記憶部３４０を参照する。そして、ジョブ継続管理部３５は、実行元のジョブ実行部の識別情報が、ジョブ実行部３０１であるレコードについて、ジョブ継続実行優先度が高いジョブから順番に、当該ジョブの識別情報と当該ジョブの実行情報を、ジョブ実行部３０２に送付して、ジョブ実行部３０２に当該ジョブを継続実行させる。
【００６４】
本実施形態には、第一の実施形態と同様に、ジョブ実行部３０１乃至３０２の何れかにおける障害の発生により実行が中断されたジョブを、短時間で効率的に継続実行を開始するという効果がある。その理由は、ジョブ継続管理部３５が、ジョブ管理情報記憶部３４０に格納されたジョブの継続優先度の情報に従い、継続優先度の高いジョブから順次、ジョブの継続実行に必要な情報を、障害が発生していない方のジョブ実行部に引き渡して、ジョブの継続実行を指示するからである。
【００６５】
本実施形態は、第一、第二の実施形態のような待機系のサーバを備えていないが、上述の効果を実現している。
【００６６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００６７】
１    ホストサーバ（ジョブ継続管理装置）
１０乃至１１    現用系仮想サーバ
１２    待機系仮想サーバ
１００、１１０、１２０    ジョブ実行部
１０１、１１１、１２１    ローカルメモリ
１３    仮想サーバ監視部
１４    共有メモリ
１４０、３４０    ジョブ管理情報記憶部
１４１、２４１    ジョブ管理情報
１４２    マシン管理情報
１５、３５    ジョブ継続管理部
１６    クライアント端末
１７    入出力データ格納部
２０乃至２２    ジョブ実行ユニット
３０１乃至３０２    ジョブ実行部
【図１】
0005948933.tif 000002
【図２】
0005948933.tif 000003
【図３】
0005948933.tif 000004
【図４】
0005948933.tif 000005
【図５】
0005948933.tif 000006
【図６】
0005948933.tif 000007
【図７】
0005948933.tif 000008
【図８】
0005948933.tif 000009