(57)【要約】【課題】異常が発生した現用系装置の動作を停止できない状態であっても現用系装置から待機系装置への切り替えを行うこと。【解決手段】待機系装置１０２は、現用系装置１０１の異常を検知する。待機系装置１０２は、現用系装置１０１の異常を検知した場合、現用系装置１０１を特定する装置情報１１０を端末装置１０３に送信する。端末装置１０３は、装置情報１１０を受信したことに応じて、現用系装置１０１からのデータを破棄する状態に変更するとともに応答通知１２０を待機系装置１０２に送信する。待機系装置１０２は、端末装置１０３からの応答通知１２０を受信したことに応じて、端末装置１０３からの処理要求に応じた処理を実行する状態に変更する。【選択図】図１
2015011472.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、前記端末装置からの処理要求に応じた処理を実行する現用系装置と、前記現用系装置に対応する待機系装置と、を含む情報処理システムの制御方法であって、
前記待機系装置が、前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信し、
前記端末装置が、前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更するとともに、前記装置情報を受信した旨の応答通知を前記待機系装置に送信し、
前記待機系装置が、前記応答通知を受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する、
処理を実行することを特徴とする制御方法。
【請求項２】
前記現用系装置の異常は、前記現用系装置と前記待機系装置との通信が途絶したことを含むことを特徴とする請求項１に記載の制御方法。
【請求項３】
前記待機系装置が、前記端末装置に対して前記待機系装置が正常に稼働していることを報知するハートビートに前記装置情報を付加して、前記端末装置に前記ハートビートを送信し、
前記端末装置が、前記待機系装置に対して前記端末装置が正常に稼働していることを報知するハートビートに前記応答通知を付加して、前記待機系装置に前記ハートビートを送信することを特徴とする請求項１または２に記載の制御方法。
【請求項４】
前記端末装置が複数存在する場合、前記待機系装置が、全ての端末装置から前記応答通知を受信したことに応じて、または、前記装置情報を送信してから一定時間経過後に、前記端末装置からの処理要求に応じた処理を実行する状態に変更することを特徴とする請求項１〜３のいずれか一つに記載の制御方法。
【請求項５】
前記待機系装置が、前記応答通知を受信しなかった端末装置、または、前記待機系装置に新規接続された端末装置のいずれかの端末装置から通信路の確立要求を受信したことに応じて、前記いずれかの端末装置に前記装置情報を送信することを特徴とする請求項４に記載の制御方法。
【請求項６】
端末装置からの処理要求に応じた処理を実行する現用系装置に対応する待機系装置に、
前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信し、
送信した前記装置情報を受信した旨の応答通知を前記端末装置から受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する、
処理を実行させることを特徴とする制御プログラム。
【請求項７】
端末装置からの処理要求に応じた処理を実行する現用系装置に対応する待機系装置から前記現用系装置を特定する装置情報を受信し、
前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更し、
前記現用系装置からのデータを破棄する状態に変更した場合、前記装置情報を受信した旨の応答通知を前記待機系装置に送信する、
処理を前記端末装置に実行させることを特徴とする制御プログラム。
【請求項８】
端末装置と、前記端末装置からの処理要求に応じた処理を実行する現用系装置と、前記現用系装置に対応する待機系装置と、を含む情報処理システムであって、
前記待機系装置は、前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信する第１送信部と、前記第１送信部によって送信された前記装置情報を受信した旨の応答通知を前記端末装置から受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する第１変更部と、を有し、
前記端末装置は、前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更する第２変更部と、前記第２変更部によって前記現用系装置からのデータを破棄する状態に変更された場合、前記装置情報を受信した旨の応答通知を前記待機系装置に送信する第２送信部と、を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御方法、制御プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
ミッションクリティカルシステムは、高い信頼性・耐障害性・可用性が求められる情報処理システムであり、２４時間３６５日稼働し続けることが要求される。ミッションクリティカルシステムでは、例えば、クラスタシステムを用いた構成が採用され、サーバ等の異常発生時にフェイルオーバーが行われる。フェイルオーバーとは、例えば、現用系サーバに異常が発生した場合に、待機系サーバが、現用系サーバに代わって処理やデータを引き継ぐ機能である。
【０００３】
また、クラスタシステムでは、データ保証および業務サービスの継続性を達成するために、いかなる状況においても１台の現用系サーバのみで処理を行うことが要求され、２台以上のサーバを現用系サーバとして動作させないための仕組みが求められる。以下、２台以上のサーバが現用系サーバとして動作することを「２重アクティブ」と表記する場合がある。
【０００４】
従来、２重アクティブを防止する技術として、電源制御装置を使用したクラスタシステムがある。電源制御装置とは、サーバの起動や停止を行う専用の機能を持つ装置である。電源制御装置を使用したクラスタシステムでは、現用系サーバの切替時に、切替先サーバが、電源制御装置を使って切替元サーバの電源を停止する。そして、切替元サーバの電源停止を検知した切替先サーバが現用系に切り替わることで、２重アクティブを防止しつつ、フェイルオーバーを実行する。なお、切替先サーバは、フェイルオーバー実施後に現用系サーバとして動作するサーバである。また、切替元サーバは、フェイルオーバー実施前に現用系サーバとして動作していたサーバである。
【０００５】
関連する先行技術としては、例えば、障害ノードが、サービスプロセッサに障害の発生を通知したり、同一のパーティションの他ノードに障害情報を伝達することにより、障害処理を行う技術がある。また、待機系として動作しているサーバが、運用系として動作しているサーバにおける異常を検出すると、異常サーバに接続された通信機器の通信遮断を要求することにより、ネットワークから異常サーバを切り離す技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−６２５３５号公報
【特許文献２】特開２００７−２３３５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術によれば、現用系サーバに異常が発生した際に、クラスタシステムで２台以上のサーバが現用系サーバとして動作することを防止できず、現用系サーバから待機系サーバへの切り替えを行うことができない場合がある。
【０００８】
例えば、異常が発生した現用系サーバ（異常サーバ）の電源制御装置、または、電源制御装置に至るネットワークに異常が発生すると、異常サーバの電源を停止させることができず、システムから異常サーバを切り離すことができない場合がある。より具体的には、例えば、正常なサーバから異常サーバに対して、システムから切り離す指示を送信しても、指示が異常サーバに届かない、あるいは、指示を受信した異常サーバが正常に動作できず、システムから異常サーバを切り離すことができない場合がある。
【０００９】
また、異常サーバ、または、異常サーバに至るネットワークに異常が発生すると、異常サーバ自身が異常検知、異常通知等を行うことができず、システムから異常サーバを切り離すことができない場合がある。また、異常サーバに接続されたネットワーク機器、または、ネットワーク機器に至るネットワークに異常が発生すると、異常サーバ自身が異常検知、異常通知等を行うことができず、システムから異常サーバを切り離すことができない場合がある。より具体的には、例えば、正常なサーバから異常サーバに対して、システムから切り離す指示を送信しても、指示が異常サーバに届かない、あるいは、指示を受信した異常サーバが正常に動作できず、システムから異常サーバを切り離すことができない場合がある。
【００１０】
ここで、クラスタシステムのサーバの電源制御装置や、電源制御装置に至るネットワークを冗長化することで、電源制御装置や、電源制御装置に至るネットワークの異常があった場合にも、システムから異常サーバを切り離すことを可能とすることが考えられる。しかし、電源制御装置や、電源制御装置に至るネットワークを冗長化された待機系に切り替える際には、切り替え処理に時間を要するため、フェイルオーバーを迅速に行うことができないという問題が生じてしまう。
【００１１】
一つの側面では、本発明は、異常が発生した現用系装置の動作を停止できない状態であっても現用系装置から待機系装置への切り替えを行うことができる制御方法、制御プログラムおよび情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一側面によれば、端末装置と、前記端末装置からの処理要求に応じた処理を実行する現用系装置と、前記現用系装置に対応する待機系装置と、を含む情報処理システムにおいて、前記待機系装置が、前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信し、前記端末装置が、前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更するとともに、前記装置情報を受信した旨の応答通知を前記待機系装置に送信し、前記待機系装置が、前記応答通知を受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する制御方法、制御プログラムおよび情報処理システムが提案される。
【発明の効果】
【００１３】
本発明の一態様によれば、異常が発生した現用系装置の動作を停止できない状態であっても現用系装置から待機系装置への切り替えを行うことができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施の形態１にかかる制御方法の一実施例を示す説明図である。
【図２】図２は、情報処理システム２００のシステム構成例を示す説明図である。
【図３】図３は、コンピュータのハードウェア構成例を示すブロック図である。
【図４】図４は、ハートビートＨＢの電文形式の一例を示す説明図（その１）である。
【図５】図５は、ハートビートＨＢの具体例を示す説明図（その１）である。
【図６】図６は、ハートビートＨＢの具体例を示す説明図（その２）である。
【図７】図７は、ハートビートＨＢの具体例を示す説明図（その３）である。
【図８】図８は、ハートビートＨＢの具体例を示す説明図（その４）である。
【図９】図９は、隔離状態管理テーブル９００の記憶内容の一例を示す説明図である。
【図１０】図１０は、隔離対象サーバリスト１０００の記憶内容の一例を示す説明図である。
【図１１】図１１は、サーバ＃ｉの機能的構成例を示すブロック図である。
【図１２】図１２は、クライアント装置＄ｊの機能的構成例を示すブロック図である。
【図１３】図１３は、フェイルオーバー実施時の動作例を示す説明図（その１）である。
【図１４】図１４は、フェイルオーバー実施時の動作例を示す説明図（その２）である。
【図１５】図１５は、フェイルオーバー実施時の動作例を示す説明図（その３）である。
【図１６】図１６は、待機系サーバの第１切替処理手順の一例を示すフローチャートである。
【図１７】図１７は、待機系サーバの隔離処理手順の一例を示すフローチャート（その１）である。
【図１８】図１８は、待機系サーバの隔離処理手順の一例を示すフローチャート（その２）である。
【図１９】図１９は、待機系サーバの第２切替処理手順の一例を示すフローチャートである。
【図２０】図２０は、クライアント装置＄ｊのハートビート受信処理手順の一例を示すフローチャート（その１）である。
【図２１】図２１は、クライアント装置＄ｊのハートビート送信処理手順の一例を示すフローチャート（その１）である。
【図２２】図２２は、クライアント装置＄ｊのデータ処理手順の一例を示すフローチャートである。
【図２３】図２３は、サーバ＃ｉのハートビート受信処理手順の一例を示すフローチャートである。
【図２４】図２４は、現用系サーバの組込処理手順の一例を示すフローチャートである。
【図２５】図２５は、現用系サーバの隔離解除処理手順の一例を示すフローチャート（その１）である。
【図２６】図２６は、現用系サーバの隔離解除処理手順の一例を示すフローチャート（その２）である。
【図２７】図２７は、組込対象サーバの組込処理手順の一例を示すフローチャートである。
【図２８】図２８は、クライアント装置＄ｊのハートビート受信処理手順の一例を示すフローチャート（その２）である。
【図２９】図２９は、クライアント装置＄ｊのハートビート送信処理手順の一例を示すフローチャート（その２）である。
【図３０】図３０は、隔離対象サーバ数と隔離対象サーバの組み合わせを示す説明図である。
【図３１】図３１は、ハートビートＨＢの電文形式の一例を示す説明図（その２）である。
【図３２】図３２は、ハートビートＨＢの具体例を示す説明図（その５）である。
【図３３】図３３は、実施の形態２にかかるサーバ＃ｉの隔離処理手順の一例を示すフローチャート（その１）である。
【図３４】図３４は、実施の形態２にかかるサーバ＃ｉの隔離処理手順の一例を示すフローチャート（その２）である。
【図３５】図３５は、実施の形態２にかかるクライアント装置＄ｊのハートビート受信処理手順の一例を示すフローチャートである。
【図３６】図３６は、実施の形態２にかかるクライアント装置＄ｊのハートビート送信処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に図面を参照して、本発明にかかる制御方法、制御プログラムおよび情報処理システムの実施の形態を詳細に説明する。
【００１６】
（実施の形態１）
図１は、実施の形態１にかかる制御方法の一実施例を示す説明図である。図１において、クラスタシステム１００は、現用系装置１０１と、待機系装置１０２と、を含む。現用系装置１０１は、端末装置１０３からの処理要求に応じた処理を実行する現用系のコンピュータである。待機系装置１０２は、現用系装置１０１に対応する待機系のコンピュータであり、現用系装置１０１の代わりに端末装置１０３からの処理要求に応じた処理を実行するために待機する。
【００１７】
端末装置１０３は、クラスタシステム１００に対して処理要求を行うコンピュータである。なお、ここでは待機系のコンピュータが１台の場合を例に挙げて説明するが、クラスタシステム１００は、複数台の待機系のコンピュータを含む構成であってもよい。また、ここでは端末装置１０３が３台の場合を例に挙げて説明するが、１台以上であれば何台の端末装置１０３がクラスタシステム１００に接続されていてもよい。
【００１８】
ここで、高い信頼性・耐障害性・可用性が求められる情報処理システムでは、クラスタシステムを用いた構成が採用され、サーバ等の異常発生時にフェイルオーバーが行われる。フェイルオーバーとは、現用系のコンピュータ（例えば、サーバ）に異常が発生した場合に、待機系のコンピュータが、現用系のコンピュータに代わって処理やデータを引き継ぐ機能である。
【００１９】
以下の説明では、フェイルオーバーの実施前に現用系サーバとして動作していたサーバを「切替元サーバ」と表記し、フェイルオーバーの実施後に現用系サーバとして動作するサーバを「切替先サーバ」と表記する場合がある。
【００２０】
また、クラスタシステムにおいて、あるサーバに異常が発生した場合に、異常サーバが正常なサーバに影響を及ぼさないようにするための解決策として、異常サーバとの通信を遮断するパケットフィルタリング技術がある。パケットフィルタリング技術をクラスタシステムに適用すると、例えば、フェイルオーバーの実施時に、クライアントにおいて、切替元サーバ（異常サーバ）との通信を閉塞することにより、異常サーバが正常なサーバに影響を及ぼさないようにすることができる。
【００２１】
しかしながら、クライアントからサーバにアクセスする際に仮想ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを使用する場合、クライアントは、送信先アドレスから切替元サーバと切替先サーバを判別できない。仮想ＩＰアドレスとは、クライアントからサーバにアクセスする際に使用される、サーバ群に割り振られた仮想的なＩＰアドレスである。複数のサーバで構成されるクラスタシステムにおいては、フェイルオーバー実施時の影響範囲を局所化するために、クライアントから仮想的なＩＰアドレスを使ってサーバ群にアクセスし、サーバ群の中で現用系サーバだけが処理を受け付ける方式が採用される。仮想ＩＰアドレスとしては、例えば、マルチキャストアドレスがある。
【００２２】
すなわち、クライアントは、全サーバが同一のＩＰアドレスと見えるため、要求電文送信時に、送信先ＩＰアドレスによるパケットフィルタリングを行うことができない。このため、クライアント側では、サーバからの応答電文受信時にしか通信閉塞を行うことができず、異常サーバがクライアントからの要求電文を受信してしまう場合がある。
【００２３】
これでは、異常サーバが完全に動作を停止しておらず、半死状態や異常動作している場合に、異常サーバが正常なサーバに及ぼす影響を抑えることは難しい。また、異常サーバが無駄な応答電文を送信し続けると、ネットワークにかかる負荷の増大など、正常に動作しているサーバからの応答に影響を与えてしまう。
【００２４】
そこで、実施の形態１では、現用系装置１０１の異常発生時に、待機系装置１０２が、現用系装置１０１の隔離要求を端末装置１０３に送信して現用系装置１０１を隔離させ、端末装置１０３からの隔離応答に応じて、待機系へのサーバ切替を行う。これにより、現用系装置１０１が半死状態や異常動作している場合であっても２重アクティブを防いでフェイルオーバーを実現する。以下、実施の形態１にかかるクラスタシステム１００の制御処理例について説明する。
【００２５】
（１）待機系装置１０２は、現用系装置１０１の異常を検知する。具体的には、例えば、待機系装置１０２は、現用系装置１０１からの通信が途絶した場合に、現用系装置１０１の異常を検知することにしてもよい。
【００２６】
（２）待機系装置１０２は、現用系装置１０１の異常を検知した場合、現用系装置１０１を特定する装置情報１１０を端末装置１０３に送信する。ここで、装置情報１１０は、例えば、異常を検知した現用系装置１０１との通信の閉塞を指示するものである。装置情報１１０には、例えば、現用系装置１０１を一意に特定する識別情報、例えば、現用系装置１０１に割り振られたＩＰアドレスが含まれている。
【００２７】
（３）端末装置１０３は、装置情報１１０を受信したことに応じて、現用系装置１０１からのデータを破棄する状態に変更するとともに応答通知１２０を待機系装置１０２に送信する。ここで、応答通知１２０は、装置情報１１０を受信した旨の通知であり、例えば、現用系装置１０１からのデータを破棄する状態に変更したことを示す通知である。
【００２８】
具体的には、例えば、端末装置１０３は、装置情報１１０に含まれる現用系装置１０１のＩＰアドレスを、破棄対象データの送信元アドレスに設定する。これ以降、端末装置１０３は、例えば、破棄対象データの送信元アドレスに設定したＩＰアドレスを送信元アドレスとするデータを受信した場合、受信したデータを破棄する。
【００２９】
（４）待機系装置１０２は、端末装置１０３からの応答通知１２０を受信したことに応じて、現用系装置１０１の代わりに端末装置１０３からの処理要求に応じた処理を実行する状態に変更する。すなわち、待機系装置１０２が、異常を検知した現用系装置１０１の代わりに、新たな現用系のコンピュータとなり、端末装置１０３からの処理要求に応じた処理を実行する。
【００３０】
このように、クラスタシステム１００によれば、異常が発生した現用系装置１０１が半死状態で正常に動作しない状況においても、現用系装置１０１を切り離すことができ、フェイルオーバーを実現することができる。また、現用系装置１０１の電源ＯＦＦを前提としないため、例えば、現用系装置１０１の電源制御装置が正常に動作しない状況においても、現用系装置１０１を切り離すことができる。
【００３１】
また、端末装置１０３から現用系装置１０１にアクセスする際に仮想ＩＰアドレスを使用する場合でも、端末装置１０３側で現用系装置１０１との通信を閉塞することができる。また、現用系装置１０１に電源制御装置が存在しない環境においても、現用系装置１０１を切り離すことができる。
【００３２】
（情報処理システム２００のシステム構成例）
つぎに、実施の形態１にかかる情報処理システム２００のシステム構成例について説明する。
【００３３】
図２は、情報処理システム２００のシステム構成例を示す説明図である。図２において、情報処理システム２００は、サーバ＃１〜＃３と、クライアント装置＄１〜＄４と、を含む構成である。情報処理システム２００において、サーバ＃１〜＃３は、ネットワーク２２０を介して接続される。また、サーバ＃１〜＃３およびクライアント装置＄１〜＄４は、ネットワーク２３０を介して接続される。
【００３４】
ネットワーク２２０，２３０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。より具体的には、ネットワーク２２０は、例えば、フェイルオーバーやサーバの死活監視などを行うためにサーバ間を接続するクラスタ制御用の管理ＬＡＮである。
【００３５】
また、ネットワーク２３０は、例えば、処理要求や処理結果を通信するためにサーバ／クライアント装置間およびサーバ間を接続する外部通信用の業務ＬＡＮである。ネットワーク２３０を介して接続されるサーバには、異なるクラスタシステムのサーバを含む。すなわち、図２では、情報処理システム２００に含まれるクラスタシステムとして、クラスタシステム２１０のみ表示したが、クラスタシステム２１０とは異なるクラスタシステムが含まれていてもよい。
【００３６】
ここで、サーバ＃１〜＃３は、クラスタシステム２１０を構成するサーバ群である。サーバ＃１は、クライアント装置＄１〜＄４からの処理要求に応じた処理を実行する現用系サーバであり、図１に示した現用系装置１０１に相当する。また、サーバ＃２，＃３は、現用系サーバの代わりにクライアント装置＄１〜＄４からの処理要求に応じた処理を実行するために待機する待機系サーバであり、図１に示した待機系装置１０２に相当する。
【００３７】
サーバ＃１〜＃３は、電源制御装置＃１〜＃３と、クラスタ制御部＃１〜＃３と、通信制御部＃１〜＃３と、アプリケーションプログラムＡと、を有する。電源制御装置＃１〜＃３は、サーバ＃１〜＃３の起動・停止を制御するコンピュータである。例えば、電源制御装置＃１〜＃３は、フェイルオーバーにより現用系／待機系の切り替えを行う際に現用系サーバの停止を行う。
【００３８】
クラスタ制御部＃１〜＃３は、クラスタシステム２１０を制御する機能を有する。例えば、クラスタ制御部＃１〜＃３は、管理ＬＡＮを使用して、フェイルオーバーの指示やサーバの死活監視などを行う。通信制御部＃１〜＃３は、サーバ／クライアント装置間およびサーバ間の通信を制御する機能を有する。例えば、通信制御部＃１〜＃３は、業務ＬＡＮを使用して、アプリケーションプログラムＡからの業務処理で発生する通信を制御する。アプリケーションプログラムＡは、業務サービスを実現するために使用されるプログラムである。アプリケーションプログラムＡは、例えば、サーバ＃１〜＃３およびクライアント装置＄１〜＄４に配置することができる。
【００３９】
クライアント装置＄１〜＄４は、通信制御部＄１〜＄４と、アプリケーションプログラムＡと、を有する。通信制御部＄１〜＄４は、サーバ／クライアント装置間の通信を制御する機能を有する。例えば、通信制御部＄１〜＄４は、業務ＬＡＮを使用して、アプリケーションプログラムＡからの業務処理で発生する通信を制御する。
【００４０】
また、情報処理システム２００において、クライアント装置＄１〜＄４は、サーバ＃１〜＃３に割り振られた仮想ＩＰアドレスを用いて処理要求を送信する。このため、クライアント装置＄１〜＄４からの処理要求は、サーバ＃１〜＃３に送信される。そして、各サーバ＃１〜＃３は、自身が現用系サーバであるか否かを判断し、自身が現用系サーバである場合に、クライアント装置＄１〜＄４からの処理要求に応じた処理を実行する。
【００４１】
なお、各サーバ＃１〜＃３は、例えば、仮想マシンであってもよい。仮想マシンとは、物理マシンのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。仮想マシンの実体は、例えば、プログラムやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などのソフトウェア、ソフトウェアに与えられる変数、およびソフトウェアを実行させるためのハードウェア資源を指定する情報を含むものである。
【００４２】
なお、以下の説明では、サーバ＃１〜＃３のうちの任意のサーバを「サーバ＃ｉ」と表記する場合がある（ｉ＝１，２，３）。また、クライアント装置＄１〜＄４のうちの任意のクライアント装置を「クライアント装置＄ｊ」と表記する場合がある（ｊ＝１，２，３，４）。
【００４３】
（コンピュータのハードウェア構成）
つぎに、図２に示したサーバ＃ｉおよびクライアント装置＄ｊ（ここでは、単に「コンピュータ」と称する）のハードウェア構成例について説明する。
【００４４】
図３は、コンピュータのハードウェア構成例を示すブロック図である。図３において、コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４５】
ここで、ＣＰＵ３０１は、コンピュータの全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４６】
Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２２０，２３０に接続され、ネットワーク２２０，２３０を介して他のコンピュータに接続される。そして、Ｉ／Ｆ３０３は、ネットワーク２２０，２３０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を採用することができる。
【００４７】
磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００４８】
なお、コンピュータは、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、図２に示した電源制御装置＃１〜＃３についても、上述したコンピュータと同様のハードウェア構成例により実現することができる。
【００４９】
（ハートビートＨＢの電文形式）
つぎに、実施の形態１にかかるハートビートＨＢの電文形式について説明する。ハートビートＨＢとは、ネットワーク上でコンピュータやネットワーク機器が、自身が正常に稼働していることを外部に知らせるために送る信号である。ハートビートＨＢは、例えば、業務ＬＡＮを用いて、サーバ／クライアント装置間や異なるクラスタシステムのサーバ間で送受信される。また、ハートビートＨＢの送信間隔は、例えば、１〜５秒程度である。
【００５０】
以下の説明では、異常が発生した異常サーバとの通信を閉塞し、異常サーバが他の正常なサーバに影響を与えないようにすることを「隔離」と表記する場合がある。また、隔離の対象となるサーバを「隔離対象サーバ」と表記し、隔離解除の対象となるサーバを「隔離解除対象サーバ」と表記する場合がある。
【００５１】
図４は、ハートビートＨＢの電文形式の一例を示す説明図（その１）である。図４において、ハートビートＨＢは、ハートビート情報４０１と、隔離指示種別情報４０２と、を含む。ハートビート情報４０１は、自身が正常に稼働していることを示す情報であり、例えば、送信元のコンピュータ（サーバ＃ｉ、クライアント装置＄ｊ）を識別するノード番号やＩＰアドレスを含む。
【００５２】
隔離指示種別情報４０２は、ハートビートＨＢに隔離情報Ｄが付加されているか否かを示す情報である。隔離情報Ｄは、隔離対象サーバまたは隔離解除対象サーバを識別する情報である。隔離情報Ｄの具体例については、図５〜図８を用いて後述する。隔離指示種別情報４０２には、隔離指示種別「０」〜「４」のいずれかの隔離指示種別が設定される。
【００５３】
ここで、隔離指示種別「０」は、ハートビートＨＢに隔離情報Ｄが付加されていないことを示す。隔離指示種別「１」は、ハートビートＨＢに隔離情報Ｄが付加されていることを示し、隔離対象サーバの隔離要求を示す。隔離指示種別「２」は、ハートビートＨＢに隔離情報Ｄが付加されていることを示し、隔離要求に対する隔離応答を示す。
【００５４】
隔離指示種別「３」は、ハートビートＨＢに隔離情報Ｄが付加されていることを示し、隔離解除対象サーバの隔離解除要求を示す。隔離指示種別「４」は、ハートビートＨＢに隔離情報Ｄが付加されていることを示し、隔離解除要求に対する隔離解除応答を示す。
【００５５】
（ハートビートＨＢの具体例）
ここで、図５〜図８を用いて、ハートビートＨＢの具体例について説明する。
【００５６】
図５は、ハートビートＨＢの具体例を示す説明図（その１）である。図５において、ハートビートＨＢ１は、サーバ＃ｉが正常に稼働していることを報知する信号であり、ハートビート情報４０１と、隔離指示種別情報４０２と、隔離情報Ｄ１と、を含む。隔離指示種別情報４０２には、隔離対象サーバの隔離要求を示す隔離指示種別「１」が設定されている。隔離情報Ｄ１は、隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスを含む。
【００５７】
具体的には、図５中（５−１）に示すハートビートＨＢ１は、隔離対象サーバのサーバ数が「１」の場合の例である。この場合、隔離情報Ｄ１には、隔離対象サーバのサーバ数「１」と隔離対象サーバ１のＩＰアドレスが設定される。また、図５中（５−２）に示すハートビートＨＢ１は、隔離対象サーバのサーバ数が「２」の場合の例である。この場合、隔離情報Ｄ１には、隔離対象サーバのサーバ数「２」と隔離対象サーバ１，２のＩＰアドレスが設定される。
【００５８】
図６は、ハートビートＨＢの具体例を示す説明図（その２）である。図６において、ハートビートＨＢ２は、クライアント装置＄ｊが正常に稼働していることを報知する信号であり、ハートビート情報４０１と、隔離指示種別情報４０２と、隔離情報Ｄ２と、を含む。隔離指示種別情報４０２には、隔離要求に対する隔離応答を示す隔離指示種別「２」が設定されている。隔離情報Ｄ２は、クライアント装置＄ｊにおいて隔離済みの隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスを含む。
【００５９】
ここで、図６中（６−１）に示すハートビートＨＢ２は、隔離対象サーバのサーバ数が「１」の場合の例である。この場合、隔離情報Ｄ２には、隔離対象サーバのサーバ数「１」と隔離対象サーバ１のＩＰアドレスが設定される。また、図６中（６−２）に示すハートビートＨＢ２は、隔離対象サーバのサーバ数が「２」の場合の例である。この場合、隔離情報Ｄ２には、隔離対象サーバのサーバ数「２」と隔離対象サーバ１，２のＩＰアドレスが設定される。
【００６０】
図７は、ハートビートＨＢの具体例を示す説明図（その３）である。図７において、ハートビートＨＢ３は、サーバ＃ｉが正常に稼働していることを報知する信号であり、ハートビート情報４０１と、隔離指示種別情報４０２と、隔離情報Ｄ３と、を含む。隔離指示種別情報４０２には、隔離解除対象サーバの隔離解除要求を示す隔離指示種別「３」が設定されている。隔離情報Ｄ３は、隔離解除対象サーバのサーバ数と隔離解除対象サーバのＩＰアドレスを含む。
【００６１】
具体的には、ハートビートＨＢ３は、隔離解除対象サーバのサーバ数が「１」の場合の例である。この場合、隔離情報Ｄ３には、隔離解除対象サーバのサーバ数「１」と隔離解除対象サーバ１のＩＰアドレスが設定される。
【００６２】
図８は、ハートビートＨＢの具体例を示す説明図（その４）である。図８において、ハートビートＨＢ４は、クライアント装置＄ｊが正常に稼働していることを報知する信号であり、ハートビート情報４０１と、隔離指示種別情報４０２と、隔離情報Ｄ４と、を含む。隔離指示種別情報４０２には、隔離解除要求に対する隔離解除応答を示す隔離指示種別「４」が設定されている。隔離情報Ｄ４は、クライアント装置＄ｊにおいて隔離解除済みサーバのサーバ数と隔離解除済みサーバのＩＰアドレスを含む。
【００６３】
具体的には、ハートビートＨＢ４は、隔離解除済みサーバのサーバ数が「１」の場合の例である。この場合、隔離情報Ｄ４には、隔離解除済みサーバのサーバ数「１」と隔離解除済みサーバ１のＩＰアドレスが設定される。
【００６４】
（隔離状態管理テーブル９００の記憶内容）
つぎに、サーバ＃ｉが用いる隔離状態管理テーブル９００の記憶内容について説明する。隔離状態管理テーブル９００は、例えば、図３に示したサーバ＃ｉのメモリ３０２により実現される。
【００６５】
図９は、隔離状態管理テーブル９００の記憶内容の一例を示す説明図である。図９において、隔離状態管理テーブル９００は、クライアントアドレスおよび完了状態のフィールドを有し、各フィールドに情報を設定することで、隔離状態管理情報９００−１〜９００−４をレコードとして記憶する。
【００６６】
ここで、クライアントアドレスは、サーバ＃ｉに接続中のクライアント装置＄ｊのＩＰアドレスである。完了状態は、クライアント装置＄ｊにおける、隔離対象サーバに対する隔離処理または隔離解除対象サーバに対する隔離解除処理の完了状態を示す。完了状態「０」は、隔離処理／隔離解除処理が完了していない状態を示す。完了状態「１」は、隔離処理／隔離解除処理が完了または不要である状態を示す。
【００６７】
例えば、隔離状態管理情報９００−１は、ＩＰアドレス「ＩＰ＿ＡＤＤＲＥＳＳ−１」のクライアント装置＄ｊの完了状態が「０」であることを示しており、クライアント装置＄ｊにおける隔離処理／隔離解除処理が完了していないことを示す。
【００６８】
なお、以下の説明では、クライアント装置＄１のＩＰアドレスを「ＩＰ＿ＡＤＤＲＥＳＳ−１」とし、クライアント装置＄２のＩＰアドレスを「ＩＰ＿ＡＤＤＲＥＳＳ−２」とする。また、クライアント装置＄３のＩＰアドレスを「ＩＰ＿ＡＤＤＲＥＳＳ−３」とし、クライアント装置＄４のＩＰアドレスを「ＩＰ＿ＡＤＤＲＥＳＳ−４」とする。
【００６９】
（隔離対象サーバリスト１０００の記憶内容）
つぎに、サーバ＃ｉおよびクライアント装置＄ｊが用いる隔離対象サーバリスト１０００の記憶内容について説明する。隔離対象サーバリスト１０００は、例えば、図３に示したサーバ＃ｉおよびクライアント装置＄ｊのメモリ３０２により実現される。
【００７０】
図１０は、隔離対象サーバリスト１０００の記憶内容の一例を示す説明図である。図１０において、隔離対象サーバリスト１０００は、隔離対象サーバのＩＰアドレスを有する。ここでは、隔離対象サーバのＩＰアドレス「ＩＰ＿ＡＤＤＲＥＳＳ−１０」が設定されている。
【００７１】
なお、クライアント装置＄ｊの隔離対象サーバリスト１０００は、例えば、クライアント装置＄ｊの起動時に作成され、クライアント装置＄ｊの停止時に削除される。
【００７２】
（サーバ＃ｉの機能的構成例）
図１１は、サーバ＃ｉの機能的構成例を示すブロック図である。図１１において、サーバ＃ｉは、検知部１１０１と、生成部１１０２と、送信部１１０３と、受信部１１０４と、判断部１１０５と、切替部１１０６と、受付部１１０７と、組込部１１０８と、を含む構成である。各機能部は、具体的には、例えば、図３に示したサーバ＃ｉのメモリ３０２、磁気ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、磁気ディスク３０５などの記憶装置に記憶される。
【００７３】
検知部１１０１は、現用系サーバ＃ｋの異常を検知する機能を有する（ｋ≠ｉ、ｋ＝１，２，…）。図２の例では、現用系サーバ＃ｋは、サーバ＃１である（ｋ＝１）。具体的には、例えば、検知部１１０１は、管理ＬＡＮを用いた現用系サーバ＃ｋとの通信途絶を検知することにより、現用系サーバ＃ｋの異常を検知することにしてもよい。
【００７４】
また、現用系サーバ＃ｋの保守点検等を行うために、情報処理システム２００の管理者等が現用系サーバ＃ｋの動作を意図的に停止させる場合がある。このような場合、検知部１１０１は、例えば、管理者が使用する外部のコンピュータ（不図示）からの操作入力により、現用系サーバ＃ｋの異常を検知することにしてもよい。
【００７５】
なお、検知結果は、例えば、図１０に示した隔離対象サーバリスト１０００に記憶される。具体的には、例えば、異常が検知された現用系サーバ＃ｋのＩＰアドレスが、隔離対象サーバのＩＰアドレスとして隔離対象サーバリスト１０００に登録される。ただし、異常が検知された現用系サーバ＃ｋの隔離処理が完了した場合に、現用系サーバ＃ｋのＩＰアドレスが隔離対象サーバリスト１０００に登録されることにしてもよい。
【００７６】
また、サーバ＃ｉは、現用系サーバ＃ｋの異常を検知した場合、クラスタシステム２１０を構成するサーバ＃１〜＃３のうちの異常を検知した現用系サーバ＃ｋを除くサーバ間で意識合わせを行って、サーバ間で現用系サーバ＃ｋの異常を共有することにしてもよい。
【００７７】
生成部１１０２は、隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスとを含む隔離情報Ｄ１を生成する機能を有する。具体的には、例えば、生成部１１０２は、検知部１１０１によって現用系サーバ＃ｋの異常が検知された場合、隔離対象サーバのＩＰアドレスとして、現用系サーバ＃ｋのＩＰアドレスを設定した隔離情報Ｄ１を生成する。
【００７８】
この際、隔離対象サーバリスト１０００に現用系サーバ＃ｋ以外の隔離対象サーバのＩＰアドレスが登録されている場合がある。この場合、生成部１１０２は、隔離対象サーバのＩＰアドレスとして、さらに、隔離対象サーバリスト１０００に登録されているＩＰアドレスを設定した隔離情報Ｄ１を生成する。
【００７９】
送信部１１０３は、生成部１１０２によって生成された隔離情報Ｄ１をクライアント装置＄ｊに送信する機能を有する。具体的には、例えば、送信部１１０３は、業務ＬＡＮを用いて、隔離指示種別「１」を設定するとともに隔離情報Ｄ１を付加したハートビートＨＢ１（例えば、図５参照）を接続中の全てのクライアント装置＄１〜＄４に送信する。
【００８０】
また、送信部１１０３は、検知部１１０１によって現用系サーバ＃ｋの異常が検知されたことに応じて、現用系サーバ＃ｋの電源を制御する電源制御装置＃ｋに電源停止指示を送信する機能を有する。ここで、電源停止指示は、現用系サーバ＃ｋの電源を停止するよう指示するものである。具体的には、例えば、送信部１１０３は、管理ＬＡＮを用いて、現用系サーバ＃ｋの電源制御装置＃ｋに電源停止指示を送信する。
【００８１】
受信部１１０４は、クライアント装置＄ｊにおいて隔離済みの隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスとを含む隔離情報Ｄ２をクライアント装置＄ｊから受信する機能を有する。具体的には、例えば、受信部１１０４は、業務ＬＡＮを用いて、隔離指示種別「２」が設定され、かつ、隔離情報Ｄ２が付加されたハートビートＨＢ２（例えば、図６参照）をクライアント装置＄ｊから受信する。
【００８２】
なお、サーバ＃ｉは、クライアント装置＄ｊから受信した隔離情報Ｄ２（ハートビートＨＢ２）に自サーバのＩＰアドレスが含まれている場合、接続中の全てのクライアント装置＄１〜＄４との通信を切断することにしてもよい。これにより、サーバ＃ｉは、異常が発生している自分自身を隔離することができる。
【００８３】
また、受信部１１０４は、現用系サーバ＃ｋの電源制御装置＃ｋから電源停止応答を受信する機能を有する。ここで、電源停止応答は、サーバ＃ｉからの電源停止指示に応じて現用系サーバ＃ｋの電源を停止したことを示すものである。具体的には、例えば、受信部１１０４は、管理ＬＡＮを用いて、現用系サーバ＃ｋの電源制御装置＃ｋから電源停止応答を受信する。
【００８４】
判断部１１０５は、クライアント装置＄ｊにおいて隔離対象サーバの隔離処理が完了したか否かを判断する機能を有する。具体的には、例えば、判断部１１０５は、クライアント装置＄ｊからハートビートＨＢ２が受信された場合に、クライアント装置＄ｊにおいて隔離対象サーバの隔離処理が完了したと判断する。
【００８５】
判断結果は、例えば、図９に示した隔離状態管理テーブル９００に記憶される。ここで、クライアント装置＄１からハートビートＨＢ２が受信された場合を想定する。この場合、判断部１１０５は、隔離状態管理テーブル９００から、クライアントアドレスフィールドにクライアント装置＄１のＩＰアドレス「ＩＰ＿ＡＤＤＲＥＳＳ−１」が設定された隔離状態管理情報９００−１を特定する。そして、判断部１１０５は、特定した隔離状態管理情報９００−１の完了状態フィールドに「１」を設定する。これにより、隔離対象サーバの隔離処理が完了したクライアント装置＄ｊを把握することができる。
【００８６】
また、判断部１１０５は、クライアント装置＄ｊに隔離情報Ｄ１が送信されてから一定時間Ｔ経過しても、クライアント装置＄ｊから隔離情報Ｄ２が受信されなかった場合、クライアント装置＄ｊにおいて隔離対象サーバの隔離処理が不要であると判断する機能を有する。一定時間Ｔとしては、例えば、業務ＬＡＮを用いたハートビート通信のタイムアウト時間Ｔ＿ｏｕｔが設定される。具体的には、例えば、タイムアウト時間Ｔ＿ｏｕｔは、５〜１０秒程度の時間である。
【００８７】
ここで、タイムアウト時間Ｔ＿ｏｕｔを経過してもクライアント装置＄ｊからハートビートＨＢが受信されないということは、クライアント装置＄ｊにおいて何らかの異常が発生している可能性がある。そこで、判断部１１０５は、例えば、クライアント装置＄ｊにハートビートＨＢ１が送信されてからタイムアウト時間Ｔ＿ｏｕｔが経過しても、クライアント装置＄ｊからハートビートＨＢ２が受信されなかった場合、クライアント装置＄ｊでの隔離処理が不要であると判断する。
【００８８】
切替部１１０６は、現用系サーバ＃ｋの代わりにクライアント装置＄ｊからの処理要求に応じた処理を実行する状態に変更する機能を有する。ここで、クライアント装置＄ｊからの処理要求に応じた処理を実行する状態に変更するとは、自サーバが現用系サーバとなることである。
【００８９】
具体的には、例えば、切替部１１０６は、電源制御装置＃ｋから電源停止応答を受信した場合、または、隔離対象サーバの隔離処理が完了した場合に、現用系サーバを、サーバ＃ｋから自サーバに変更することにしてもよい。ここで、隔離対象サーバの隔離処理が完了した場合とは、サーバ＃ｉと接続中の全てのクライアント装置＄１〜＄４において隔離対象サーバの隔離処理が「完了」または「不要」と判断された場合である。
【００９０】
一例として、異常が検知された現用系サーバ＃ｋを「サーバ＃１」とし、サーバ＃ｉを「サーバ＃２」とする。この場合、サーバ＃２は、サーバ＃１〜＃３のうちの異常が検知されたサーバ＃１を除くサーバ＃３と通信することにより、新しく現用系サーバとなるサーバを決定する。そして、サーバ＃２は、決定した現用系サーバが自サーバであれば、現用系サーバを自サーバに切り替える。
【００９１】
なお、サーバ＃ｉは、現用系サーバが自サーバに切り替わったことをクライアント装置＄１〜＄４に通知することにしてもよい。これにより、クライアント装置＄１〜＄４が現用系サーバにアクセスする際に仮想ＩＰを使わない場合であっても、クライアント装置＄１〜＄４が切替後の現用系サーバを認識することができる。
【００９２】
また、受信部１１０４は、クライアント装置＄ｊから通信路の確立要求を受信する機能を有する。ここで、通信路の確立要求とは、例えば、業務ＬＡＮを用いてサーバ／クライアント装置間でハートビートＨＢを送受信するセッションの確立要求である。具体的には、例えば、受信部１１０４は、ハートビートＨＢ２を受信しなかったクライアント装置、または、クラスタシステム２１０に新規接続されたクライアント装置のいずれかのクライアント装置＄ｊからセッションの確立要求を受信する。なお、ハートビートＨＢ２を受信しなかったクライアント装置とは、例えば、ハングアップ等の半死状態から再び正常に稼働し始めたクライアント装置＄ｊである。
【００９３】
また、送信部１１０３は、クライアント装置＄ｊから通信路の確立要求を受信したことに応じて、クライアント装置＄ｊに隔離情報Ｄ１を送信する機能を有する。具体的には、例えば、送信部１１０３は、セッションの確立要求に応じて確立される業務ＬＡＮのセッションを用いて、要求元のクライアント装置＄ｊにハートビートＨＢ１を送信する。これにより、ハングアップ等の半死状態から再び正常に稼働し始めたクライアント装置＄ｊや新規接続されたクライアント装置に対して、隔離対象サーバの隔離指示を通知することができる。
【００９４】
受付部１１０７は、組込対象サーバの指定を受け付ける機能を有する。ここで、組込対象サーバとは、クラスタシステム２１０に組み込むサーバである。例えば、組込対象サーバは、ハングアップ等の半死状態から再び正常に稼働し始めたサーバや、クラスタシステム２１０に新規に組み込まれるサーバである。
【００９５】
具体的には、例えば、受付部１１０７は、不図示のキーボートやマウスを用いたユーザの操作入力により、または、不図示の外部のコンピュータからの操作入力により、組込対象サーバの組込指示を受け付ける。また、受付部１１０７は、組込対象サーバから、組込対象サーバの組込指示を受け付けることにしてもよい。
【００９６】
また、生成部１１０２は、組込対象サーバが隔離対象サーバの場合、隔離解除対象サーバのサーバ数と隔離解除対象サーバのＩＰアドレスとを含む隔離情報Ｄ３を生成する機能を有する。具体的には、例えば、生成部１１０２は、隔離解除対象サーバのＩＰアドレスとして、組込対象サーバのＩＰアドレスを設定した隔離情報Ｄ３を生成する。
【００９７】
また、送信部１１０３は、生成部１１０２によって生成された隔離情報Ｄ３をクライアント装置＄ｊに送信する機能を有する。具体的には、例えば、送信部１１０３は、業務ＬＡＮを用いて、隔離指示種別「３」を設定するとともに隔離情報Ｄ３を付加したハートビートＨＢ３（例えば、図７参照）を接続中の全てのクライアント装置＄１〜＄４に送信する。
【００９８】
また、受信部１１０４は、クライアント装置＄ｊにおいて隔離解除済みの隔離解除対象サーバのサーバ数と隔離解除対象サーバのＩＰアドレスとを含む隔離情報Ｄ４をクライアント装置＄ｊから受信する機能を有する。具体的には、例えば、受信部１１０４は、業務ＬＡＮを用いて、隔離指示種別「４」が設定され、かつ、隔離情報Ｄ４が付加されたハートビートＨＢ４（例えば、図８参照）をクライアント装置＄ｊから受信する。
【００９９】
また、判断部１１０５は、クライアント装置＄ｊにおいて隔離解除対象サーバの隔離解除処理が完了したか否かを判断する機能を有する。具体的には、例えば、判断部１１０５は、クライアント装置＄ｊからハートビートＨＢ４が受信された場合に、クライアント装置＄ｊにおいて隔離解除対象サーバの隔離解除処理が完了したと判断する。
【０１００】
判断結果は、例えば、図９に示した隔離状態管理テーブル９００に記憶される。ここで、クライアント装置＄１からハートビートＨＢ４が受信された場合を想定する。この場合、判断部１１０５は、隔離状態管理テーブル９００から、クライアントアドレスフィールドにクライアント装置＄１のＩＰアドレス「ＩＰ＿ＡＤＤＲＥＳＳ−１」が設定された隔離状態管理情報９００−１を特定する。そして、判断部１１０５は、特定した隔離状態管理情報９００−１の完了状態フィールドに「１」を設定する。これにより、隔離解除対象サーバの隔離解除処理が完了したクライアント装置＄ｊを把握することができる。
【０１０１】
また、判断部１１０５は、クライアント装置＄ｊに隔離情報Ｄ３が送信されてから一定時間Ｔ経過しても、クライアント装置＄ｊから隔離情報Ｄ４が受信されなかった場合、クライアント装置＄ｊにおいて隔離解除対象サーバの隔離解除処理が不要であると判断する。一定時間Ｔは、例えば、業務ＬＡＮを用いたハートビート通信のタイムアウト時間Ｔ＿ｏｕｔである。
【０１０２】
具体的には、例えば、判断部１１０５は、クライアント装置＄ｊにハートビートＨＢ３が送信されてからタイムアウト時間Ｔ＿ｏｕｔが経過しても、クライアント装置＄ｊからハートビートＨＢ４が受信されなかった場合、クライアント装置＄ｊでの隔離解除処理が不要であると判断する。
【０１０３】
組込部１１０８は、クラスタシステム２１０に組込対象サーバを組み込む機能を有する。具体的には、例えば、組込部１１０８は、クラスタシステム２１０を構成するサーバ＃１〜＃３のうちの隔離対象サーバを除くサーバ間で意識合わせを行って、クラスタシステム２１０に組込対象サーバを組み込む。
【０１０４】
また、組込部１１０８は、組込対象サーバが隔離対象サーバのときは、隔離解除対象サーバの隔離解除処理が完了した場合に、クラスタシステム２１０に組込対象サーバを組み込む。ここで、隔離解除対象サーバの隔離解除処理が完了した場合とは、サーバ＃ｉと接続中の全てのクライアント装置＄１〜＄４において隔離解除対象サーバの隔離解除処理が「完了」または「不要」と判断された場合である。
【０１０５】
なお、サーバ＃ｉのクラスタ制御部＃ｉ（図２参照）は、例えば、検知部１１０１、生成部１１０２、送信部１１０３、受信部１１０４、切替部１１０６、受付部１１０７、組込部１１０８により実現される。また、サーバ＃ｉの通信制御部＃ｉは、例えば、送信部１１０３、受信部１１０４、判断部１１０５により実現される。
【０１０６】
（クライアント装置＄ｊの機能的構成例）
図１２は、クライアント装置＄ｊの機能的構成例を示すブロック図である。図１２において、クライアント装置＄ｊは、受信部１２０１と、隔離部１２０２と、生成部１２０３と、送信部１２０４と、を含む構成である。各機能部は、具体的には、例えば、図３に示したクライアント装置＄ｊのメモリ３０２、磁気ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、磁気ディスク３０５などの記憶装置に記憶される。
【０１０７】
受信部１２０１は、サーバ＃ｉから隔離情報Ｄ１を受信する機能を有する。具体的には、例えば、受信部１２０１は、業務ＬＡＮを用いて、隔離指示種別「１」が設定され、かつ、隔離情報Ｄ１が付加されたハートビートＨＢ１（例えば、図５参照）をサーバ＃ｉから受信する。
【０１０８】
隔離部１２０２は、隔離情報Ｄ１を受信したことに応じて、隔離情報Ｄ１から特定される現用系サーバ＃ｋの隔離処理を実行する機能を有する。ここで、隔離処理とは、隔離情報Ｄ１から特定される現用系サーバ＃ｋからのデータを破棄する状態に変更する処理である。
【０１０９】
具体的には、例えば、隔離部１２０２は、ハートビートＨＢ１に付加された隔離情報Ｄ１から特定される隔離対象サーバのＩＰアドレスを隔離対象サーバリスト１０００（図１０参照）に登録する。これにより、クライアント装置＄ｊは、隔離対象サーバリスト１０００から隔離対象サーバのＩＰアドレスを特定して、隔離対象サーバのＩＰアドレスを送信元のＩＰアドレスとするデータを破棄することができる。
【０１１０】
すなわち、処理要求の送信時に仮想ＩＰアドレスを使用する場合であっても、サーバからの応答は各サーバから受信できるため、クライアント装置＄ｊでサーバからの応答を受信する際に、異常サーバからの応答を破棄することができる。なお、隔離部１２０２は、隔離対象サーバリスト１０００に登録した隔離対象サーバとのコネクションを切断することにしてもよい。
【０１１１】
生成部１２０３は、隔離済みの隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスとを含む隔離情報Ｄ２を生成する機能を有する。具体的には、例えば、生成部１２０３は、隔離対象サーバリスト１０００に登録されている隔離対象サーバのサーバ数とＩＰアドレスを設定した隔離情報Ｄ２を生成する。
【０１１２】
送信部１２０４は、生成部１２０３によって生成された隔離情報Ｄ２をサーバ＃ｉに送信する機能を有する。具体的には、例えば、送信部１２０４は、隔離対象サーバの隔離処理が完了した場合、業務ＬＡＮを用いて、隔離指示種別「２」を設定するとともに隔離情報Ｄ２を付加したハートビートＨＢ２（例えば、図６参照）をサーバ＃ｉに送信する。
【０１１３】
この際、送信部１２０４は、サーバ＃１〜＃３に割り振られた仮想ＩＰアドレスを用いて、異常が検知された現用系サーバ＃ｋを含む全てのサーバ＃１〜＃３にハートビートＨＢ２を送信することにしてもよい。これにより、例えば、異常が検知された現用系サーバ＃ｋは、ハートビートＨＢ２を受信することができる状態であれば、自身が異常であることを認識することができる。
【０１１４】
また、受信部１２０１は、サーバ＃ｉから隔離情報Ｄ３を受信する機能を有する。具体的には、例えば、受信部１２０１は、業務ＬＡＮを用いて、隔離指示種別「３」が設定され、かつ、隔離情報Ｄ３が付加されたハートビートＨＢ３（例えば、図７参照）をサーバ＃ｉから受信する。
【０１１５】
また、隔離部１２０２は、隔離情報Ｄ３を受信したことに応じて、隔離情報Ｄ３から特定される隔離解除対象サーバの隔離解除処理を実行する機能を有する。ここで、隔離解除処理とは、隔離情報Ｄ３から特定される隔離解除対象サーバからのデータを破棄する状態を解除する処理である。
【０１１６】
具体的には、例えば、隔離部１２０２は、ハートビートＨＢ３に付加された隔離情報Ｄ３から特定される隔離解除対象サーバのＩＰアドレスを隔離対象サーバリスト１０００から削除する。これにより、以降において、クライアント装置＄ｊは、隔離解除対象サーバからのデータを受け付けることができる。この際、隔離解除対象サーバとのコネクションが切断されている場合は、隔離部１２０２は、隔離解除対象サーバとのコネクションを確立することにしてもよい。
【０１１７】
生成部１２０３は、隔離解除済みの隔離解除対象サーバのサーバ数と隔離解除対象サーバのＩＰアドレスとを含む隔離情報Ｄ４を生成する機能を有する。具体的には、例えば、生成部１２０３は、隔離対象サーバリスト１０００から削除された隔離解除対象サーバのサーバ数とＩＰアドレスを設定した隔離情報Ｄ４を生成する。
【０１１８】
送信部１２０４は、生成部１２０３によって生成された隔離情報Ｄ４をサーバ＃ｉに送信する機能を有する。具体的には、例えば、送信部１２０４は、隔離解除対象サーバの隔離解除処理が完了した場合、業務ＬＡＮを用いて、隔離指示種別「４」を設定するとともに隔離情報Ｄ４を付加したハートビートＨＢ４（例えば、図８参照）をサーバ＃ｉに送信する。
【０１１９】
なお、クライアント装置＄ｊの通信制御部＄ｊは、例えば、受信部１２０１、隔離部１２０２、生成部１２０３、送信部１２０４により実現される。
【０１２０】
（フェイルオーバー実施時の動作例）
つぎに、図１３〜図１５を用いて、フェイルオーバー実施時の情報処理システム２００の動作例について説明する。ここでは、切替元サーバ（現用系サーバ＃ｋ）を「サーバ＃１」とし、切替先サーバ（待機系サーバ＃ｉ）を「サーバ＃２」とする。
【０１２１】
図１３は、フェイルオーバー実施時の動作例を示す説明図（その１）である。図１３において、（１３−１）サーバ＃２のクラスタ制御部＃２は、現用系サーバ＃１の異常を検知する。（１３−２）クラスタ制御部＃２は、現用系サーバ＃１の電源制御装置＃１に電源停止指示を送信するとともに、サーバ＃２の通信制御部＃２に全クライアント装置＄１〜＄４に対する現用系サーバ＃１の隔離指示を依頼する。
【０１２２】
ここでは、現用系サーバ＃１の電源制御装置＃１が正常に動作可能であり、電源制御装置＃１に至るネットワークに異常がない場合を想定する。
【０１２３】
（１３−３）現用系サーバ＃１の電源制御装置＃１は、サーバ＃２から電源停止指示を受信した場合、現用系サーバ＃１の電源を停止する。（１３−４）電源制御装置＃１は、現用系サーバ＃１の電源を停止した場合、サーバ＃２に電源停止応答を送信する。
【０１２４】
（１３−５）クラスタ制御部＃２は、電源制御装置＃１から電源停止応答を受信した場合、現用系サーバを、サーバ＃１から自サーバ＃２に変更する。（１３−６）通信制御部＃２は、クラスタ制御部＃２からの隔離指示に応じて、業務ＬＡＮを用いて、接続中の全てのクライアント装置＄１〜＄４にハートビートＨＢ１を送信する。
【０１２５】
ここでは、各クライアント装置＄１〜＄４が正常に動作可能であり、各クライアント装置＄１〜＄４に至るネットワークに異常がない場合を想定する。
【０１２６】
（１３−７）各クライアント装置＄１〜＄４は、サーバ＃２からハートビートＨＢ１を受信したことに応じて、現用系サーバ＃１の隔離処理を実行する。（１３−８）各クライアント装置＄１〜＄４は、現用系サーバ＃１の隔離処理が完了した場合、業務ＬＡＮを用いて、サーバ＃２にハートビートＨＢ２を送信する。
【０１２７】
（１３−９）通信制御部＃２は、接続中の全てのクライアント装置＄１〜＄４からハートビートＨＢ２を受信した場合、現用系サーバ＃１の隔離処理完了通知をクラスタ制御部＃２に送信する。（１３−１０）クラスタ制御部＃２は、現用系サーバの切替処理が完了している場合、通信制御部＃２からの隔離処理完了通知を破棄する。
【０１２８】
このように、電源制御装置＃１による現用系サーバ＃１の電源停止処理が全クライアント装置＄１〜＄４における現用系サーバ＃１の隔離処理よりも早く完了する場合（応答時間Ｓ１＜応答時間Ｓ２）、電源制御装置＃１から電源停止応答を受信したタイミングでサーバ切替が行われる。
【０１２９】
図１４は、フェイルオーバー実施時の動作例を示す説明図（その２）である。図１４において、（１４−１）サーバ＃２のクラスタ制御部＃２は、現用系サーバ＃１の異常を検知する。（１４−２）クラスタ制御部＃２は、現用系サーバ＃１の電源制御装置＃１に電源停止指示を送信するとともに、サーバ＃２の通信制御部＃２に全クライアント装置＄１〜＄４に対する現用系サーバ＃１の隔離指示を依頼する。
【０１３０】
ここでは、現用系サーバ＃１の電源制御装置＃１が正常に動作可能であり、電源制御装置＃１に至るネットワークに異常がない場合を想定する。また、各クライアント装置＄１〜＄４が正常に動作可能であり、各クライアント装置＄１〜＄４に至るネットワークに異常がない場合を想定する。
【０１３１】
（１４−３）通信制御部＃２は、クラスタ制御部＃２からの隔離指示に応じて、業務ＬＡＮを用いて、接続中の全てのクライアント装置＄１〜＄４にハートビートＨＢ１を送信する。（１４−４）各クライアント装置＄１〜＄４は、サーバ＃２からハートビートＨＢ１を受信したことに応じて、現用系サーバ＃１の隔離処理を実行する。
【０１３２】
（１４−５）各クライアント装置＄１〜＄４は、現用系サーバ＃１の隔離処理が完了した場合、業務ＬＡＮを用いて、サーバ＃２にハートビートＨＢ２を送信する。（１４−６）通信制御部＃２は、接続中の全てのクライアント装置＄１〜＄４からハートビートＨＢ２を受信した場合、現用系サーバ＃１の隔離処理完了通知をクラスタ制御部＃２に送信する。
【０１３３】
（１４−７）クラスタ制御部＃２は、通信制御部＃２から隔離処理完了通知を受信した場合、現用系サーバを、サーバ＃１から自サーバ＃２に変更する。
【０１３４】
（１４−８）現用系サーバ＃１の電源制御装置＃１は、サーバ＃２から電源停止指示を受信した場合、現用系サーバ＃１の電源を停止する。（１４−９）電源制御装置＃１は、現用系サーバ＃１の電源を停止した場合、サーバ＃２に電源停止応答を送信する。（１４−１０）クラスタ制御部＃２は、現用系サーバの切替処理を完了している場合、電源制御装置＃１からの電源停止応答を破棄する。
【０１３５】
このように、全クライアント装置＄１〜＄４における現用系サーバ＃１の隔離処理が電源制御装置＃１による現用系サーバ＃１の電源停止処理よりも早く完了する場合（応答時間Ｓ２＜応答時間Ｓ１）、通信制御部＃２から隔離処理完了通知を受信したタイミングでサーバ切替が行われる。
【０１３６】
なお、現用系サーバ＃１の電源制御装置＃１または電源制御装置＃１に至るネットワークに異常が発生した場合も上記同様のシーケンスとなる。この場合、応答時間Ｓ１は、電源制御装置＃１のタイムアウト時間Ｔ１となる（Ｓ１＜Ｔ１）。すなわち、電源制御装置＃１による電源停止処理の処理遅延や異常が発生したとしても、応答時間Ｓ２（Ｓ２＜Ｔ１）内に確実にサーバ切替を完了することができる。
【０１３７】
図１５は、フェイルオーバー実施時の動作例を示す説明図（その３）である。図１５において、（１５−１）サーバ＃２のクラスタ制御部＃２は、現用系サーバ＃１の異常を検知する。（１５−２）クラスタ制御部＃２は、現用系サーバ＃１の電源制御装置＃１に電源停止指示を送信するとともに、サーバ＃２の通信制御部＃２に全クライアント装置＄１〜＄４に対する現用系サーバ＃１の隔離指示を依頼する。
【０１３８】
ここでは、現用系サーバ＃１の電源制御装置＃１が正常に動作可能であり、電源制御装置＃１に至るネットワークに異常がない場合を想定する。また、クライアント装置＄１〜＄４またはクライアント装置＄１〜＄４に至るネットワークに異常が発生した場合を想定する。
【０１３９】
（１５−３）通信制御部＃２は、クラスタ制御部＃２からの隔離指示に応じて、業務ＬＡＮを用いて、接続中の全てのクライアント装置＄１〜＄４にハートビートＨＢ１を送信する。（１５−４）通信制御部＃２は、クライアント装置＄１〜＄４にハートビートＨＢを送信してからタイムアウト時間Ｔ２を経過しても全クライアント装置＄１〜＄４から応答（ハートビートＨＢ２）がない場合、現用系サーバ＃１の隔離処理完了通知をクラスタ制御部＃２に送信する。なお、タイムアウト時間Ｔ２は、上述したタイムアウト時間Ｔ＿ｏｕｔである。
【０１４０】
（１５−５）クラスタ制御部＃２は、通信制御部＃２から隔離処理完了通知を受信した場合、現用系サーバを、サーバ＃１から自サーバ＃２に変更する。
【０１４１】
（１５−６）現用系サーバ＃１の電源制御装置＃１は、サーバ＃２から電源停止指示を受信した場合、現用系サーバ＃１の電源を停止する。（１５−７）電源制御装置＃１は、現用系サーバ＃１の電源を停止した場合、サーバ＃２に電源停止応答を送信する。（１５−８）クラスタ制御部＃２は、現用系サーバの切替処理を完了している場合、電源制御装置＃１からの電源停止応答を破棄する。
【０１４２】
このように、全クライアント装置＄１〜＄４における現用系サーバ＃１の隔離処理が電源制御装置＃１による現用系サーバ＃１の電源停止処理よりも早く完了する場合（応答時間Ｔ２＜応答時間Ｓ１）、通信制御部＃２から隔離処理完了通知を受信したタイミングでサーバ切替が行われる。
【０１４３】
なお、現用系サーバ＃１の電源制御装置＃１または電源制御装置＃１に至るネットワークに異常が発生した場合も上記同様のシーケンスとなる。この場合、応答時間Ｓ１は、電源制御装置＃１のタイムアウト時間Ｔ１となる（Ｓ１＜Ｔ１）。すなわち、電源制御装置＃１による電源停止処理の処理遅延や異常が発生したとしても、応答時間Ｔ２（Ｔ２＜Ｔ１）内に確実にサーバ切替を完了することができる。
【０１４４】
（情報処理システム２００の各種処理手順）
つぎに、実施の形態１にかかる情報処理システム２００の各種処理手順について説明する。まず、待機系サーバの第１切替処理手順について説明する。第１切替処理は、待機系サーバが新しく現用系サーバ（切替先サーバ）となる場合の処理である。
【０１４５】
＜待機系サーバの第１切替処理手順＞
図１６は、待機系サーバの第１切替処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、サーバ＃ｉのクラスタ制御部＃ｉは、現用系サーバ＃ｋの異常を検知したか否かを判断する（ステップＳ１６０１）。
【０１４６】
ここで、クラスタ制御部＃ｉは、現用系サーバ＃ｋの異常を検知するのを待つ（ステップＳ１６０１：Ｎｏ）。そして、クラスタ制御部＃ｉは、現用系サーバ＃ｋの異常を検知した場合（ステップＳ１６０１：Ｙｅｓ）、待機系サーバ間で通信することにより、待機系サーバ間で現用系サーバ＃ｋの異常を共有する（ステップＳ１６０２）。
【０１４７】
つぎに、クラスタ制御部＃ｉは、隔離対象サーバリスト１０００を参照して、隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスとを含む隔離情報Ｄ１を生成する（ステップＳ１６０３）。そして、クラスタ制御部＃ｉは、現用系サーバ＃ｋの電源制御装置＃ｋに電源停止指示を送信するとともに、通信制御部＃ｉに隔離対象サーバの隔離指示を送信する（ステップＳ１６０４）。
【０１４８】
つぎに、通信制御部＃ｉは、隔離対象サーバの隔離処理を実行する（ステップＳ１６０５）。そして、クラスタ制御部＃ｉは、電源制御装置＃ｋからの電源停止応答または通信制御部＃ｉからの隔離処理完了通知を受信したか否かを判断する（ステップＳ１６０６）。
【０１４９】
ここで、クラスタ制御部＃ｉは、電源停止応答または隔離処理完了通知を受信するのを待つ（ステップＳ１６０６：Ｎｏ）。そして、クラスタ制御部＃ｉは、電源停止応答または隔離処理完了通知を受信した場合（ステップＳ１６０６：Ｙｅｓ）、待機系サーバ間で通信することにより、サーバ状態（現用系サーバ、待機系サーバ、隔離対象サーバ）を共有する（ステップＳ１６０７）。
【０１５０】
つぎに、クラスタ制御部＃ｉは、現用系サーバをサーバ＃ｋから自サーバ＃ｉに切り替える（ステップＳ１６０８）。そして、クラスタ制御部＃ｉは、隔離対象サーバリスト１０００に隔離対象サーバのＩＰアドレスを登録して（ステップＳ１６０９）、本フローチャートによる一連の処理を終了する。
【０１５１】
これにより、電源制御装置＃ｋからの電源停止応答を受信したこと、または、クライアント装置＄１〜＄４での隔離対象サーバの隔離処理が「完了」あるいは「不要」となったことに応じて、隔離対象サーバの隔離処理を完了することができる。また、現用系サーバをサーバ＃ｋから自サーバ＃ｉに切り替えることができる。
【０１５２】
なお、ステップＳ１６０４において、クラスタ制御部＃ｉは、電源停止指示の送信処理および隔離指示の送信処理を並列に実行することにしたが、これに限らない。例えば、クラスタ制御部＃ｉは、現用系サーバ＃ｋの電源制御装置＃ｋに電源停止指示を送信した後に、通信制御部＃ｉに隔離対象サーバの隔離指示を送信することにしてもよい。また、クラスタ制御部＃ｉは、通信制御部＃ｉに隔離対象サーバの隔離指示を送信した後に、現用系サーバ＃ｋの電源制御装置＃ｋに電源停止指示を送信することにしてもよい。
【０１５３】
つぎに、図１７および図１８を用いて、図１６に示したステップＳ１６０５の隔離処理の具体的な処理手順について説明する。
【０１５４】
図１７および図１８は、待機系サーバの隔離処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、サーバ＃ｉの通信制御部＃ｉは、隔離状態管理テーブル９００を作成して初期化する（ステップＳ１７０１）。つぎに、通信制御部＃ｉは、接続中のクライアント装置＄１〜＄４からいずれかのクライアント装置＄ｊを選択する（ステップＳ１７０２）。
【０１５５】
そして、通信制御部＃ｉは、クライアント装置＄ｊに対するハートビートＨＢを作成する（ステップＳ１７０３）。つぎに、通信制御部＃ｉは、作成したハートビートＨＢに隔離指示種別「１」を設定するとともに隔離情報Ｄ１を付加する（ステップＳ１７０４）。そして、通信制御部＃ｉは、業務ＬＡＮを用いて、ハートビートＨＢをクライアント装置＄ｊに送信する（ステップＳ１７０５）。
【０１５６】
つぎに、通信制御部＃ｉは、接続中のクライアント装置＄１〜＄４から選択されていない未選択のクライアント装置があるか否かを判断する（ステップＳ１７０６）。ここで、未選択のクライアント装置がある場合（ステップＳ１７０６：Ｙｅｓ）、通信制御部＃ｉは、ステップＳ１７０２に戻る。
【０１５７】
一方、未選択のクライアント装置がない場合（ステップＳ１７０６：Ｎｏ）、通信制御部＃ｉは、図１８に示すステップＳ１８０１に移行する。
【０１５８】
図１８のフローチャートにおいて、まず、通信制御部＃ｉは、受信処理開始時刻ｔ１を取得する（ステップＳ１８０１）。受信処理開始時刻ｔ１は、例えば、この時点の現在時刻である。つぎに、通信制御部＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信したか否かを判断する（ステップＳ１８０２）。
【０１５９】
ここで、通信制御部＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信するのを待つ（ステップＳ１８０２：Ｎｏ）。そして、通信制御部＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信した場合（ステップＳ１８０２：Ｙｅｓ）、受信したハートビートＨＢに隔離指示種別「２」が設定されているか否かを判断する（ステップＳ１８０３）。
【０１６０】
ここで、隔離指示種別「２」が設定されていない場合（ステップＳ１８０３：Ｎｏ）、通信制御部＃ｉは、ステップＳ１８０２に戻る。一方、隔離指示種別「２」が設定されている場合（ステップＳ１８０３：Ｙｅｓ）、通信制御部＃ｉは、隔離状態管理テーブル９００のクライアント装置＄ｊの完了状態に「１」を設定する（ステップＳ１８０４）。
【０１６１】
つぎに、通信制御部＃ｉは、隔離状態管理テーブル９００を参照して、全てのクライアント装置＄１〜＄４の完了状態が「１」となっているか否かを判断する（ステップＳ１８０５）。ここで、全てのクライアント装置＄１〜＄４の完了状態が「１」となっている場合（ステップＳ１８０５：Ｙｅｓ）、通信制御部＃ｉは、隔離対象サーバの隔離は「成功」と判断して（ステップＳ１８０６）、ステップＳ１８１０に移行する。
【０１６２】
一方、全てのクライアント装置＄１〜＄４の完了状態が「１」となっていない場合（ステップＳ１８０５：Ｎｏ）、通信制御部＃ｉは、現在時刻ｔ２を取得する（ステップＳ１８０７）。そして、通信制御部＃ｉは、受信処理開始時刻ｔ１から現在時刻ｔ２までの経過時間がタイムアウト時間Ｔ＿ｏｕｔ未満か否かを判断する（ステップＳ１８０８）。
【０１６３】
ここで、タイムアウト時間Ｔ＿ｏｕｔ未満の場合（ステップＳ１８０８：Ｙｅｓ）、通信制御部＃ｉは、ステップＳ１８０２に戻る。一方、タイムアウト時間Ｔ＿ｏｕｔ以上の場合（ステップＳ１８０８：Ｎｏ）、通信制御部＃ｉは、隔離対象サーバの隔離は「不要」と判断する（ステップＳ１８０９）。
【０１６４】
つぎに、通信制御部＃ｉは、クラスタ制御部＃ｉに隔離処理完了通知を送信する（ステップＳ１８１０）。そして、通信制御部＃ｉは、隔離状態管理テーブル９００を削除して（ステップＳ１８１１）、隔離処理を呼び出したステップに戻る。
【０１６５】
これにより、接続中の全てのクライアント装置＄１〜＄４において隔離対象サーバの隔離処理が「完了」または「不要」と判断したことに応じて、隔離対象サーバの隔離処理を完了することができる。
【０１６６】
＜待機系サーバの第２切替処理手順＞
つぎに、待機系サーバの第２切替処理手順について説明する。第２切替処理は、待機系サーバが新しく現用系サーバ（切替先サーバ）とならない場合の処理である。
【０１６７】
図１９は、待機系サーバの第２切替処理手順の一例を示すフローチャートである。図１９のフローチャートにおいて、まず、サーバ＃ｉのクラスタ制御部＃ｉは、現用系サーバ＃ｋの異常を検知したか否かを判断する（ステップＳ１９０１）。
【０１６８】
ここで、クラスタ制御部＃ｉは、現用系サーバ＃ｋの異常を検知するのを待つ（ステップＳ１９０１：Ｎｏ）。そして、クラスタ制御部＃ｉは、現用系サーバ＃ｋの異常を検知した場合（ステップＳ１９０１：Ｙｅｓ）、待機系サーバ間で通信することにより、待機系サーバ間で現用系サーバ＃ｋの異常を共有する（ステップＳ１９０２）。
【０１６９】
つぎに、クラスタ制御部＃ｉは、隔離対象サーバリスト１０００を参照して、隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスとを含む隔離情報Ｄ１を生成する（ステップＳ１９０３）。そして、クラスタ制御部＃ｉは、通信制御部＃ｉに隔離対象サーバの隔離指示を送信する（ステップＳ１９０４）。
【０１７０】
つぎに、通信制御部＃ｉは、隔離対象サーバの隔離処理を実行する（ステップＳ１９０５）。そして、クラスタ制御部＃ｉは、通信制御部＃ｉからの隔離処理完了通知を受信したか否かを判断する（ステップＳ１９０６）。
【０１７１】
ここで、クラスタ制御部＃ｉは、隔離処理完了通知を受信するのを待つ（ステップＳ１９０６：Ｎｏ）。そして、クラスタ制御部＃ｉは、隔離処理完了通知を受信した場合（ステップＳ１９０６：Ｙｅｓ）、待機系サーバ間で通信することにより、サーバ状態（現用系サーバ、待機系サーバ、隔離対象サーバ）を共有する（ステップＳ１９０７）。
【０１７２】
つぎに、クラスタ制御部＃ｉは、隔離対象サーバリスト１０００に隔離対象サーバのＩＰアドレスを登録して（ステップＳ１９０８）、本フローチャートによる一連の処理を終了する。
【０１７３】
これにより、クライアント装置＄１〜＄４での隔離対象サーバの隔離処理が「完了」あるいは「不要」となったことに応じて、隔離対象サーバの隔離処理を完了することができる。
【０１７４】
＜クライアント装置＄ｊのハートビート受信処理手順＞
つぎに、図２０を用いて、クライアント装置＄ｊのハートビート受信処理手順について説明する。
【０１７５】
図２０は、クライアント装置＄ｊのハートビート受信処理手順の一例を示すフローチャート（その１）である。図２０のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信したか否かを判断する（ステップＳ２００１）。
【０１７６】
ここで、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信するのを待つ（ステップＳ２００１：Ｎｏ）。そして、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信した場合（ステップＳ２００１：Ｙｅｓ）、ハートビート監視処理を実行する（ステップＳ２００２）。ハートビート監視処理は、コネクション監視や異常判断などを行う処理である。
【０１７７】
つぎに、クライアント装置＄ｊは、隔離対象サーバリスト１０００を参照して、受信したハートビートＨＢが、既知の隔離対象サーバからのハートビートＨＢか否かを判断する（ステップＳ２００３）。ここで、既知の隔離対象サーバからのハートビートＨＢの場合（ステップＳ２００３：Ｙｅｓ）、クライアント装置＄ｊは、本フローチャートによる一連の処理を終了する。
【０１７８】
一方、既知の隔離対象サーバからのハートビートＨＢではない場合（ステップＳ２００３：Ｎｏ）、クライアント装置＄ｊは、ハートビートＨＢに隔離指示種別「１」が設定されているか否かを判断する（ステップＳ２００４）。ここで、隔離指示種別「１」が設定されていない場合（ステップＳ２００４：Ｎｏ）、クライアント装置＄ｊは、本フローチャートによる一連の処理を終了する。
【０１７９】
一方、隔離指示種別「１」が設定されている場合（ステップＳ２００４：Ｙｅｓ）、クライアント装置＄ｊは、隔離情報Ｄ１に含まれる隔離対象サーバのＩＰアドレスを隔離対象サーバリスト１０００に上書きする（ステップＳ２００５）。そして、クライアント装置＄ｊは、隔離指示フラグを「０」から「１」に変更して（ステップＳ２００６）、本フローチャートによる一連の処理を終了する。
【０１８０】
これにより、サーバ＃ｉからのハートビートＨＢに付加されている隔離情報Ｄ１から特定される隔離対象サーバを隔離することができる。
【０１８１】
＜クライアント装置＄ｊのハートビート送信処理手順＞
つぎに、図２１を用いて、クライアント装置＄ｊのハートビート送信処理手順について説明する。
【０１８２】
図２１は、クライアント装置＄ｊのハートビート送信処理手順の一例を示すフローチャート（その１）である。図２１のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉに対するハートビートＨＢを作成する（ステップＳ２１０１）。つぎに、クライアント装置＄ｊは、隔離指示フラグが「１」か否かを判断する（ステップＳ２１０２）。
【０１８３】
ここで、隔離指示フラグが「０」の場合（ステップＳ２１０２：Ｎｏ）、クライアント装置＄ｊは、業務ＬＡＮを用いて、作成したハートビートＨＢをサーバ＃ｉに送信して（ステップＳ２１０３）、本フローチャートによる一連の処理を終了する。
【０１８４】
一方、隔離指示フラグが「１」の場合（ステップＳ２１０２：Ｙｅｓ）、クライアント装置＄ｊは、隔離対象サーバリスト１０００に登録されている隔離対象サーバのサーバ数とＩＰアドレスを設定した隔離情報Ｄ２を生成する（ステップＳ２１０４）。
【０１８５】
そして、クライアント装置＄ｊは、作成したハートビートＨＢに隔離指示種別「２」を設定するとともに隔離情報Ｄ２を付加する（ステップＳ２１０５）。つぎに、クライアント装置＄ｊは、業務ＬＡＮを用いて、ハートビートＨＢをサーバ＃ｉに送信する（ステップＳ２１０６）。
【０１８６】
そして、クライアント装置＄ｊは、隔離指示フラグを「１」から「０」に変更して（ステップＳ２１０７）、本フローチャートによる一連の処理を終了する。これにより、隔離対象サーバの隔離処理が完了したことを示す隔離指示応答をサーバ＃ｉに通知することができる。
【０１８７】
＜クライアント装置＄ｊのデータ処理手順＞
つぎに、図２２を用いて、クライアント装置＄ｊのデータ処理手順について説明する。
【０１８８】
図２２は、クライアント装置＄ｊのデータ処理手順の一例を示すフローチャートである。図２２のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉからデータを受信したか否かを判断する（ステップＳ２２０１）。
【０１８９】
ここで、クライアント装置＄ｊは、サーバ＃ｉからデータを受信するのを待つ（ステップＳ２２０１：Ｎｏ）。そして、クライアント装置＄ｊは、サーバ＃ｉからデータを受信した場合（ステップＳ２２０１：Ｙｅｓ）、受信したデータの送信元アドレスを特定する（ステップＳ２２０２）。
【０１９０】
つぎに、クライアント装置＄ｊは、特定した送信元アドレスが隔離対象サーバリスト１０００に登録されているか否かを判断する（ステップＳ２２０３）。ここで、隔離対象サーバリスト１０００に登録されている場合（ステップＳ２２０３：Ｙｅｓ）、クライアント装置＄ｊは、受信したデータを破棄する（ステップＳ２２０４）。
【０１９１】
そして、クライアント装置＄ｊは、サーバ＃ｉとのコネクションを切断して（ステップＳ２２０５）、本フローチャートによる一連の処理を終了する。これにより、隔離対象サーバからのデータを破棄することができる。
【０１９２】
また、ステップＳ２２０３において、隔離対象サーバリスト１０００に登録されていない場合（ステップＳ２２０３：Ｎｏ）、クライアント装置＄ｊは、データの受信処理を完了して（ステップＳ２２０６）、本フローチャートによる一連の処理を終了する。
【０１９３】
＜サーバ＃ｉのハートビート受信処理手順＞
つぎに、図２３を用いて、サーバ＃ｉのハートビート受信処理手順について説明する。
【０１９４】
図２３は、サーバ＃ｉのハートビート受信処理手順の一例を示すフローチャートである。図２３のフローチャートにおいて、まず、サーバ＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信したか否かを判断する（ステップＳ２３０１）。
【０１９５】
ここで、サーバ＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信するのを待つ（ステップＳ２３０１：Ｎｏ）。そして、サーバ＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信した場合（ステップＳ２３０１：Ｙｅｓ）、受信したハートビートＨＢに隔離指示種別「２」が設定されているか否かを判断する（ステップＳ２３０２）。
【０１９６】
ここで、隔離指示種別「２」が設定されていない場合（ステップＳ２３０２：Ｎｏ）、サーバ＃ｉは、ハートビート監視処理を実行して（ステップＳ２３０３）、本フローチャートによる一連の処理を終了する。
【０１９７】
一方、隔離指示種別「２」が設定されている場合（ステップＳ２３０２：Ｙｅｓ）、サーバ＃ｉは、ハートビートＨＢに付加された隔離情報Ｄ２を参照して、自サーバが隔離対象サーバか否かを判断する（ステップＳ２３０４）。ここで、自サーバが隔離対象サーバではない場合（ステップＳ２３０４：Ｎｏ）、サーバ＃ｉは、ステップＳ２３０３に移行する。
【０１９８】
一方、自サーバが隔離対象サーバの場合（ステップＳ２３０４：Ｙｅｓ）、サーバ＃ｉは、接続中の全てのクライアント装置＄１〜＄４との通信を切断する（ステップＳ２３０５）。そして、サーバ＃ｉは、業務ＬＡＮを用いたハートビート監視を終了して（ステップＳ２３０６）、本フローチャートによる一連の処理を終了する。
【０１９９】
これにより、クライアント装置＄ｊからのハートビートＨＢに付加されている隔離情報Ｄ２から自サーバが隔離対象サーバか否かを判断でき、自サーバが隔離対象サーバの場合は、接続中の全てのクライアント装置＄１〜＄４との通信を切断することができる。
【０２００】
＜現用系サーバの組込処理手順＞
つぎに、図２４を用いて、現用系サーバの組込処理手順について説明する。この組込処理は、現用系サーバが組込対象サーバの組込指示を受け付けた場合の処理である。なお、組込対象サーバは、情報処理システム２００の管理者等により起動済みである場合を想定する。
【０２０１】
図２４は、現用系サーバの組込処理手順の一例を示すフローチャートである。図２４のフローチャートにおいて、まず、サーバ＃ｉは、組込対象サーバの組込指示を受け付けたか否かを判断する（ステップＳ２４０１）。
【０２０２】
ここで、サーバ＃ｉは、組込対象サーバの組込指示を受け付けるのを待つ（ステップＳ２４０１：Ｎｏ）。そして、サーバ＃ｉは、組込対象サーバの組込指示を受け付けた場合（ステップＳ２４０１：Ｙｅｓ）、待機系サーバと通信することにより、サーバ間で組込対象サーバを共有する（ステップＳ２４０２）。
【０２０３】
つぎに、サーバ＃ｉは、組込対象サーバが隔離対象サーバリスト１０００に登録されているか否かを判断する（ステップＳ２４０３）。ここで、組込対象サーバが隔離対象サーバリスト１０００に登録されていない場合（ステップＳ２４０３：Ｎｏ）、サーバ＃ｉは、ステップＳ２４０５に移行する。
【０２０４】
一方、組込対象サーバが隔離対象サーバリスト１０００に登録されている場合（ステップＳ２４０３：Ｙｅｓ）、サーバ＃ｉは、組込対象サーバの隔離解除処理を実行する（ステップＳ２４０４）。そして、サーバ＃ｉは、組込対象サーバの組込処理を実行する（ステップＳ２４０５）。組込処理は、組込対象サーバをクラスタシステム２１０に組み込む処理である。
【０２０５】
つぎに、サーバ＃ｉは、隔離対象サーバリスト１０００を更新する（ステップＳ２４０６）。具体的には、例えば、サーバ＃ｉは、組込対象サーバが隔離対象サーバリスト１０００に登録されている場合に、隔離対象サーバリスト１０００から組込対象サーバを削除する。
【０２０６】
そして、サーバ＃ｉは、待機系サーバと通信することにより、組込対象サーバの組込処理を完了して（ステップＳ２４０７）、本フローチャートによる一連の処理を終了する。これにより、組込対象サーバをクラスタシステム２１０に組み込むことができる。
【０２０７】
なお、待機系サーバの組込処理手順については、上述した現用系サーバの組込処理手順と同様のため図示および説明を省略する。具体的には、例えば、待機系サーバは、ステップＳ２４０２において、現用系サーバと通信した後は、ステップＳ２４０３〜Ｓ２４０７と同様の処理を行う。
【０２０８】
つぎに、図２５および図２６を用いて、図２４に示したステップＳ２４０４の隔離解除処理の具体的な処理手順について説明する。
【０２０９】
図２５および図２６は、現用系サーバの隔離解除処理手順の一例を示すフローチャートである。図２５のフローチャートにおいて、まず、サーバ＃ｉは、隔離解除対象サーバのサーバ数と隔離解除対象サーバのＩＰアドレスとを含む隔離情報Ｄ３を生成する（ステップＳ２５０１）。なお、隔離解除対象サーバは、隔離対象サーバリスト１０００に登録されている組込対象サーバである。
【０２１０】
そして、サーバ＃ｉは、隔離状態管理テーブル９００を作成して初期化する（ステップＳ２５０２）。つぎに、サーバ＃ｉは、接続中のクライアント装置＄１〜＄４からいずれかのクライアント装置＄ｊを選択する（ステップＳ２５０３）。
【０２１１】
そして、サーバ＃ｉは、クライアント装置＄ｊに対するハートビートＨＢを作成する（ステップＳ２５０４）。つぎに、サーバ＃ｉは、作成したハートビートＨＢに隔離指示種別「３」を設定するとともに隔離情報Ｄ３を付加する（ステップＳ２５０５）。そして、サーバ＃ｉは、業務ＬＡＮを用いて、ハートビートＨＢをクライアント装置＄ｊに送信する（ステップＳ２５０６）。
【０２１２】
つぎに、サーバ＃ｉは、接続中のクライアント装置＄１〜＄４から選択されていない未選択のクライアント装置があるか否かを判断する（ステップＳ２５０７）。ここで、未選択のクライアント装置がある場合（ステップＳ２５０７：Ｙｅｓ）、サーバ＃ｉは、ステップＳ２５０３に戻る。
【０２１３】
一方、未選択のクライアント装置がない場合（ステップＳ２５０７：Ｎｏ）、サーバ＃ｉは、図２６に示すステップＳ２６０１に移行する。
【０２１４】
図２６のフローチャートにおいて、まず、サーバ＃ｉは、受信処理開始時刻ｔ１を取得する（ステップＳ２６０１）。つぎに、サーバ＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信したか否かを判断する（ステップＳ２６０２）。
【０２１５】
ここで、サーバ＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信するのを待つ（ステップＳ２６０２：Ｎｏ）。そして、サーバ＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信した場合（ステップＳ２６０２：Ｙｅｓ）、受信したハートビートＨＢに隔離指示種別「４」が設定されているか否かを判断する（ステップＳ２６０３）。
【０２１６】
ここで、隔離指示種別「４」が設定されていない場合（ステップＳ２６０３：Ｎｏ）、サーバ＃ｉは、ステップＳ２６０２に戻る。一方、隔離指示種別「４」が設定されている場合（ステップＳ２６０３：Ｙｅｓ）、サーバ＃ｉは、隔離状態管理テーブル９００のクライアント装置＄ｊの完了状態に「１」を設定する（ステップＳ２６０４）。
【０２１７】
つぎに、サーバ＃ｉは、隔離状態管理テーブル９００を参照して、全てのクライアント装置＄１〜＄４の完了状態が「１」となっているか否かを判断する（ステップＳ２６０５）。ここで、全てのクライアント装置＄１〜＄４の完了状態が「１」となっている場合（ステップＳ２６０５：Ｙｅｓ）、サーバ＃ｉは、隔離対象サーバの隔離解除は「成功」と判断して（ステップＳ２６０６）、ステップＳ２６１０に移行する。
【０２１８】
一方、全てのクライアント装置＄１〜＄４の完了状態が「１」となっていない場合（ステップＳ２６０５：Ｎｏ）、サーバ＃ｉは、現在時刻ｔ２を取得する（ステップＳ２６０７）。そして、サーバ＃ｉは、受信処理開始時刻ｔ１から現在時刻ｔ２までの経過時間がタイムアウト時間Ｔ＿ｏｕｔ未満か否かを判断する（ステップＳ２６０８）。
【０２１９】
ここで、タイムアウト時間Ｔ＿ｏｕｔ未満の場合（ステップＳ２６０８：Ｙｅｓ）、サーバ＃ｉは、ステップＳ２６０２に戻る。一方、タイムアウト時間Ｔ＿ｏｕｔ以上の場合（ステップＳ２６０８：Ｎｏ）、サーバ＃ｉは、隔離対象サーバの隔離解除は「不要」と判断する（ステップＳ２６０９）。
【０２２０】
そして、サーバ＃ｉは、隔離状態管理テーブル９００を削除して（ステップＳ２６１０）、隔離解除処理を呼び出したステップに戻る。
【０２２１】
これにより、接続中の全てのクライアント装置＄１〜＄４において隔離解除対象サーバの隔離解除処理が「完了」または「不要」と判断したことに応じて、隔離解除対象サーバの隔離解除処理を完了することができる。
【０２２２】
＜組込対象サーバの組込処理手順＞
つぎに、図２７を用いて、組込対象サーバの組込処理手順について説明する。この組込処理は、組込対象サーバが、組込対象サーバの組込指示を受け付けた場合の処理である。ここでは、組込対象サーバを「サーバ＃ｉ」と表記する。
【０２２３】
図２７は、組込対象サーバの組込処理手順の一例を示すフローチャートである。図２７のフローチャートにおいて、まず、サーバ＃ｉは、組込対象サーバの組込指示を受け付けたか否かを判断する（ステップＳ２７０１）。
【０２２４】
ここで、サーバ＃ｉは、組込対象サーバの組込指示を受け付けるのを待つ（ステップＳ２７０１：Ｎｏ）。そして、サーバ＃ｉは、組込対象サーバの組込指示を受け付けた場合（ステップＳ２７０１：Ｙｅｓ）、現用系／待機系サーバに組込対象サーバの組込指示を送信する（ステップＳ２７０２）。
【０２２５】
つぎに、サーバ＃ｉは、自サーバの組込処理を実行する（ステップＳ２７０３）。そして、サーバ＃ｉは、隔離対象サーバリスト１０００を更新する（ステップＳ２７０４）。つぎに、サーバ＃ｉは、現用系／待機系サーバと通信することにより、組込対象サーバの組込処理を完了して（ステップＳ２７０５）、本フローチャートによる一連の処理を終了する。これにより、自サーバをクラスタシステム２１０に組み込むことができる。
【０２２６】
＜クライアント装置＄ｊのハートビート受信処理手順＞
つぎに、図２８を用いて、クライアント装置＄ｊのハートビート受信処理手順について説明する。
【０２２７】
図２８は、クライアント装置＄ｊのハートビート受信処理手順の一例を示すフローチャート（その２）である。図２８のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信したか否かを判断する（ステップＳ２８０１）。
【０２２８】
ここで、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信するのを待つ（ステップＳ２８０１：Ｎｏ）。そして、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信した場合（ステップＳ２８０１：Ｙｅｓ）、ハートビート監視処理を実行する（ステップＳ２８０２）。
【０２２９】
つぎに、クライアント装置＄ｊは、隔離対象サーバリスト１０００を参照して、受信したハートビートＨＢが、既知の隔離対象サーバからのハートビートＨＢか否かを判断する（ステップＳ２８０３）。ここで、既知の隔離対象サーバからのハートビートＨＢの場合（ステップＳ２８０３：Ｙｅｓ）、クライアント装置＄ｊは、本フローチャートによる一連の処理を終了する。
【０２３０】
一方、既知の隔離対象サーバからのハートビートＨＢではない場合（ステップＳ２８０３：Ｎｏ）、クライアント装置＄ｊは、ハートビートＨＢに隔離指示種別「３」が設定されているか否かを判断する（ステップＳ２８０４）。ここで、隔離指示種別「３」が設定されていない場合（ステップＳ２８０４：Ｎｏ）、クライアント装置＄ｊは、本フローチャートによる一連の処理を終了する。
【０２３１】
一方、隔離指示種別「３」が設定されている場合（ステップＳ２８０４：Ｙｅｓ）、クライアント装置＄ｊは、隔離対象サーバリスト１０００から、ハートビートＨＢに付加された隔離情報Ｄ３に含まれる隔離解除対象サーバのＩＰアドレスを削除する（ステップＳ２８０５）。そして、クライアント装置＄ｊは、隔離指示フラグを「０」から「３」に変更して（ステップＳ２８０６）、本フローチャートによる一連の処理を終了する。
【０２３２】
これにより、サーバ＃ｉからのハートビートＨＢに付加されている隔離情報Ｄ３から特定される隔離解除対象サーバの隔離状態を解除することができる。
【０２３３】
＜クライアント装置＄ｊのハートビート送信処理手順＞
つぎに、図２９を用いて、クライアント装置＄ｊのハートビート送信処理手順について説明する。
【０２３４】
図２９は、クライアント装置＄ｊのハートビート送信処理手順の一例を示すフローチャート（その２）である。図２９のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉに対するハートビートＨＢを作成する（ステップＳ２９０１）。つぎに、クライアント装置＄ｊは、隔離指示フラグが「３」か否かを判断する（ステップＳ２９０２）。
【０２３５】
ここで、隔離指示フラグが「０」の場合（ステップＳ２９０２：Ｎｏ）、クライアント装置＄ｊは、業務ＬＡＮを用いて、作成したハートビートＨＢをサーバ＃ｉに送信して（ステップＳ２９０３）、本フローチャートによる一連の処理を終了する。
【０２３６】
一方、隔離指示フラグが「３」の場合（ステップＳ２９０２：Ｙｅｓ）、クライアント装置＄ｊは、図２８に示したステップＳ２８０５において隔離対象サーバリスト１０００から削除した隔離解除対象サーバのサーバ数とＩＰアドレスを設定した隔離情報Ｄ４を生成する（ステップＳ２９０４）。
【０２３７】
そして、クライアント装置＄ｊは、作成したハートビートＨＢに隔離指示種別「４」を設定するとともに隔離情報Ｄ４を付加する（ステップＳ２９０５）。つぎに、クライアント装置＄ｊは、業務ＬＡＮを用いて、ハートビートＨＢをサーバ＃ｉに送信する（ステップＳ２９０６）。
【０２３８】
そして、クライアント装置＄ｊは、隔離指示フラグを「３」から「０」に変更して（ステップＳ２９０７）、本フローチャートによる一連の処理を終了する。これにより、隔離解除対象サーバの隔離解除処理が完了したことを示す隔離解除指示応答をサーバ＃ｉに通知することができる。
【０２３９】
（サーバ間で隔離情報が異なる場合の対処例）
つぎに、業務ＬＡＮを用いたハートビート通信によりサーバ＃ｉからクライアント装置＄ｊに送信される隔離情報（例えば、隔離情報Ｄ１，Ｄ３）がサーバ間で異なる場合の対処例について説明する。
【０２４０】
ここで、サーバ＃ｉとクライアント装置＄ｊとのセッションをマルチキャストで確立する場合、クライアント装置＄ｊからのセッション確立要求に対して、隔離対象サーバも含む全てのサーバ＃１〜＃３からそれぞれ応答が返ってくる可能性がある。この際、クライアント装置＄ｊは、各サーバ＃１〜＃３から送信される隔離情報（例えば、隔離情報Ｄ１）が同一でない場合、どのサーバが本当の隔離対象サーバか判断できなくなり、クライアント装置側で異常発生サーバとの通信閉塞を実施できなくなることがある。
【０２４１】
本実施の形態では、隔離対象サーバ数が一致し、かつ、隔離対象サーバが異なるという状態を排除することにより、セッション確立時の隔離情報の整合性を保証する。具体的には、本実施の形態では、各サーバ＃１〜＃３が認識している隔離対象サーバ数と隔離対象サーバの組み合わせは、例えば、図３０に示す対応表３０００のようになる。
【０２４２】
図３０は、隔離対象サーバ数と隔離対象サーバの組み合わせを示す説明図である。図３０において、対応表３０００は、隔離対象サーバ数と隔離対象サーバの組み合わせを示す。ただし、対応表３０００に示す組み合わせは、サーバ＃１，＃２，＃３の順番で隔離したという仮定であり得る状態である。
【０２４３】
組み合わせ１〜９は、クラスタシステム２１０が３ノード構成、すなわち、３台のサーバから構成される場合の隔離対象サーバ数と隔離対象サーバの組み合わせである。また、組み合わせ１０〜１２は、クラスタシステム２１０が２ノード構成、すなわち、２台のサーバから構成される場合の隔離対象サーバ数と隔離対象サーバの組み合わせである。
【０２４４】
なお、異常発生サーバにもクライアント装置＄ｊから業務ＬＡＮを用いたハートビート通信により最新の隔離情報が配付されるため、各サーバ間で隔離情報が異なる状況は一時的である。ただし、ハートビートＨＢとセッション確立のすれ違いがあるため、対応表３０００に示す全ての組み合わせに対応する必要がある。図３０中、「★」は、該当する状態において、正常なサーバから、異常発生サーバと見なされているサーバを示す。
【０２４５】
ここで、組み合わせ１，１０は、隔離対象サーバが存在しないため、通常通りのセッション確立となる。また、組み合わせ３，９，１２のように、各サーバ間で隔離情報が一致する場合は、セッション確立時に不整合は発生しないため、クライアント装置＄ｊにおける異常発生サーバの特定に問題は生じない。
【０２４６】
一方、各サーバで隔離情報が一致しない場合は、本実施の形態では、必ず対応表３０００のいずれかの状態になることを保証できる。このことから、クライアント装置＄ｊは、各サーバから受信した隔離情報の中で、最も隔離対象サーバ数が多い隔離情報を採用することができる。これにより、各サーバ間で隔離情報が一致していない状態でセッションを確立した場合でも隔離情報に不整合が発生することを防ぐことができる。
【０２４７】
具体的には、例えば、下記（処理１）、（処理２）および（処理３）の仕組みにより、各サーバが認識している隔離対象サーバ数と隔離対象サーバが対応表３０００のいずれかの状態となるようにする。
【０２４８】
（処理１）正常なサーバ（現用系／待機系サーバ）間で隔離対象サーバを意識合わせした後に、正常なサーバそれぞれで異常発生サーバを隔離する。これにより、正常なサーバ間で隔離情報を統一することができる。
【０２４９】
（処理２）正常なサーバ（現用系／待機系サーバ）のいずれかで、異常発生サーバの隔離に成功したら、正常な各サーバの隔離情報（隔離対象サーバリスト１０００）を更新する。
【０２５０】
（処理３）業務ＬＡＮを用いて通信できる状態の異常発生サーバに対しては、クライアント装置＄ｊが業務ＬＡＮを用いたハートビート通信により最新の隔離情報を配付する。
【０２５１】
以上説明したように、実施の形態１にかかるサーバ＃ｉによれば、現用系サーバ＃ｋの異常を検知した場合、隔離対象サーバのＩＰアドレスとして、現用系サーバ＃ｋのＩＰアドレスを設定した隔離情報Ｄ１を生成することができる。また、サーバ＃ｉによれば、業務ＬＡＮを用いて、隔離指示種別「１」を設定するとともに隔離情報Ｄ１を付加したハートビートＨＢ１を接続中の全てのクライアント装置＄１〜＄４に送信することができる。これにより、業務ＬＡＮを用いたハートビート通信により、接続中の全てのクライアント装置＄１〜＄４に対して、異常が発生した現用系サーバ＃ｋの隔離要求を通知することができる。
【０２５２】
また、実施の形態１にかかるクライアント装置＄ｊによれば、業務ＬＡＮを用いて、隔離指示種別「１」が設定され、かつ、隔離情報Ｄ１が付加されたハートビートＨＢ１をサーバ＃ｉから受信することができる。また、クライアント装置＄ｊによれば、ハートビートＨＢ１に付加された隔離情報Ｄ１から特定される隔離対象サーバのＩＰアドレスを隔離対象サーバリスト１０００に登録することができる。
【０２５３】
また、クライアント装置＄ｊによれば、隔離対象サーバリスト１０００から隔離対象サーバのＩＰアドレスを特定して、隔離対象サーバのＩＰアドレスを送信元のＩＰアドレスとするデータを破棄することができる。これにより、サーバ＃ｉからハートビートＨＢ１を受信したことに応じて、異常が発生した現用系サーバ＃ｋとの通信を閉塞、すなわち、現用系サーバ＃ｋを隔離することができる。
【０２５４】
また、クライアント装置＄ｊによれば、隔離済みの隔離対象サーバのＩＰアドレスとして、隔離対象サーバリスト１０００に登録したＩＰアドレスを設定した隔離情報Ｄ２を生成することができる。また、クライアント装置＄ｊによれば、業務ＬＡＮを用いて、隔離指示種別「２」を設定するとともに隔離情報Ｄ２を付加したハートビートＨＢ２をサーバ＃ｉに送信することができる。これにより、業務ＬＡＮを用いたハートビート通信により、サーバ＃ｉに対して、異常が発生した現用系サーバ＃ｋの隔離応答を通知することができる。
【０２５５】
また、クライアント装置＄ｊによれば、サーバ＃１〜＃３に割り振られた仮想ＩＰアドレスを用いて、異常が検知された現用系サーバ＃ｋを含む全てのサーバ＃１〜＃３にハートビートＨＢ２を送信することができる。これにより、異常が検知された現用系サーバ＃ｋは、ハートビートＨＢ２を受信することができる状態であれば、自身が異常であることを認識することができる。例えば、切替元サーバ（異常サーバ）と切替先サーバとの間の管理ＬＡＮが途絶した場合でも、切替先サーバ→クライアント装置→切替元サーバという流れで、切替元サーバに隔離情報を配付することができる。
【０２５６】
また、サーバ＃ｉによれば、クライアント装置＄ｊからハートビートＨＢ２を受信したことに応じて、クライアント装置＄ｊにおいて隔離対象サーバの隔離処理が完了したと判断することができる。また、サーバ＃ｉによれば、ハートビートＨＢ１を送信してからタイムアウト時間Ｔ＿ｏｕｔ経過しても、クライアント装置＄ｊからハートビートＨＢ２を受信しなかった場合、クライアント装置＄ｊにおいて隔離対象サーバの隔離処理が不要であると判断することができる。
【０２５７】
これにより、全てのクライアント装置＄１〜＄４からハートビートＨＢ２を受信したことに応じて、または、クライアント装置＄１〜＄４にハートビートＨＢ１を送信してからタイムアウト時間Ｔ＿ｏｕｔ経過後に、隔離対象サーバの隔離処理が完了したと判断することができる。このため、例えば、ハートビートＨＢ１がネットワーク２３０上でロストした場合やクライアント装置＄ｊが隔離要求に対する隔離応答を返せない状況であっても、隔離対象サーバの隔離処理の完了を確定することができる。
【０２５８】
また、サーバ＃ｉによれば、現用系サーバ＃ｋの異常を検知した場合、現用系サーバ＃ｋの電源を制御する電源制御装置＃ｋに電源停止指示を送信することができる。これにより、電源制御装置＃ｋにより現用系サーバ＃ｋの電源を停止することができる。
【０２５９】
また、サーバ＃ｉによれば、電源制御装置＃ｋから電源停止応答を受信した場合、または、クライアント装置＄１〜＄４における隔離対象サーバの隔離処理が完了した場合に、現用系サーバを、異常が発生したサーバ＃ｋから自サーバに変更することができる。
【０２６０】
これらのことから、実施の形態１にかかる情報処理システム２００によれば、異常が発生した現用系サーバ＃ｋが半死状態等で正常に動作しない状況であっても、異常が発生した現用系サーバ＃ｋをクラスタシステム２１０から切り離すことができる。
【０２６１】
また、現用系サーバ＃ｋの電源制御装置＃ｋまたは電源制御装置＃ｋに至るネットワークに異常が発生した状況であっても、異常が発生した現用系サーバ＃ｋをクラスタシステム２１０から切り離すことができる。具体的には、例えば、電源制御装置＃ｋに異常が発生した状況であっても、クライアント装置＄１〜＄４における隔離対象サーバの隔離処理が完了した時点でサーバ切替を行うことができる。
【０２６２】
これにより、電源制御装置＃ｋの異常時に、電源制御装置＃ｋのタイムアウト時間（例えば、６０秒）から電源制御装置＃ｋの異常を検知してサーバ切替を行う場合に比べて、サーバ切替にかかる時間を短縮することができる。例えば、ハートビート通信のタイムアウト時間Ｔ＿ｏｕｔを「５秒」とすると、サーバ切替にかかる時間を５秒以下に短縮することができる。また、全てのクライアント装置＄１〜＄４において隔離対象サーバの隔離処理が正常に完了した場合は、例えば、サーバ切替にかかる時間を１秒以下に短縮することができる。
【０２６３】
また、クライアント装置＄ｊから現用系サーバ＃ｋにアクセスする際に仮想ＩＰアドレスを使用する場合でも、クライアント装置＄ｊ側で、異常が発生した現用系サーバ＃ｋとの通信を閉塞することができる。また、仮想環境や現用系サーバ＃ｋに電源制御装置＃ｋが存在しない環境においても、異常が発生した現用系サーバ＃ｋをクラスタシステム２１０から切り離すことができる。
【０２６４】
また、サーバ＃ｉによれば、クライアント装置＄ｊからのセッションの確立要求を受信したことに応じて、要求元のクライアント装置＄ｊにハートビートＨＢ１を送信することができる。これにより、ハングアップ等の半死状態から再び正常に稼働し始めたクライアント装置＄ｊや新規接続されたクライアント装置に対して、隔離対象サーバの隔離要求を通知することができる。
【０２６５】
すなわち、情報処理システム２００によれば、クラスタシステム２１０を構成するサーバ、クライアント装置、各種装置（例えば、電源制御装置、ネットワーク機器等）、ネットワークのいずれの箇所で異常が発生した場合であってもフェイルオーバーを実現することができる。
【０２６６】
（実施の形態２）
つぎに、実施の形態２にかかる情報処理システム２００について説明する。実施の形態２では、ハートビートＨＢに隔離指示種別情報４０２（図４参照）を含まない場合について説明する。なお、実施の形態１で説明した箇所と同様の箇所については図示および説明を省略する。
【０２６７】
（ハートビートＨＢの電文形式）
まず、実施の形態２にかかるハートビートＨＢの電文形式について説明する。
【０２６８】
図３１は、ハートビートＨＢの電文形式の一例を示す説明図（その２）である。図３１において、ハートビートＨＢは、ハートビート情報３１０１を含む。ハートビート情報３１０１は、自身が正常に稼働していることを示す情報であり、例えば、送信元のコンピュータ（サーバ＃ｉ、クライアント装置＄ｊ）を識別する情報、例えば、ノード番号やＩＰアドレスを含む。
【０２６９】
（ハートビートＨＢの具体例）
つぎに、ハートビートＨＢの具体例について説明する。
【０２７０】
図３２は、ハートビートＨＢの具体例を示す説明図（その５）である。図３２において、ハートビートＨＢは、ハートビート情報３１０１と、隔離情報Ｄと、を含む。隔離情報Ｄは、隔離対象サーバのサーバ数と隔離対象サーバのＩＰアドレスを含む。
【０２７１】
具体的には、図３２中（３２−１）に示すハートビートＨＢは、隔離対象サーバのサーバ数が「１」の場合の例である。この場合、隔離情報Ｄには、隔離対象サーバのサーバ数「１」と隔離対象サーバ１のＩＰアドレスが設定される。また、図３２中（３２−２）に示すハートビートＨＢは、隔離対象サーバのサーバ数が「２」の場合の例である。この場合、隔離情報Ｄには、隔離対象サーバのサーバ数「２」と隔離対象サーバ１，２のＩＰアドレスが設定される。
【０２７２】
（情報処理システム２００の各種処理手順）
つぎに、実施の形態２にかかる情報処理システム２００の各種処理手順について説明する。まず、サーバ＃ｉ（現用系／待機系サーバ）の切替処理手順について説明する。ただし、隔離対象サーバの隔離処理以外の処理手順は、図１６に示した待機系サーバの第１切替処理手順および図１９に示した待機系サーバの第２切替処理手順と同様のため、ここでは、サーバ＃ｉにおける隔離対象サーバの隔離処理手順についてのみ説明する。
【０２７３】
図３３および図３４は、実施の形態２にかかるサーバ＃ｉの隔離処理手順の一例を示すフローチャートである。図３３のフローチャートにおいて、まず、サーバ＃ｉの通信制御部＃ｉは、隔離状態管理テーブル９００を作成して初期化する（ステップＳ３３０１）。つぎに、通信制御部＃ｉは、接続中のクライアント装置＄１〜＄４からいずれかのクライアント装置＄ｊを選択する（ステップＳ３３０２）。
【０２７４】
そして、通信制御部＃ｉは、クライアント装置＄ｊに対するハートビートＨＢを作成する（ステップＳ３３０３）。つぎに、通信制御部＃ｉは、作成したハートビートＨＢに隔離情報Ｄを付加する（ステップＳ３３０４）。そして、通信制御部＃ｉは、業務ＬＡＮを用いて、ハートビートＨＢをクライアント装置＄ｊに送信する（ステップＳ３３０５）。
【０２７５】
つぎに、通信制御部＃ｉは、接続中のクライアント装置＄１〜＄４から選択されていない未選択のクライアント装置があるか否かを判断する（ステップＳ３３０６）。ここで、未選択のクライアント装置がある場合（ステップＳ３３０６：Ｙｅｓ）、通信制御部＃ｉは、ステップＳ３３０２に戻る。
【０２７６】
一方、未選択のクライアント装置がない場合（ステップＳ３３０６：Ｎｏ）、通信制御部＃ｉは、図３４に示すステップＳ３４０１に移行する。
【０２７７】
図３４のフローチャートにおいて、まず、通信制御部＃ｉは、受信処理開始時刻ｔ１を取得する（ステップＳ３４０１）。つぎに、通信制御部＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信したか否かを判断する（ステップＳ３４０２）。
【０２７８】
ここで、通信制御部＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信するのを待つ（ステップＳ３４０２：Ｎｏ）。そして、通信制御部＃ｉは、クライアント装置＄ｊからハートビートＨＢを受信した場合（ステップＳ３４０２：Ｙｅｓ）、受信したハートビートＨＢから隔離情報Ｄを取得する（ステップＳ３４０３）。
【０２７９】
つぎに、通信制御部＃ｉは、隔離対象サーバリスト１０００を参照して、自サーバで認識している隔離対象サーバ数と、取得した隔離情報Ｄから特定される隔離対象サーバ数とが一致するか否かを判断する（ステップＳ３４０４）。ここで、隔離対象サーバ数が一致しない場合（ステップＳ３４０４：Ｎｏ）、通信制御部＃ｉは、ステップＳ３４０２に戻る。
【０２８０】
一方、隔離対象サーバ数が一致する場合（ステップＳ３４０４：Ｙｅｓ）、通信制御部＃ｉは、隔離状態管理テーブル９００のクライアント装置＄ｊの完了状態に「１」を設定する（ステップＳ３４０５）。そして、通信制御部＃ｉは、隔離状態管理テーブル９００を参照して、全てのクライアント装置＄１〜＄４の完了状態が「１」となっているか否かを判断する（ステップＳ３４０６）。
【０２８１】
ここで、全てのクライアント装置＄１〜＄４の完了状態が「１」となっている場合（ステップＳ３４０６：Ｙｅｓ）、通信制御部＃ｉは、隔離対象サーバの隔離は「成功」と判断して（ステップＳ３４０７）、ステップＳ３４１１に移行する。
【０２８２】
一方、全てのクライアント装置＄１〜＄４の完了状態が「１」となっていない場合（ステップＳ３４０６：Ｎｏ）、通信制御部＃ｉは、現在時刻ｔ２を取得する（ステップＳ３４０８）。そして、通信制御部＃ｉは、受信処理開始時刻ｔ１から現在時刻ｔ２までの経過時間がタイムアウト時間Ｔ＿ｏｕｔ未満か否かを判断する（ステップＳ３４０９）。
【０２８３】
ここで、タイムアウト時間Ｔ＿ｏｕｔ未満の場合（ステップＳ３４０９：Ｙｅｓ）、通信制御部＃ｉは、ステップＳ３４０２に戻る。一方、タイムアウト時間Ｔ＿ｏｕｔ以上の場合（ステップＳ３４０９：Ｎｏ）、通信制御部＃ｉは、隔離対象サーバの隔離は「不要」と判断する（ステップＳ３４１０）。
【０２８４】
つぎに、通信制御部＃ｉは、クラスタ制御部＃ｉに隔離処理完了通知を送信する（ステップＳ３４１１）。そして、通信制御部＃ｉは、隔離状態管理テーブル９００を削除して（ステップＳ３４１２）、隔離処理を呼び出したステップに戻る。
【０２８５】
これにより、接続中の全てのクライアント装置＄１〜＄４において隔離対象サーバの隔離処理が「完了」または「不要」と判断したことに応じて、隔離対象サーバの隔離処理を完了することができる。
【０２８６】
＜クライアント装置＄ｊのハートビート受信処理手順＞
つぎに、図３５を用いて、実施の形態２にかかるクライアント装置＄ｊのハートビート受信処理手順について説明する。
【０２８７】
図３５は、実施の形態２にかかるクライアント装置＄ｊのハートビート受信処理手順の一例を示すフローチャートである。図３５のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信したか否かを判断する（ステップＳ３５０１）。
【０２８８】
ここで、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信するのを待つ（ステップＳ３５０１：Ｎｏ）。そして、クライアント装置＄ｊは、サーバ＃ｉからハートビートＨＢを受信した場合（ステップＳ３５０１：Ｙｅｓ）、ハートビート監視処理を実行する（ステップＳ３５０２）。
【０２８９】
つぎに、クライアント装置＄ｊは、隔離対象サーバリスト１０００を参照して、受信したハートビートＨＢが、既知の隔離対象サーバからのハートビートＨＢか否かを判断する（ステップＳ３５０３）。ここで、既知の隔離対象サーバからのハートビートＨＢの場合（ステップＳ３５０３：Ｙｅｓ）、クライアント装置＄ｊは、本フローチャートによる一連の処理を終了する。
【０２９０】
一方、既知の隔離対象サーバからのハートビートＨＢではない場合（ステップＳ３５０３：Ｎｏ）、クライアント装置＄ｊは、受信したハートビートＨＢから隔離情報Ｄを取得する（ステップＳ３５０４）。
【０２９１】
つぎに、クライアント装置＄ｊの通信制御部＄ｊは、隔離対象サーバリスト１０００を参照して、自装置で認識している隔離対象サーバ数と、取得した隔離情報Ｄから特定される隔離対象サーバ数とが一致するか否かを判断する（ステップＳ３５０５）。ここで、隔離対象サーバ数が一致する場合（ステップＳ３５０５：Ｙｅｓ）、クライアント装置＄ｊは、本フローチャートによる一連の処理を終了する。
【０２９２】
一方、隔離対象サーバ数が一致しない場合（ステップＳ３５０５：Ｎｏ）、クライアント装置＄ｊは、隔離情報Ｄに含まれる隔離対象サーバのＩＰアドレスを隔離対象サーバリスト１０００に上書きして（ステップＳ３５０６）、本フローチャートによる一連の処理を終了する。
【０２９３】
これにより、サーバ＃ｉからのハートビートＨＢに付加されている隔離情報Ｄから特定される隔離対象サーバを隔離することができる。
【０２９４】
＜クライアント装置＄ｊのハートビート送信処理手順＞
つぎに、図３６を用いて、実施の形態２にかかるクライアント装置＄ｊのハートビート送信処理手順について説明する。
【０２９５】
図３６は、実施の形態２にかかるクライアント装置＄ｊのハートビート送信処理手順の一例を示すフローチャートである。図３６のフローチャートにおいて、まず、クライアント装置＄ｊは、サーバ＃ｉに対するハートビートＨＢを作成する（ステップＳ３６０１）。
【０２９６】
そして、クライアント装置＄ｊは、隔離対象サーバリスト１０００に登録されている隔離対象サーバのサーバ数とＩＰアドレスを設定した隔離情報Ｄを生成する（ステップＳ３６０２）。つぎに、クライアント装置＄ｊは、作成したハートビートＨＢに隔離情報Ｄを付加する（ステップＳ３６０３）。
【０２９７】
そして、クライアント装置＄ｊは、業務ＬＡＮを用いて、ハートビートＨＢをサーバ＃ｉに送信して（ステップＳ３６０４）、本フローチャートによる一連の処理を終了する。これにより、隔離対象サーバの隔離処理が完了したことをサーバ＃ｉに通知することができる。なお、上述した説明では、隔離対象サーバの隔離処理について説明したが、隔離解除対象サーバの隔離解除処理も同様である。
【０２９８】
以上説明したように、実施の形態２にかかるサーバ＃ｉによれば、自サーバで認識している隔離対象サーバ数と、クライアント装置＄ｊから受信したハートビートＨＢに付加されている隔離情報Ｄから特定される隔離対象サーバ数とが一致するか否かを判断できる。これにより、ハートビートＨＢに隔離指示種別を含まなくても、隔離対象サーバ数が一致するか否かに応じて、クライアント装置＄ｊにおける隔離対象サーバの隔離処理が完了したか否かを判断することができる。
【０２９９】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０３００】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０３０１】
（付記１）端末装置と、前記端末装置からの処理要求に応じた処理を実行する現用系装置と、前記現用系装置に対応する待機系装置と、を含む情報処理システムの制御方法であって、
前記待機系装置が、前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信し、
前記端末装置が、前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更するとともに、前記装置情報を受信した旨の応答通知を前記待機系装置に送信し、
前記待機系装置が、前記応答通知を受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する、
処理を実行することを特徴とする制御方法。
【０３０２】
（付記２）前記現用系装置の異常は、前記現用系装置と前記待機系装置との通信が途絶したことを含むことを特徴とする付記１に記載の制御方法。
【０３０３】
（付記３）前記待機系装置が、前記端末装置に対して前記待機系装置が正常に稼働していることを報知するハートビートに前記装置情報を付加して、前記端末装置に前記ハートビートを送信し、
前記端末装置が、前記待機系装置に対して前記端末装置が正常に稼働していることを報知するハートビートに前記応答通知を付加して、前記待機系装置に前記ハートビートを送信することを特徴とする付記１または２に記載の制御方法。
【０３０４】
（付記４）前記端末装置が複数存在する場合、前記待機系装置が、全ての端末装置から前記応答通知を受信したことに応じて、または、前記装置情報を送信してから一定時間経過後に、前記端末装置からの処理要求に応じた処理を実行する状態に変更することを特徴とする付記１〜３のいずれか一つに記載の制御方法。
【０３０５】
（付記５）前記待機系装置が、前記応答通知を受信しなかった端末装置、または、前記待機系装置に新規接続された端末装置のいずれかの端末装置から通信路の確立要求を受信したことに応じて、前記いずれかの端末装置に前記装置情報を送信することを特徴とする付記４に記載の制御方法。
【０３０６】
（付記６）前記待機系装置が、前記現用系装置の異常を検知した場合、さらに、前記現用系装置の電源を制御する電源制御装置に電源停止指示を送信し、前記端末装置から前記応答通知を受信したことに応じて、または、前記電源制御装置から前記現用系装置の電源を停止したことを示す電源停止応答を受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更することを特徴とする付記１〜５のいずれか一つに記載の制御方法。
【０３０７】
（付記７）前記端末装置が、さらに、前記現用系装置に対して前記端末装置が正常に稼働していることを報知するハートビートに前記応答通知を付加して、前記現用系装置に前記ハートビートを送信し、
前記現用系装置が、前記応答通知が付加された前記ハートビートを受信したことに応じて、前記端末装置との通信を切断することを特徴とする付記３に記載の制御方法。
【０３０８】
（付記８）端末装置からの処理要求に応じた処理を実行する現用系装置に対応する待機系装置に、
前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信し、
送信した前記装置情報を受信した旨の応答通知を前記端末装置から受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する、
処理を実行させることを特徴とする制御プログラム。
【０３０９】
（付記９）端末装置からの処理要求に応じた処理を実行する現用系装置に対応する待機系装置から前記現用系装置を特定する装置情報を受信し、
前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更し、
前記現用系装置からのデータを破棄する状態に変更した場合、前記装置情報を受信した旨の応答通知を前記待機系装置に送信する、
処理を前記端末装置に実行させることを特徴とする制御プログラム。
【０３１０】
（付記１０）端末装置と、前記端末装置からの処理要求に応じた処理を実行する現用系装置と、前記現用系装置に対応する待機系装置と、を含む情報処理システムであって、
前記待機系装置は、前記現用系装置の異常を検知した場合、前記現用系装置を特定する装置情報を前記端末装置に送信する第１送信部と、前記第１送信部によって送信された前記装置情報を受信した旨の応答通知を前記端末装置から受信したことに応じて、前記端末装置からの処理要求に応じた処理を実行する状態に変更する第１変更部と、を有し、
前記端末装置は、前記装置情報を受信したことに応じて、前記現用系装置からのデータを破棄する状態に変更する第２変更部と、前記第２変更部によって前記現用系装置からのデータを破棄する状態に変更された場合、前記装置情報を受信した旨の応答通知を前記待機系装置に送信する第２送信部と、を有することを特徴とする情報処理システム。
【符号の説明】
【０３１１】
１００，２１０  クラスタシステム
１０１  現用系装置
１０２  待機系装置
１０３  端末装置
１１０  装置情報
１２０  応答通知
２００  情報処理システム
１１０１  検知部
１１０２，１２０３  生成部
１１０３，１２０４  送信部
１１０４，１２０１  受信部
１１０５  判断部
１１０６  切替部
１１０７  受付部
１１０８  組込部
１２０２  隔離部
＃１〜＃３  サーバ
＄１〜＄４  クライアント装置
【図１】
2015011472.tif 000003
【図２】
2015011472.tif 000004
【図３】
2015011472.tif 000005
【図４】
2015011472.tif 000006
【図５】
2015011472.tif 000007
【図６】
2015011472.tif 000008
【図７】
2015011472.tif 000009
【図８】
2015011472.tif 000010
【図９】
2015011472.tif 000011
【図１０】
2015011472.tif 000012
【図１１】
2015011472.tif 000013
【図１２】
2015011472.tif 000014
【図１３】
2015011472.tif 000015
【図１４】
2015011472.tif 000016
【図１５】
2015011472.tif 000017
【図１６】
2015011472.tif 000018
【図１７】
2015011472.tif 000019
【図１８】
2015011472.tif 000020
【図１９】
2015011472.tif 000021
【図２０】
2015011472.tif 000022
【図２１】
2015011472.tif 000023
【図２２】
2015011472.tif 000024
【図２３】
2015011472.tif 000025
【図２４】
2015011472.tif 000026
【図２５】
2015011472.tif 000027
【図２６】
2015011472.tif 000028
【図２７】
2015011472.tif 000029
【図２８】
2015011472.tif 000030
【図２９】
2015011472.tif 000031
【図３０】
2015011472.tif 000032
【図３１】
2015011472.tif 000033
【図３２】
2015011472.tif 000034
【図３３】
2015011472.tif 000035
【図３４】
2015011472.tif 000036
【図３５】
2015011472.tif 000037
【図３６】
2015011472.tif 000038