(57)【要約】【課題】    バックアップ処理のための最適な待機計算機を選定してシステムを速やかに回復することのできるクラスタシステムを提供する。【解決手段】   複数の計算機１０−１〜１０−ｎのうち、その１つを送信側計算機として選定し、少なくとも他の１つを待機側計算機として選定した送信側サーバ１０を備え、前記送信側計算機１０−１は、受信した電文を受信側サーバ２０に送信するとき、該電文を前記他の計算機の負荷情報をもとに選定した待機側計算機１０−２に送信する。【選択図】  図１
2005301436.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機のうち、その１つを送信側計算機として選定し、少なくとも他の１つを待機側計算機として選定した送信側サーバを備え、
前記送信側計算機は、受信した電文を受信側サーバに送信するとき、該電文を前記他の計算機の負荷情報をもとに選定した待機側計算機に送信することを特徴とするクラスタシステム。
【請求項２】
請求項１記載のクラスタシステムにおいて、
前記待機側計算機は、通信障害を検知したとき受信した電文を受信側サーバに送信することを特徴とするクラスタシステム。
【請求項３】
請求項１記載のクラスタシステムにおいて、
前記送信側計算機は負荷情報を格納する負荷管理テーブルを備え、該テーブルは通常時のＣＰＵ利用率およびメモリ使用量並びに障害時におけるＣＰＵ利用率およびメモリ使用量予測値を格納することを特徴とするクラスタシステム。
【請求項４】
請求項１記載のクラスタシステムにおいて、
送信する電文の負荷をＣＰＵ利用率およびメモリ使用量をもとに分類し、分類結果をもとに障害時における負荷が計算機間で同等になるように、待機側計算機を選定することを特徴とするクラスタシステム。
【請求項５】
請求項４記載のクラスタシステムにおいて、
送信側の各計算機は、ＣＰＵ利用率およびメモリ使用量を測定し、該測定値の前回測定値との差が所定値以上のとき、前記測定値を他の送信側計算機に通知しすることを特徴とするクラスタシステム。
【請求項６】
送信側サーバを構成する複数の計算機のうちの一つを送信側計算機として選定し、他の計算機をその負荷情報をもとに待機側計算機として選定する工程と、
送信側サーバが受信した電文を受信側サーバおよび待機側計算機に送信する工程を備えたことを特徴とするクラスタシステムにおける障害回復方法。
【請求項７】
請求項６記載のクラスタシステムにおける障害回復方法において、
前記待機側計算機は、通信障害を検知したとき受信した電文を受信側サーバに送信することを特徴とするクラスタシステムにおける障害回復方法。
【請求項８】
請求項６記載のクラスタシステムにおける障害回復方法において、
前記負荷情報はＣＰＵの利用率あるいはメモリの使用量であることを特徴とするクラスタシステムにおける障害回復方法。
【請求項９】
請求項６記載のクラスタシステムにおける障害回復方法において、
前記待機側計算機は、送信側計算機が送信する電文タイプをもとに選定することを特徴とするクラスタシステムにおける障害回復方法。
【請求項１０】
請求項９記載のクラスタシステムにおける障害回復方法において、  
電文タイプは、電文処理に要するＣＰＵ利用率あるいはメモリ使用量であることを特徴とするクラスタシステムにおける障害回復方法。
【請求項１１】
請求項６記載のクラスタシステムにおける障害回復方法において、
送信する電文の負荷をＣＰＵ利用率およびメモリ使用量をもとに分類し、分類結果をもとに障害時における負荷が計算機間で同等になるように、待機側計算機を選定することを特徴とするクラスタシステムにおける障害回復方法。
【請求項１２】
請求項７記載のクラスタシステムにおける障害回復方法において、  
サーバは情報処理工程中に複数のチェックポイントを備え、最初のチェックポイントまでに障害が発生したときは電文の最初から、最初のチェックポイント以降に障害が発生したときは最新のチェックポイントから処理を再実行することを特徴とするクラスタシステムにおける障害回復方法。
【請求項１３】
複数の計算機のうちの少なくともその一つを送信側計算機として機能させ、他の計算機をその負荷情報をもとに選定して待機側計算機として機能させ、
受信した電文を送信側計算機から受信側計算機に送信するとき、前記送信側計算機を、受信した電文を受信側計算機および待機側計算機に送信する手段として機能させることを特徴とするプログラム。
【請求項１４】
請求項１３記載のプログラムにおいて、
前記待機側計算機は、通信障害を検知したとき前記待機側計算機を受信した電文を受信側計算機に送信する手段として機能させることを特徴とするプログラム。
【請求項１５】
請求項１３記載のプログラムにおいて、
前記待機側計算機は、送信側計算機が送信する電文タイプをもとに選定することを特徴とするプログラム。
【請求項１６】
請求項１記載のクラスタシステムにおいて、
送信側サーバはクライアントからオブジェクト処理を受信したとき、これを受信側サーバに要求し、さらに他の送信側サーバのうち負荷の最も低い送信側サーバに要求を転送し、オブジェクト処理を受信した前記送信側サーバで障害が発生したとき待機の送信側サーバに処理を引き継ぐことを特徴とするクラスタシステム
【請求項１７】
複数の計算機のうち、その１つを送信側計算機として選定し、少なくとも他の１つを待機側計算機として選定した送信側サーバと、
受信側計算機を備えた受信側サーバを備え、
前記送信側計算機は、受信した電文を受信側サーバに送信するとき、該電文を前記他の計算機の負荷情報をもとに選定した待機側計算機に送信することを特徴とするクラスタシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムおよびクラスタシステムにおける障害回復方法に係り、特に、障害発生時にシステムを迅速に切り換えて障害を回復することのできるクラスタシステムおよびクラスタシステムにおける障害回復方法に関する。
【背景技術】
【０００２】
特許文献１には、ノードコンピュータは、他のノードコンピュータが正常に動作しているかどうかを示すノードコンピュータ状態情報登録テーブルを利用して他のノードコンピュータの状態をリアルタイムに把握し、送信先に障害が発生した場合には送信先を代替送信先に自動的に切り替えることのできるコンピュータのネットワーク制御方式が示されている。
【０００３】
また、特許文献２には、各ノードが相互に共有する共有ディスク上の監視情報リポジトリを監視し、この監視情報を基に動的に代替ノードを選択して、フェールオーバ先（引継先）のノードを決定することのできる計算機システムが示されている。
【特許文献１】特開平０２−１８６４６８号公報
【特許文献２】特開２０００−４７８９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、クラスタシステムは、バックアップ処理（障害に備えた援護処理）のみを行う専用の計算機をなくして、全ての計算機が電文処理等の処理を行うことが要求される。また、このクラスタシステムでは、１つの計算機に障害が発生しても、他の正常な計算機に処理すべき電文あるいはチェックポイントデータを送り、障害発生後の引き継ぎ処理（フェイルオーバ処理）を実行させることによりクラスタシステム全体の停止を防止することができる。
【０００５】
しかしながら、特許文献１に示すコンピュータのネットワーク制御方式では、複数の送信側計算機を備えたシステムにおける送信側計算機間での障害発生時の引継ぎ処理については考慮されていない。また、特許文献２に示す計算機システムでは、監視情報からフェールオーバ先のノードを決定することができる。しかし、フェールオーバ処理には、共有ディスクに格納されているＤＢのリボジトリ（チェックポイントデータなど）あるいは資源情報を参照しなければならず、また、電文の再送処理が必要となるため高速なフェールオーバは実現できない。また、バックアップ処理を行う計算機を選定する際、他の計算機の負荷を適正に考慮していないため負荷が変化すると、サーバ間で負荷の偏りが発生する。
【０００６】
本発明は、これらの問題点に鑑みてなされたもので、バックアップ処理のための最適な待機計算機を選定してシステムを速やかに回復することのできるクラスタシステムを提供する。
【課題を解決するための手段】
【０００７】
本発明は上記課題を解決するため、次のような手段を採用した。
【０００８】
複数の計算機のうち、その１つを送信側計算機として選定し、少なくとも他の１つを待機側計算機として選定した送信側サーバを備え、前記送信側計算機は、受信した電文を受信側サーバに送信するとき、該電文を前記他の計算機の負荷情報をもとに選定した待機側計算機に送信する。
【発明の効果】
【０００９】
本発明は、以上の構成を備えるため、バックアップ処理のための最適な待機計算機を選定してシステムを速やかに回復することのできるクラスタシステムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、最良の実施形態を添付図面を参照しながら説明する。図１は、本発明の実施形態にかかるクラスタシステムを説明する図である。本システムは、送信側サーバ（１０）および受信側サーバ（２０）を備える。送信側サーバ（１０）は、送信側計算機１（１０−１）ないし送信側計算機ｎ（１０−ｎ）を備える。受信側サーバ（２０）は、受信側計算機１（２０−１）ないし受信側計算機ｎ（２０−ｎ）を備える。
【００１１】
ここで、送信側計算機１（１０−１）から電文を受信側計算機１（２０−１）に送信する際、送信側計算機１（１０−１）に障害が発生し、他の送信側計算機（１０−２〜１０−ｎ）の何れかが処理を継続する場合について説明する。
【００１２】
送信側計算機２ないし送信側計算機ｎ（１０−２〜１０−ｎ）はそれぞれ自己の負荷情報（例えばＣＰＵ利用率およびメモリ使用量）を取得し、取得した負荷情報を送信側計算機１（１０−１）に送信する（ステップ１００と１０１）。送信側計算機１（１０−１）は取得した負荷情報をもとにバックアップ処理を行う待機の計算機を選定する（ステップ１０２）。ここでは、送信側計算機２（１０−２）をバックアップ処理を行う計算機として選定するものとする。すなわち、複数の送信側計算機のうち任意の１台を実際に電文を送信する送信側計算機として選定し、他の計算機のうち負荷の少ない（ＣＰＵ利用率およびメモリ使用量の少ない）計算機を待機側計算機として選定する。なお、複数の送信側計算機の何れを実際に電文を送信する送信側計算機として選定するかは任意であり、したがって何れの計算機も実際に電文を送信する送信側計算機となることができる。
【００１３】
次いで、送信側計算機１（１０−１）は、送信すべき電文を解析し、その特性を調査した後受信側計算機１（２０−１）に電文を送信する（ステップ１０３）。このとき、バックアップ処理を行う待機の送信側計算機（待機側計算機）２に電文を送信する（ステップ１０４）。
【００１４】
送信側計算機１（１０−１）に障害が発生すると（ステップ１０５）、送信側計算機２（１０−２）および受信側計算機１（２０−１）はこの障害を検出し、受信側計算機１（２０−１）は、処理結果を送信側計算機２（１０−２）に送信する（ステップ１０６）。処理結果を受けた送信側計算機（待機側計算機）２（１０−２）は引き継ぎ処理、すなわち前記受信した電文の受信側サーバへの送信を実行する（ステップ１０７）。
【００１５】
図２は、３階層クラスタシステムの構成を説明する図である。このシステムは、ＦＥＰ(Front End Processor)サーバ（３０）、ＡＰ(Application Processor)サーバ（４０）、ＤＢ(Database)サーバ（５０）、ネットワーク（６０）および端末（６１）を備える。ＦＥＰサーバ（３０）は、ＦＥＰ計算機１ないしＦＥＰ計算機ｎ（３０−１〜３０−ｎ）を備える。同様にＡＰサーバ（４０）はＡＰ計算機１ないしＡＰ計算機ｎ（４０−１〜４０−ｎ）を備え、ＤＢサーバ（５０）はＤＢ計算機１ないしＤＢ計算機ｎ（５０−１〜５０−ｎ）を備える。
【００１６】
ここで、２つの伝送処理を説明する。第１の伝送処理は、ＦＥＰサーバ（３０）とＡＰサーバ（４０）間の伝送処理であり、ＦＥＰサーバ（３０）を送信側サーバ（１０）とし、ＡＰサーバ（４０）を受信側サーバ（２０）として稼動する。第２の伝送処理は、ＡＰサーバ（４０）とＤＢサーバ（５０）間の伝送処理であり、ＡＰサーバ（４０）を送信側サーバ（１０）とし、ＤＢサーバ（５０）を受信側サーバ（１０）として稼動する。
【００１７】
第１の伝送処理では、ＦＥＰ計算機１（３０−１）はネットワーク（６０）経由で端末（６１）から電文を受信する（ステップ２００）。ＦＥＰ計算機１（３０−１）は受信した電文を受信側計算機１（４０−１）に電文を送信する。
【００１８】
ここで、ＦＥＰ計算機１（３０−１に障害が発生し、他のＦＥＰ計算機（３０−２〜３０−ｎ）で処理を継続する場合について説明する。
【００１９】
ＦＥＰ計算機２ないしＦＥＰ計算機ｎ（３０−２〜３０−ｎ）は、負荷情報を取得し（ステップ２０１，２０２）、これをＦＥＰ計算機１（３０−１）に送信する（ステップ２０３）。ＦＥＰ計算機１（３０−１）は、これらの負荷情報からバックアップ処理を行う待機の計算機を選定する（ステップ２０４）。ここでは、ＦＥＰ計算機２（３０−２）をバックアップ処理を行う計算機として選定する。
【００２０】
ＦＥＰ計算機１（３０−１）は、電文を解析しその特性を調査する（ステップ２０５）。次いで、ＦＥＰ計算機１（３０−１）は、受信した電文をＡＰ計算機１（４０−１）に送信する（ステップ２０６）。このとき、バックアップ処理を行う待機のＦＥＰ計算機２（３０−２）に電文を送信する（ステップ２０７）。
【００２１】
ＦＥＰ計算機１（３０−１）に障害が発生すると（ステップ２０８）ＦＥＰ計算機２（３０−２）およびＡＰ計算機１（４０−１）はこの障害を検出し、ＡＰ計算機１（４０−１）は処理結果をＦＥＰ計算機２（３０−２）に送信する（ステップ２０９）。処理結果を受信したＦＥＰ計算機２（３０−２）は引き継ぎ処理を実行し（ステップ２１０）、ＦＥＰ計算機２（３０−２）は、ネットワーク（６０）経由で端末（６１）から電文を受信する（ステップ２１１）。
【００２２】
第２の伝送処理では、ＡＰ計算機１（４０−１）が電文を受信側計算機１に電文を送信する。ここで、ＡＰ計算機１（４０−１）に障害が発生し、他のＡＰ計算機（４０−２〜４０−ｎ）が処理を継続する場合について説明する。
【００２３】
ＡＰ計算機は、ＤＢ計算機の送信側計算機であり、ＦＥＰ計算機の受信側計算機となる。この場合、ＡＰ計算機１は、ＤＢ計算機の送信側計算機であり、ＦＥＰ計算機の受信側計算機となる。このため、ＡＰ計算機い障害が発生すると、ＦＥＰ計算機とＤＢ計算機に影響を与える。
【００２４】
ＡＰ計算機２（４０−２）ないしＡＰ計算機ｎ（４０−ｎ）は負荷情報を取得し（ステップ２２１，２２２）、取得した負荷情報をＡＰ計算機１（４０−１）に送信する（ステップ２２３）。ＡＰ計算機１（４０−１）は、これらの負荷情報からバックアップ処理を行う待機の計算機を選定する（ステップ２２４）。ここでは、ＡＰ計算機２（４０−２）をバックアップ処理を行う計算機として選定する。
【００２５】
ＡＰ計算機１（４０−１）は、電文を解析しその特性を調査する（ステップ２２５）。次いで、ＡＰ計算機１は、ＤＢ計算機１に電文を送信する（ステップ２２６）。このときバックアップ処理を行う待機のＡＰ計算機２に電文を送信する（ステップ２２７）。
【００２６】
ＡＰ計算機１（４０−１）で障害が発生すると（ステップ２２８）、ＡＰ計算機２（４０−２）およびＤＢ計算機１（５０−１）はこの障害を検出し、ＤＢ計算機１（５０−１）は、処理結果をＡＰ計算機２（４０−２）に送信する（ステップ２２９）。反り結果を受信したＡＰ計算機２（４０−２）は引き継ぎ処理を実行する（ステップ２３０）。
【００２７】
一方、ＦＥＰ計算機は、ＡＰ計算機の障害を検出すると、正常なＡＰ計算機のうち負荷の低いＡＰ計算機に電文を再送する（ステップ２４０）。
【００２８】
図３は、前記各計算機のシステム構成を説明する図である。各計算機は、ＣＰＵ(Central Processing Unit)（３０１）、メモリ（３０２）、およびＩＯＰ  (Input Output Processor)（３０３）を備える。また、メモリ２には、ＯＳ(Operating System)（３１０）、高可用クラスタソフト（３１１）、監視部（３１２）、負荷管理テーブル（３１４）、プロセス（３１３）を構成するソフトウェアが格納される。
【００２９】
高可用クラスタソフト（１１）は、計算機が正常に稼動しているか否かをチェックする障害検出処理、計算機で障害が発生している場合における引き継ぎ処理、他の計算機から負荷情報を送受信処理を実行する。監視部（１２）は、負荷情報を取得し負荷管理テーブル（１４）に格納する。これらのソフトウェアは計算機毎に存在する。
【００３０】
図４は、ＦＥＰサーバの負荷管理テーブル（３０−１４）、図５はＡＰサーバの負荷管理テーブル（４０−１４）、図６はＤＢサーバの負荷管理テーブル（５０−１４）を示すずである。
【００３１】
これらの図に示すように、ＦＥＰサーバ（３０）、ＡＰサーバ（４０）、ＤＢサーバ（５０）について、それぞれサーバ毎に負荷管理テーブルを設ける。全ての計算機は負荷管理テーブルを備え、他の計算機のＣＰＵ利用率、最新のメモリ使用量等の負荷情報を常に保持する。
【００３２】
負荷管理テーブルは、通常時と障害時に分けて、ＣＰＵ利用率とメモリ使用量を管理する。障害が発生していない状態では、通常時のＣＰＵ利用率とメモリ使用量を使用し、ある計算機で障害が発生すると、障害時のＣＰＵ利用率とメモリ使用量を使用する。図４，５，６における「通常時」は稼動中の最新のＣＰＵ利用率（２０）と最新のメモリ使用量（３０）を示す。
【００３３】
計算機に障害が発生すると、他の計算機が障害の発生した処理を引き継ぐ。この引継ぎ処理により、ＣＰＵ利用率やメモリの使用量は増加する。図４，５，６における「障害時」は、これら障害時における引継ぎ処理を考慮したＣＰＵ利用率（２１）、メモリ使用量（３１）を示す。
【００３４】
図７は、電文処理の詳細を説明する図である。ＦＥＰサーバ（３０）の計算機は、端末（６１）から電文を受信すると（ステップ７００）、これを解析し（ステップ７０１）、ＡＰサーバに電文を送信する（ステップ７０２）。
【００３５】
ＡＰサーバ（４０）は電文を受信し（ステップ７１０）、解析する（ステップ７１１）。次いで、ＤＢサーバ（５０）に対してディスクへの読み込み要求（ステップ７１２）、あるいは書き込み要求（ステップ７１３）を行う。
【００３６】
ＤＢサーバ（５０）は、ディスクからの読み出し要求を受信すると、読み出し処理を実行し（ステップ７２０）、その結果をＡＰサーバ（４０）に戻す（ステップ７２１）。また、ディスクへの書き込み要求を受信すると、書き込み処理を実行し（ステップ７２２）、その結果をＡＰサーバ（４０）に戻す（ステップ７２３）。
【００３７】
ＡＰサーバ（４０）はＤＢサーバ（５０）の処理結果を受信すると、書き込み結果をＦＥＰサーバ（３０）に送信する（ステップ７１４）。次いで、ＦＥＰサーバ（３０）は端末に処理結果を戻す（ステップ７０３）。
【００３８】
ここで、チェックポイント（ＣＰ）を定義する。チェックポイント（ＣＰ）はシステム回復時間を短縮するために、処理の任意のステップに設けることができる。これにより、チェックポイントまでに障害が発生した場合には、電文の最初から処理を再実行し、チェックポイント以降で障害が発生した場合には、最新のチェックポイントから再実行するとよい。
【００３９】
例えば、ＦＥＰサーバ（３０）では、電文送信（ステップ７０２）時をチェックポイント（ＣＰ（ＦＥＰ））（７５０）とする。また、ＡＰサーバ（４０）では、ディスクからの読み込み要求（ステップ７１２）、およびディスクへの書き込み要求（ステップ７１３）をチェックポイントとする。なお、ＤＢサーバ（５０）の処理にはチェックポイントを設けない。
【００４０】
図８は、電文タイプを説明する図である。図の例では、電文タイプをＣＰＵの利用率およびメモリの使用量をもとに分類する。電文Ａは、ＣＰＵとメモリの双方の資源を必要とする電文である。電文Ｂは、主にＣＰＵ処理を必要とする電文である。電文Ｃは、主にメモリを必要とする電文である。電文Ｄは、あまりＣＰＵとメモリの資源を必要としない電文である。なお、図８において、○は必要とすることを示し、×はあまり必要としないことを示す。
【００４１】
図９は、負荷管理テーブルの設定手順を説明する図である。負荷管理テーブルには、図４ないし図６に示したように障害が発生していない通常時および障害時のＣＰＵ利用率およびメモリ使用量を格納する。
【００４２】
まず、図９（ａ）を用いて、通常時のＣＰＵ利用率およびメモリ使用量の設定方法について説明する。全ての送信側計算機は、定期的に、電文の開始時あるいは電文の終了時にＣＰＵ利用率およびメモリ使用量を測定する（ステップ９００）。ＣＰＵ利用率は、その前回の測定値との差が所定値（ＴＨ１）以上ならば、他の送信側計算機にＣＰＵ利用率とメモリ使用量を通知する（ステップ９０３）。前回の測定値との差が、所定値（ＴＨ１）未満ならば、ほとんど負荷に変動はなかったと判定して、他の計算機に何も通知しない。
【００４３】
同様に、メモリ使用量は、その前回の測定値との差が所定値（ＴＨ２）以上ならば、他の送信側計算機にメモリ使用量を通知する（ステップ９０３）。前回の測定値との差が、所定値（ＴＨ２）未満ならば、ほとんど負荷に変動はなかったと判定して、他の計算機に何も通知しない。このようにして、送信側計算機はＣＰＵ利用率およびメモリ使用量を負荷管理テーブルに格納することができる。
【００４４】
次に、図９（ｂ）を用いて、障害時のＣＰＵ利用率およびメモリ使用量の設定方法について説明する。全ての送信側計算機は、バックアップのための電文の受信時あるいはバックアップのための電文の送信が終了したことの通知を受信する毎に、ＣＰＵ利用率およびメモリ使用量を予測する。（ステップ９５０）。すなわち、各送信側の計算機は、通常時のＣＰＵ利用率およびメモリ使用量の外に、バックアップしている電文を引き継ぐ際、どの程度ＣＰＵ利用率とメモリ使用量が増加するかを予測して、ＣＰＵ利用率とメモリ使用量を算出する。
【００４５】
ＣＰＵ利用率は、前回の測定値との差が所定値（ＴＨ３）以上ならば、他の送信側計算機にＣＰＵ利用率とメモリ使用量を通知する（ステップ  ９５３）。前回の測定値との差が所定値（ＴＨ３）未満ならば、ほとんど負荷に変動はなかったと判定して、他の計算機に何も通知しない。
【００４６】
同様に、メモリ使用量は、前回の測定値との差が所定値（ＴＨ４）ならば、他の送信側計算機にメモリ使用量を通知する（ステップ９５３）。前回の測定値との差が所定値（ＴＨ４）未満ならば、ほとんど負荷に変動はなかったと判定して、他の計算機に何も通知しない。このようにして、送信側計算機はＣＰＵ利用率およびメモリ使用量を負荷管理テーブルに格納することができる。
【００４７】
図１０は、送信側計算機が待機側計算機を決定する手順を説明する図である。この処理は電文処理開始時に実行する。まず、送信側計算機は負荷管理テーブルを参照し、ＣＰＵ利用率とメモリ使用量を読み出す（ステップ１０００）。次に、電文がどのタイプであるかを解析する（ステップ１００１）。電文タイプがＡの場合（ステップ１００２）はＣＰＵ利用率が低く、メモリ使用量の少ない計算機を選択する（ステップ１００３）。電文タイプがタイプＢの場合（ステップ  １００４）はＣＰＵ利用率が低い計算機を選択する（ステップ１００５）。電文タイプがタイプＣの場合（ステップ１００６）はメモリ使用量の少ない計算機を選択する（ステップ１００７）。
【００４８】
図１１は、送信側計算機と受信側計算機の正常時における処理手順を説明する図である。まず、バックアップ処理を行う送信側計算機（待機側計算機）を選定する（ステップ１１００）。この選定は図１０に示す手順で実行できる。次に、送信側計算機は受信側計算機に電文を送信する（ステップ１１０１）。つぎに、送信側計算機は電文の種別をもとに負荷管理テーブルのＣＰＵ利用率とメモリ使用量を設定する（ステップ１１０２）。このとき、待機の送信側計算機（待機側計算機）にも電文を送信する（ステップ１１０３）。
【００４９】
一方、受信側計算機は前記電文を受信し（ステップ１１２０）、受信した電文の処理を実行し（ステップ１１２１）、この処理が完了すると処理結果を送信側計算機に転送する（ステップ１１２２）。
【００５０】
送信側計算機は、前記処理結果を受信し（ステップ１１０４）、電文処理が完了したことを待機の送信側計算機に通知する（ステップ１１０５）。送信側計算機は、この電文処理の終了に際して負荷管理テーブルのＣＰＵ利用率とメモリ使用量を設定する（ステップ１１０６）。ここで、前記（ステップ１１０２）と（ステップ１１０６）は、図９に示す処理により実行することができる。
【００５１】
図１２は、送信側計算機で障害が発生した場合の処理手順を説明する図である。まず、送信側計算機で障害が発生したとする（ステップ１２００）。待機の送信側計算機と受信側計算機は、高可用化クラスタソフトのａｌｉｖｅメッセージの途絶（ステップ１２０１）をもとに障害を検出する（ステップ１２０２，１２０３）。
【００５２】
これ以降、待機の送信側計算機は、通常時の負荷管理テーブルではなく障害時の負荷管理テーブルを使用する。この負荷管理テーブルには障害時の負荷管理情報を設定する（ステップ１２０４）。次に、待機の送信側計算機は電文の最初あるいは最新のチェックポイントから処理を再開する（ステップ１２０５）。この電文処理が終了すると負荷管理テーブルを再設定する（ステップ１２０６）。
【００５３】
一方、受信側計算機は、チェックポイントデータとして受信していた電文識別子を参照して処理を開始する（ステップ１２２０）。そして、処理結果を送信側の待機計算機に送信する（ステップ１２２１）。なお、（ステップ１２０４）と（ステップ１２０６）の処理は、図９に示す処理により実行できる。
【００５４】
図１３は、送信側計算機の障害回復時の処理手順を説明する図である。まず、送信側計算機で障害から修復したとする（ステップ１３００）。待機の送信側計算機と受信側計算機は、高可用化クラスタソフトのａｌｉｖｅメッセージの再開（ステップ１３０１）により、障害修復を検出する（ステップ１３０２）。そして、これらの計算機間で負荷情報を交換し、負荷管理テーブルを設定する。
【００５５】
障害から回復した送信側計算機は、高可用化クラスタソフトにより、他の送信側計算機から負荷情報を取得し、負荷管理テーブルに通常時と障害時のＣＰＵ利用率とメモリ使用量を設定する（ステップ１３１０）。
【００５６】
一方、他の送信側計算機は、高可用化クラスタソフトにより、他の送信側計算機から負荷情報を取得し、障害から修復された計算機に通常時と障害時のＣＰＵ利用率とメモリ使用量を設定する（ステップ１３３０）。障害から回復すると、ＣＰＵ利用率とメモリ使用量は通常時の値を使用する。なお、（ステップ１３１０）と（ステップ１３３０）は、図９に示す処理により実行することができる。
【００５７】
次に、図１４および図１５を用いて、分散オブジェクトシステムに適用した例を説明する。分散オブジェクトシステムの処理は以下の通りである。クライアントはサーバから所定のサービス（プログラムやオブジェクトの実行により）を受ける場合、まず、クライアントはネーミングサービスを行うサーバに対してオブジェクトの名前解決のための問い合わせを行い、オブジェクトへのリファレンスを受信する。そして、クライアントはリファレンスで示される特定のサーバに対してサービス提供を要求し、当該サーバ上での該当オブジェクトのメソッドの呼び出しにより得られた処理結果をそのサーバから受け取る。このように、サーバ間でメッセージ交換を行いながら、サービスを提供する。
【００５８】
図１４は、分散オブジェクトシステムのシステム構成を説明する図である。このシステムは、クライアント（１４００）、複数台の送信側サーバ処理装置（１４１０）、受信側サーバ処理装置（１４２０）から構成される。
【００５９】
クライアント（１４００）は、クライアントプログラム（１４０１）を所有し、送信側サーバ処理装置（１４１０）に問い合わせや処理要求を行う。
【００６０】
送信側サーバ処理装置（１４１０）は、送信側計算機１（１４１０−１）ないし送信側計算機ｎ（１４１０−ｎ）を備える。送信側サーバ処理装置（１４１０）は、クライアント（１４００）から要求を受信し、これを解析して受信側サーバ処理装置（１４２０）への問い合わせや処理要求を行う。
【００６１】
送信側計算機１（１４１０−１）は、負荷管理テーブル（１４１０−１−１）、名前解決部（１４１０−１−２）、通信制御部（１４１０−１−３）、ディスパッチャ（１４１０−１−４）および監視部（１４１０−１−５）を備える。負荷管理テーブル（１４１０−１−１）は、オブジェクトの割当ての情報を記録する。オブジェクト情報管理テーブル１４１０−１−１）は、他の送信側サーバの負荷状態を保存する。名前解決部（１４１０−１−２）は、オブジェクトの名前解決のための問合せを行う。通信制御部（１４１０−１−３）は、通信装置を介して他のサーバ側処理装置やクライアントとの通信を行う。ディスパッチャ（１４１０−１−４）は、待機の送信側サーバを決定する際、負荷管理テーブルから負荷情報を読み出して、負荷が低い送信側サーバを待機サーバと決定し、この送信側サーバに要求を送信する。また、他のサーバ側処理装置の動作状況を監視する。
【００６２】
他の送信側計算機２（１４１０−２）ないし送信側計算機ｎ（１４１０−ｎ）も、同様に構成される。
【００６３】
受信側サーバ処理装置（１４２０）は、送信側サーバ処理装置（１４１０）からの問い合わせを受信し、要求された処理を行う。受信側サーバ処理装置（１４２０）は、ネーミングサービス部（１４２０−１）、オブジェクト（１４２０−２）、通信制御部（１４２０−３）および監視部（１４２０−４）を備える。
【００６４】
ネーミングサービス部（１４２０−１）は、オブジェクトの名前解決処理を行う。オブジェクト（１４２０−２）は、所定のサービスを実行する。通信制御部（１４２０−３）および監視部（１４２０−４）は、それぞれ送信側サーバ処理装置のものと同じ機能である。
【００６５】
図１５は、処理の詳細を説明する図である。ここでは、名前解決処理を例にして説明する。まず、クライアント（１４００）は、送信側サーバ（１４１０）にサービスを要求する。送信側サーバは、他の送信側サーバに対して、負荷情報を送信する。また、送信側サーバは、常に他の送信側サーバの負荷情報を所有する（ステップ１５０１）。
【００６６】
クライアント（１４００）は、送信側サーバ（１４１０−１）に名前解決を要求する（ステップ１５１０）。送信側サーバ（１４１０−１）は、クライアント（１４００）から名前解決処理を受信すると、負荷の低いサーバを待機の送信側サーバ（１４１０−ｎ）として選択する（ステップ１５０２）。送信側サーバ（１４１０−１）は、名前要求処理を受信側サーバ（１４２０）に送信する（ステップ１５１２）。受信側サーバ（１４２０）はネーミング処理を行い、この結果を送信側サーバ（１４１０−１）に返送する（ステップ１５１４）。
【００６７】
送信側サーバ（１４１０−１）は、待機の送信側サーバ（１４１０−ｎ）を選択し、送信側サーバ（１４１０−１）で障害が発生しても、直ちに引き継ぎ可能とするために、クライアント（１４００）から受信した電文を待機の送信側サーバ（１４１０−ｎ）に送信する（ステップ１５１５）。
【００６８】
送信側サーバ（１４１０−１）は受信側サーバ（１４２０）から処理結果を受信すると、これをクライアント（１４００）に送信する。最後に、送信側サーバ（１４１０−１）はこの要求が終了したことを確認して、これを待機の送信側サーバ（１４１０−ｎ）に通知し、クライアント（１４００）から電文を削除する（ステップ１５１７）。
【００６９】
ところで、送信側サーバ（１４１０−１）で障害が発生すると（ステップ１５３０）、受信側サーバの監視部（１４２０−４）がこれを検出し、受信側サーバ（１４２０）は、処理結果を待機の送信側サーバ（１４１０−ｎ）に送信する（ステップ１５３１）。待機の送信側サーバ（１４１０−ｎ）は、処理結果をクライアント（１４００）に返送する（ステップ１５１６）。なお、クライアントがオブジェクトを要求する場合も同様に、送信側サーバで障害が発生しても、負荷の低い送信側サーバを待機のサーバとして稼動させることにより、処理を継続することができる。
【００７０】
以上説明したように、本実施形態によれば、送信側サーバと受信側サーバから構成されるクラスタシステムにおいて、送信側計算機は他の送信側計算機の負荷状況を監視して、負荷が低い計算機をバックアップ処理を行う待機側計算機とし、送信側計算機はこの待機側計算機にも電文を送信する。そして、送信側計算機で障害が発生すると、受信側計算機はバックアップ処理を行う送信側計算機に電文の処理結果を返送する。バックアップ処理を行う待機の送信側計算機は、これに応答して引継ぎ処理を行う。このため、送信側計算機は、待機側計算機に電文を再度送信する必要がないので、システム回復時間を短縮できる。また、障害が発生しても、電文毎に分割して、常に負荷の最適な計算機にバックアップ処理を実行させることができるので、引継ぎ処理中の負荷が特定の計算機に集中することがなくなる。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態にかかるクラスタシステムを説明する図である。
【図２】３階層クラスタシステムの構成を説明する図である。
【図３】各計算機のシステム構成を説明する図である。
【図４】ＦＥＰサーバの負荷管理テーブルを説明する図である。
【図５】ＡＰサーバの負荷管理テーブルを説明する図である。
【図６】ＤＢサーバの負荷管理テーブルを説明する図である。
【図７】電文処理の詳細を説明する図である。
【図８】電文タイプを説明する図である。
【図９】負荷管理テーブルの設定手順を説明する図である。
【図１０】送信側計算機が待機側計算機を決定する手順を説明する図である。
【図１１】送信側計算機と受信側計算機の正常時における処理手順を説明する図である。
【図１２】送信側計算機で障害が発生した場合の処理手順を説明する図である。
【図１３】送信側計算機の障害回復時の処理手順を説明する図である。
【図１４】分散オブジェクトシステムのシステム構成を説明する図である。
【図１５】図１４に示すシステムの処理の詳細を説明する図である。
【符号の説明】
【００７２】
１０，１４１０  送信側サーバ
２０，１４２０  受信側サーバ
３０  ＦＥＰサーバ
４０  ＡＰサーバ
５０  ＤＢサーバ
３０１  ＣＰＵ
３０２  メモリ
３０３  ＩＯＰ
３１０  ＯＳ
３１１  高可用クラスタソフト
３１２  監視部
３１３  プロセス
３１４  負荷管理テーブル
【図１】
2005301436.tif 000003
【図２】
2005301436.tif 000004
【図３】
2005301436.tif 000005
【図４】
2005301436.tif 000006
【図５】
2005301436.tif 000007
【図６】
2005301436.tif 000008
【図７】
2005301436.tif 000009
【図８】
2005301436.tif 000010
【図９】
2005301436.tif 000011
【図１０】
2005301436.tif 000012
【図１１】
2005301436.tif 000013
【図１２】
2005301436.tif 000014
【図１３】
2005301436.tif 000015
【図１４】
2005301436.tif 000016
【図１５】
2005301436.tif 000017