(57)【要約】【課題】現行のサーバ負荷分散装置は、一定時間エラーが継続した場合に復旧不可能と判断して切り離しを実施するため、生死不明状態のサーバへ新たな処理が振り分けられ、結果的に処理できずにエラー終了することがあった。【解決手段】サーバ負荷分散装置２は、入力される複数のトランザクションを複数のサーバへ振り分ける振分手段２１と、一定間隔で前記複数のサーバの異常監視を行い、初めて異常を検出したサーバをプリエラーと認識してプリエラー信号を出力するサーバ監視手段２２と、を有し、振分手段２１は、プリエラー信号が入力されると、プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止する。これにより、生死不明状態のサーバへの新たな処理の振り分けが抑止されるので、処理されずにエラー終了することが軽減される。【選択図】図４
2015118480.tif 000002
【特許請求の範囲】
【請求項１】
入力される複数のトランザクションを複数のサーバへ振り分ける振分手段と、
一定間隔の正常時監視間隔で前記複数のサーバの監視を行い、初めて異常を検出したサーバをプリエラーと認識してプリエラー信号を出力するサーバ監視手段と、を有し、
前記振分手段は、前記プリエラー信号が入力されると、前記プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止することを特徴とするサーバ負荷分散装置。
【請求項２】
前記サーバ監視手段は、更に
プリエラーと認識されたサーバに対して前記一定間隔よりも時間間隔の広い異常時監視間隔で所定回数の監視を行い、復旧した場合は前記プリエラー状態の認識をクリアして復旧信号を出力し、
前記振分手段は、
前記復旧信号が入力されると、復旧したサーバへの新たな処理の振り分けを再開することを特徴とする請求項１に記載のサーバ負荷分散装置。
【請求項３】
前記サーバ監視手段は、
前記異常時監視間隔で前記所定回数の監視を行い、復旧しない場合はエラー状態と認識してエラー信号を出力し、
前記振分手段は、
前記エラー信号が入力されると、エラー状態と認識されたサーバへの新たな処理の振り分けを行わず、処理中の通信を開放する切り離しを行うことを特徴とする請求項１又は２に記載のサーバ負荷分散装置。
【請求項４】
前記振分手段は、
前記サーバの台数が所定台数未満の場合は、前記プリエラー信号が入力された際に、プリエラー状態と認識されたサーバへの新たな処理の振り分けを継続することを特徴とする請求項１〜３のいずれか１項に記載のサーバ負荷分散装置。
【請求項５】
複数のユーザから申し込まれる処理を複数のトランザクションとして受け付けて出力する複数の店舗端末と、
入力される前記複数のトランザクションを振り分ける負荷分散装置と、
前記負荷分散装置により振り分けられたトランザクションが入力される複数のサーバと、を備え、
前記複数の店舗端末と、前記負荷分散装置と、前記複数のサーバとが通信回線により接続された負荷分散システムであって、
前記負荷分散装置は、
入力される複数のトランザクションを複数のサーバへ振り分ける振分手段と、
一定間隔で前記複数のサーバの異常監視を行い、初めて異常を検出したサーバをプリエラーと認識してプリエラー信号を出力するサーバ監視手段と、を有し、
前記振分手段は、前記プリエラー信号が入力されると、前記プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止することを特徴とするサーバ負荷分散システム。
【請求項６】
前記振分手段は、
前記サーバの台数が所定台数未満の場合は、前記プリエラー信号が入力された際に、プリエラー状態と認識されたサーバへの新たな処理の振り分けを継続することを特徴とする請求項５に記載のサーバ負荷分散システム。
【請求項７】
入力される複数のトランザクションを複数のサーバへ振り分ける負荷分散装置の負荷分散方法であって、
一定間隔で前記複数のサーバの正常監視を行う第１処理と、
初めて異常を検出したサーバをプリエラーと認識する第２処理と、
プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止する第３処理と、
を有することを特徴とするサーバ負荷分散方法。
【請求項８】
前記一定間隔よりも広い時間間隔の所定間隔で所定回数、前記プリエラー状態と認識されたサーバに対して異常監視を行う第４処理と、
前記プリエラー状態と認識されたサーバが復旧した場合、当該サーバへの新たな処理の振り分けを再開する第５処理と、
を更に有することを特徴とする請求項７に記載のサーバ負荷分散方法。
【請求項９】
前記所定期間に、当該サーバの異常が復旧しない場合、エラー状態と認識し、エラー状態と認識されたサーバへの新たな処理の振り分けを行わず、処理中の通信を開放する第６処理
を更に有することを特徴とする請求項８に記載のサーバ負荷分散方法。
【請求項１０】
入力される複数のトランザクションを複数のサーバへ振り分ける負荷分散装置に負荷分散制御を行わせるプログラムであって、
一定間隔で前記複数のサーバの正常監視を行う第１処理と、
初めて異常を検出したサーバをプリエラーと認識する第２処理と、
プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止する第３処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバで構成されたサーバファーム（サービス機能）などに対して、ユーザから要求される処理を適宜複数のサーバに振り分けてサーバにかかる処理負荷を分散させるサーバ負荷分散装置、サーバ負荷分散システム、サーバ負荷分散方法、及びその方法を実行するプログラムに関する。
【背景技術】
【０００２】
関連する文献として、下記特許文献１〜３等がある。特許文献１には、ネットワークに接続された複数の情報処理装置により分散処理を実行する大規模クラスタによる障害監視システムに関し、障害監視装置により定期信号が受信できないとき、当該情報処理装置へのリクエストを一旦停止させ、装置の負荷を軽減したうえで原因を判定することから、原因が過負荷発生であるか障害発生であるか適切に判定できることが記載されている。
【０００３】
又、特許文献２には、サーバに障害発生時もしくは障害に至る前の段階で、稼動中のミドルウェアやオペレーティングシステムの出力する異常メッセージや、各サーバの各種リソース情報といった稼動情報を収集、分析することで、サーバの継続が不適当と判断される場合には即座にサーバを停止することでシステムの影響拡大を防止する方式が提案されている。
【０００４】
更に、特許文献３には、複数のノードを有するクラスタシステムにおいて、クラスタを構成する複数のノードの中から異常の発生しているノードのみを正確に検出する技術が記載されている。このように、現行の負荷分散装置は、サーバのエラーが一定時間継続した場合に復旧不可能な障害と判断してサーバを切り離す方式が一般的である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１７８８５１号公報
【特許文献２】特開２００７−２８０１５５号公報
【特許文献３】特開２００７−１２２３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、現行のサーバ負荷分散装置では、サーバの障害確定の判定に一定時間を要するため、この一定時間内に流入したトランザクションについては、生死不明状態のサーバにも処理が振り分けられる。実際にサーバが故障している場合や、何らかの復旧処理をしていて、サービス提供できない状態のサーバにもトランザクションが振り分けられる。そのため、このようなトランザクションは、結果的に処理できずにエラー終了となってしまうおそれがある。
【０００７】
本発明は、生死不明状態のサーバに新たなトランザクションが振り分けられることを抑止して、結果的に処理できずにエラー終了することを軽減するサーバ負荷分散装置、サーバ負荷分散システム、サーバ負荷分散方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の内の第１発明のサーバ負荷分散装置は、入力される複数のトランザクションを複数のサーバへ振り分ける振分手段と、一定間隔で前記複数のサーバの異常監視を行い、初めて異常を検出したサーバをプリエラーと認識してプリエラー信号を出力するサーバ監視手段と、を有し、前記振分手段は、前記プリエラー信号が入力されると、前記プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止することを特徴とする。
【０００９】
第２発明のサーバ負荷分散システムは、複数のユーザから申し込まれる処理を複数のトランザクションとして受け付けて出力する複数の店舗端末と、入力される前記複数のトランザクションを振り分ける負荷分散装置と、前記負荷分散装置により振り分けられたトランザクションが入力される複数のサーバと、を備え、前記複数の店舗端末と、前記負荷分散装置と、前記複数のサーバとが通信回線により接続されたことを特徴とする。
【００１０】
第３発明のサーバ負荷分散方法は、入力される複数のトランザクションを複数のサーバへ振り分ける負荷分散装置の負荷分散方法であって、一定間隔で前記複数のサーバの異常監視を行う第１処理と、初めて異常を検出したサーバをプリエラーと認識する第２処理と、プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止する第３処理と、を有することを特徴とする。
【００１１】
第４発明のプログラムは、入力される複数のトランザクションを複数のサーバへ振り分ける負荷分散装置に負荷分散制御を行わせるプログラムであって、一定間隔で前記複数のサーバの異常監視を行う第１処理と、初めて異常を検出したサーバをプリエラーと認識する第２処理と、プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止する第３処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、入力される複数のトランザクションを複数のサーバへ振り分ける振分手段と、一定間隔で複数のサーバの異常監視を行い、初めて異常を検出したサーバをプリエラーと認識してプリエラー信号を出力するサーバ監視手段と、を有し、プリエラー信号が入力されると、振分手段は、プリエラー状態と認識されたサーバへの新たな処理の振り分けを抑止するようにしている。これにより、生死不明状態のサーバへの新たな処理の振り分けが抑止されるので、処理できずにエラー終了することが軽減される。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態における負荷分散システムのシステム構成図である。
【図２】図１中の負荷分散装置２の概略のハードウェア構成図である。
【図３】図２中の処理カウンタ１４ａ及び監視パラメータ１５ａの例を示す図である。
【図４】図２中の負荷分散装置２の概略の機能構成図である。
【図５】現行の負荷分散システムの正常性不定状態の動作説明図である。
【図６】現行の負荷分散システムの処理を示すフローチャートである。
【図７】本発明の実施形態１の負荷分散システムにおける異常検出直後の動作説明図である。
【図８】本発明の実施形態１の負荷分散システムにおけるサーバエラー確定時の動作説明図である。
【図９−１】本発明の実施形態１の負荷分散システムの処理を示すフローチャートである。
【図９−２】本発明の実施形態１の負荷分散システムの処理を示すフローチャートである。
【図１０】現行の負荷分散システムと本発明の実施形態の負荷分散システムを比較するタイミングチャートである。
【図１１】本発明の実施形態２の負荷分散システムのシステム構成及び動作を説明するための図である。
【図１２】図１１中の負荷分散装置２Ｂの概略の機能構成図である。
【発明を実施するための形態】
【００１４】
以下に本発明の実施形態について図面を参照しながら詳細に説明する。
（実施形態１の構成）
図１は、本発明の実施形態における負荷分散システムのシステム構成図である。
【００１５】
負荷分散システムは、銀行、郵便局、コンビニエンスストア等の店舗内に設置された複数の現金自動預け払い機（Automated Teller Machine：以下「ＡＴＭ」という。）１（＝１−１、１−２、１−３、１−４）と、複数のサーバ３（３−１、３−２、３−３）と、が負荷分散装置２を介して相互に通信可能な専用回線、ＬＡＮ（Local Area Network）等のネットワークにより接続されて構成されている。
【００１６】
ＡＴＭ１は、顧客が銀行口座への現金の預け払い等の処理を受け付ける装置である。負荷分散装置２は、複数のＡＴＭ１から受け付けられた処理を集約し、集約した処理を複数のサーバ３へ振り分けてサーバ３の処理負荷を分散し、１台のサーバ３−１が障害でダウンした場合に、ダウンしたサーバ３−１の処理を他のサーバ３−２、３−３へ振り分けるといった冗長化を行う装置である。サーバ３は、他の情報処理装置に対し、自身の持っている機能やサービス、データ等を提供するコンピュータである。図１においては、サーバ３は、ＡＴＭ１に対して、自身の持っている機能やサービス、データ等を提供する。
【００１７】
図２は、図１中の負荷分散装置２の概略のハードウェア構成の例を示す図である。
負荷分散装置２のハードウェアは、ネットワークインタフェース（以下「Ｉ／Ｆ」という。）１１と、ＡＳＩＣ（Application Specific Integrated Circuit）１２と、中央処理装置（Central Processing Unit、以下「ＣＰＵ」という。）１３と、内部メモリ１４と、外部メモリとしてのハードディスクを読み込ます駆動装置であるＨＤＤ（Hard Disk Drive）１５、及びＩ／Ｆ１６と、から構成されている。
【００１８】
Ｉ／Ｆ１１は、図１中の複数のＡＴＭと負荷分散装置２内のＡＳＩＣ１２との間の情報や信号等をやりとりのための手順や規約を定めたものである。
【００１９】
ＡＳＩＣ１２は、特定の用途向けに複数の機能を１つにまとめた集積回路であり、ＣＰＵ１３と協働して、後述する本発明の機能を実現するものである。
【００２０】
内部メモリ１４は、故障監視回数や各サーバ３の状態を記録するものであり、処理カウンタ１４ａが格納されている。ＨＤＤ１５は、設定内容やプログラムを記録したハードディスクを読み込ます駆動装置であり、ハードディスクに監視パラメータ１５ａが格納されている。更に、Ｉ／Ｆ１６は、図１中の複数のサーバ３と負荷分散装置２内のＡＳＩＣ１２との間の情報や信号等をやりとりのための手順や規約を定めたものである。
【００２１】
図３（ａ），（ｂ）は、図２中の処理カウンタ１４ａ及び監視パラメータ１５ａの例を示す図であり、図３（ａ）はプログラム構造体としての処理カウンタ１４ａの例を示す図であり、図３（ｂ）はプログラム構造体としての監視パラメータ１５ａの例を示す図である。
【００２２】
内部メモリ１４に格納される処理カウンタ１４ａは、エラー発生カウント（回）、プリエラー復旧カウント（回）、及び正常稼動サーバ数（台）、サーバ状態（Normal/Error）の項目名に対し、後述するフローチャート中の記号ＭＥＣ、ＭＰＣ２、ＭＳＣ、及びＳＴＡＴＵＳがそれぞれ付与されている。
【００２３】
ＨＤＤ１５により駆動されるハードディスクに格納されている監視パラメータ１５ａは、正常時監視間隔（秒）、異常時監視間隔（秒）、監視タイムアウト（秒）、エラー発生判定カウント（回）、プリエラー発生判定カウント（回）、プリエラー復旧判定カウント（回）、及び最小稼動サーバ数（台）の項目名に対し、後述するフローチャート中の記号Ｔ１、Ｔ２、Ｔ３、ＥＣ、ＰＣ１、ＰＣ２、及びＳＣがそれぞれ付与されている。更に、図３（ｂ）には、記号Ｔ１、Ｔ２、Ｔ３、ＥＣ、ＰＣ１、ＰＣ２、及びＳＣの参考値として、５秒間隔、１５秒間隔、３秒、３回、１回、２回、及び２台が示されている。
【００２４】
ここで、正常時監視間隔Ｔ１の参考値が５秒と短いのは、正常時にサーバの異常を検知した場合は速やかにプリエラーと認識して新たなトランザクションの振り分けを抑止することが望ましいためである。一方、異常時監視間隔Ｔ２の参考値が１５秒と正常時監視間隔Ｔ１よりも長くなっているのは、新たなトランザクションの振り分けが抑止されているサーバを復旧していることの検知は、サーバの異常検知に較べて緊急度が低いためである。
【００２５】
図４は、図２中の負荷分散装置２の概略の機能構成図である。
図４に示された負荷分散装置２の機能構成は、図２中のＣＰＵ及びＡＳＩＣにより実現されるものである。
【００２６】
負荷分散装置２は、複数のＡＴＭ１から受け付けられた処理（トランザクション）を複数のサーバ３へ振り分ける振分手段２１を有している。サーバ３へのトランザクションの振り分け方式としては、順番にサーバを切り換えるラウンドロビン方式、サーバ３に比率や優先度を設定して切り換えるRatio/Priority方式、コンテンツの内容に応じてサーバ３を切り換えるコンテンツバランス方式、その他多様な方式がある。この振分手段２１は、負荷分散装置２の基本機能である。
【００２７】
負荷分散装置２は、正常時監視間隔Ｔ１（例えば、５秒）で複数のサーバ３（３−１、３−２、３−３）の異常監視を行い、初めて異常を検出したサーバ３−１をプリエラーと認識してプリエラー信号を出力するサーバ監視手段２２を有している。振分手段２１は、プリエラー信号が入力されると、プリエラー状態と認識されたサーバ３−１への新たな処理の振り分けを抑止する振分抑止機能を有している。
【００２８】
又、サーバ監視手段２２は、サーバ３−１がプリエラーと認識された後、正常時監視間隔Ｔ１（例えば、５秒）よりも時間間隔の広い異常時監視間隔Ｔ２（例えば、１５秒）で所定（例えば、２）回の正常監視を行い、正常復旧した場合はプリエラー状態の認識をクリアして復旧信号を出力する機能を有している。復旧信号が入力されると、振分手段２１は、復旧したサーバ３への新たな処理の振り分けを再開する機能を有している。
【００２９】
更に、サーバ監視手段２２は、異常時監視間隔Ｔ２で所定回の正常監視を行った結果、復旧しない場合はエラー状態と認識してエラー信号を出力する機能を有している。エラー信号が入力されると、振分手段２１は、エラー状態と認識されたサーバへの新たな処理の振り分けを行わず、処理中の通信の開放処理を行う切り離し機能を有している。
【００３０】
（実施形態１の動作）
実施形態１の動作について、（Ｉ）現行の負荷分散システムの動作と、（II）本発明の実施形態１の動作と、（III）本発明の負荷分散システムと現行の負荷分散システムとの比較と、に分けて説明する。
【００３１】
（Ｉ）現行の負荷分散システムの動作
図５は、現行の負荷分散システムの正常性不定状態の動作を説明する図であり、図６は、現行の負荷分散システムの処理を示すフローチャートである。
【００３２】
図５には、負荷分散装置２Ａが正常性不定状態のサーバ３−１にトランザクションが振り分けられ、サーバ３−１で処理できず、エラー終了することが示されている。
【００３３】
図５及び図３を参照しつつ、図６に示されたフローチャートに沿って、現行の負荷分散システムにおける正常性不定状態の処理について説明する。
【００３４】
処理が開始されると、図６中のステップＳ１へ進み、ステップＳ１において、図５中の負荷分散装置２Ａの装置起動処理が行われ、ステップＳ２へ進む。ここで、装置起動処理は、例えば、セルフチェック、パラメータの初期化、プログラムの読み込み等の一般的な装置起動時の処理である。ステップＳ２において、負荷分散装置２Ａは、装置起動処理の終了から１秒間の時間経過を待ち、ステップＳ３へ進む。
【００３５】
ステップＳ３において、負荷分散装置２Ａは、正常監視間隔Ｔ１（５秒）が経過したか否かを判定し、経過していなければ（ＮＯ）、ステップＳ２へ戻り、経過していれば（ＹＥＳ）、ステップＳ４へ進む。ステップＳ４において、負荷分散装置２Ａは、サーバ監視処理を実行し、ステップＳ５へ進む。ここで、サーバ監視処理は、例えば、負荷分散装置２Ａから各サーバ３に対し監視信号を送りその応答が所定時間以内に戻ってくるか否かにより正常異常を判定する。
【００３６】
ステップＳ５において、負荷分散装置２Ａは、監視タイムアウトＴ３（３秒）以内に応答があったか否かを判定し、応答があった場合（ＹＥＳ）は、ステップＳ２へ戻り、応答がなかった場合（ＮＯ）は、ステップＳ６へ進む。
【００３７】
ステップＳ６において、負荷分散装置２Ａは、エラー発生カウントＭＥＣをインクリメントして、ステップＳ７へ進む。ステップＳ７において、負荷分散装置２Ａは、エラー発生カウントＭＥＣがエラー発生判定カウントＥＣ（３回）以上であるか否かを判定し、以上である場合（ＹＥＳ）は、ステップＳ８へ進み、エラー発生カウントＭＥＣがエラー発生判定カウントＥＣ未満の場合（ＮＯ）は、ステップＳ２へ戻る。ステップＳ８において、負荷分散装置２Ａは、サーバ３−１をエラー状態であると認識し、サーバ３−１を切り離し、ステップ２へ戻る。
【００３８】
現行の負荷分散装置２Ａは、ステップＳ１の装置起動処理の終了後、ステップＳ２〜Ｓ８の処理が繰り返される。これにより、現行の負荷分散システムでは、例えば、５秒間隔でサーバ３の異常監視が行われ、３秒以内に応答がない異常（ステップＳ５のＮＯ）が３回以上蓄積されると、エラー状態と判定され、エラー状態と判定されたサーバ３−１が切り離される。
【００３９】
図６のフローチャートに示された処理では、ステップＳ５において、サーバ３−１の異常が最初に検出されてから、サーバ３−１が切り離されるまでに、ステップＳ６→ステップＳ７→ステップＳ２→ステップＳ３→ステップＳ４→ステップＳ５→ステップＳ７の処理を最低２回繰り返す必要がある。そのため、サーバ３−１の異常が最初に検出されてから、サーバ３−１が切り離されるまでに、ステップＳ２で経過を待つ１秒と、ステップＳ３のＴ１＝５秒との和の６秒の倍の１２秒がかかる。そのため、現行の負荷分散システムでは、図５に示されているように、正常性不定状態のサーバ３−１にトランザクションが振り分けられ、サーバ３−１で処理できず、エラー終了する。
【００４０】
（II）本発明の実施形態１の動作
図７は、本発明の実施形態の負荷分散システムにおける異常検知直後の動作を説明する図であり、図８は、本発明の実施形態の負荷分散システムにおけるサーバエラー確定時の動作を説明する図である。
【００４１】
図７には、サーバ３−１の異常検知直後に、負荷分散装置２がサーバ３−１へのトランザクションをサーバ３−２へ振り分けていることが示されている。又、図８には、サーバエラー確定時に、サーバ３−１を分散対象から切り離し、新たなトランザクションが振り分けられないことが示されている。
【００４２】
図９−１、図９−２は、本発明の実施形態１の負荷分散システムの処理を示すフローチャートであり、現行の負荷分散システムの処理を示す図６と共通の処理については共通の符号が付されている。
【００４３】
図３、図４、図６〜図８を参照しつつ、図９、図９−２に示されたフローチャートに沿って、本発明の実施形態１の負荷分散システムの処理について説明する。
【００４４】
本発明の実施形態１の負荷分散システムの処理では、図６に示されたフローチャート中のステップＳ１〜Ｓ７と同様の処理に加え、ステップＳ１１〜Ｓ１８の処理と、ステップＳ２１〜Ｓ２６の処理と、が追加されている。
【００４５】
ステップＳ１１〜Ｓ１８の処理は、一つのサーバ３−１の異常が検知されプリエラーと認識されたとき、所定の期間、所定回監視を継続し、復旧したか否かを判定して復旧したサーバ３−１に対しては、振分処理を再開する処理である。又、ステップＳ２１〜Ｓ２６の処理は、エラー確定時にサーバを切り離す処理に、最初に異常が検知された場合にプリエラー状態と認識し、切り離しは行わずに新たなトランザクションの振り分けを抑止する処理が追加されている。
【００４６】
処理が開始されると、図９−１中のステップＳ１へ進み、ステップＳ１において、図７中の負荷分散装置２の装置起動処理が行われ、ステップＳ２へ進む。ステップＳ２において、負荷分散装置２は、装置起動処理の終了から１秒間の時間経過を待ち、ステップＳ３へ進む。
【００４７】
ステップＳ３において、負荷分散装置２は、正常監視間隔Ｔ１（５秒）が経過したか否かを判定し、経過していなければ（ＮＯ）、図９−２中のステップＳ１１へ進み、経過していれば（ＹＥＳ）、ステップＳ４へ進む。ステップＳ４において、負荷分散装置２は、サーバ監視処理を実行し、ステップＳ５へ進む。
【００４８】
図９−２中のステップＳ１１において、負荷分散装置２は、異常時監視間隔Ｔ２（１５秒）が経過したか否かを判定し、経過していなければ（ＮＯ）、図９−１中のステップＳ２へ戻り、経過していれば（ＹＥＳ）、ステップＳ１２へ進む。ステップＳ１２において、負荷分散装置２は、サーバ監視処理を実行し、ステップＳ１３へ進む。
【００４９】
ステップＳ１３において、負荷分散装置２は、監視タイムアウトＴ３（３秒）以内に応答があったか否かを判定し、応答があった場合（ＹＥＳ）は、ステップＳ１４へ進み、応答がなかった場合（ＮＯ）は、図９−１中のステップＳ２へ戻る。
【００５０】
ステップＳ１４において、負荷分散装置２は、図４中のサーバ監視手段２２が認識するサーバ３−１の状態がプリエラー状態か否かを判定し、プリエラー状態でなければ（ＮＯ）、図９−１中のステップＳ２へ戻り、プリエラー状態であれば（ＹＥＳ）、ステップＳ１５へ進む。
【００５１】
ステップＳ１５において、負荷分散装置２は、プリエラー復旧カウントＭＰＣ２をインクリメントし、ステップＳ１６へ進む。ステップＳ１６において、負荷分散装置２は、プリエラー復旧カウントＭＰＣ２がプリエラー復旧判定カウントＰＣ２以上であるか否かを判定し、以上であれば（ＹＥＳ）、ステップＳ１７へ進み、プリエラー復旧カウントＭＰＣ２がプリエラー復旧判定カウントＰＣ２未満であれば（ＮＯ）、図９−１中のステップＳ２へ戻る。
【００５２】
ステップＳ１７において、負荷分散装置２は、プリエラー状態であったサーバ３−１が復旧したと判定し、サーバ監視手段２２が認識するサーバ３−１の状態を正常に変更し、サーバ３−１への新たな処理の振り分けを再開し、ステップＳ１８へ進む。ステップＳ１８において、負荷分散装置２は、正常稼動サーバ数ＭＳＣをインクリメントし、ステップＳ１９へ進む。ステップＳ１９において、負荷分散装置２は、プリエラー復旧カウントＭＰＣ２をクリアし、図９−１中のステップＳ２へ戻る。
【００５３】
なお、エラー発生カウントＭＥＣは、サーバ監視処理終了までクリアせず、エラーをカウントし続けても良いし、ステップＳ１９の次にクリアし、図９−１中のステップ２へ戻っても良い。
【００５４】
図９−１中のステップＳ４において、負荷分散装置２は、サーバ監視処理を実行し、ステップＳ５へ進む。ステップＳ５において、負荷分散装置２は、監視タイムアウトＴ３（３秒）以内に応答があったか否かを判定し、応答があった場合（ＹＥＳ）は、ステップＳ２へ戻り、応答がなかった場合（ＮＯ）は、ステップＳ６へ進む。
【００５５】
ステップＳ６において、負荷分散装置２は、エラー発生カウントＭＥＣをインクリメントして、ステップＳ７へ進む。ステップＳ７において、負荷分散装置２は、エラー発生カウントＭＥＣがエラー発生判定カウントＥＣ（３回）以上であるか否かを判定し、以上である場合（ＹＥＳ）は、ステップＳ２１へ進み、エラー発生カウントＭＥＣがエラー発生判定カウントＥＣ未満の場合（ＮＯ）は、ステップＳ２３へ進む。
【００５６】
ステップＳ２１において、負荷分散装置２は、サーバ３−１をエラー状態であると認識し、サーバ３−１を切り離し、ステップＳ２２へ進む。ステップＳ２２において、負荷分散装置２は、正常稼動サーバ数ＭＳＣをデクリメントし、ステップＳ２へ戻る。
【００５７】
ステップ２３において、負荷分散装置２は、エラー発生カウントＭＥＣがプリエラー発生判定カウントＰＣ１以上であるか否かを判定し、エラー発生カウントＭＥＣがプリエラー発生判定カウントＰＣ１未満のときは（ＮＯ）、ステップＳ２へ戻り、エラー発生カウントＭＥＣがプリエラー発生判定カウントＰＣ１以上のときは（ＹＥＳ）、ステップＳ２４へ進む。
【００５８】
ステップＳ２４において、負荷分散装置２は、正常稼動サーバ数ＭＳＣが最小稼動サーバ数ＳＣを超えるか否かを判定し、超えなければ（ＮＯ）、ステップＳ２へ戻り、超えていれば（ＹＥＳ）、ステップＳ２５へ進む。
【００５９】
ステップＳ２５において、負荷分散装置２は、サーバ３−１をプリエラー状態であると認識し、サーバ３−１への新たな処理の振り分けを抑止し、ステップＳ２６へ進む。ステップＳ２６において、負荷分散装置２は、正常稼動サーバ数ＭＳＣをデクリメントし、ステップＳ２へ戻る。
【００６０】
図９−１、図９−２のフローチャートに示された処理では、ステップＳ２３〜Ｓ２６の処理が追加されたことにより、異常が検知されたサーバ３−１は、プリエラー状態と認識され、新たなトランザクションの振り分けが抑止され、生死不明状態のサーバ３−１へ処理が振り分けられない。そのため、現行の負荷分散システムに較べ、エラー終了となるトランザクションの発生を軽減することができる。
【００６１】
更に、ステップＳ１１〜Ｓ１８の処理が追加されたことにより、プリエラーと認識されたサーバ３−１が復旧した場合には、復旧したサーバ３−１への処理の振り分けを再開するので、負荷分散装置２の本来の機能により、サーバ３−２、３−３の処理負荷を分散することができる。
【００６２】
（III）本発明の負荷分散システムと現行の負荷分散システムとの比較
図１０（ａ）〜（ｃ）は、現行の負荷分散システムと本発明の実施形態の負荷分散システムを比較するタイミングチャートである。
【００６３】
図１０（ａ）には、現行の負荷分散システムにおいて、サーバ３−１の異常が検知され、エラー確定に要する判定時間経過後、サーバ３−１のエラー確定し、サーバ３−１が切り離された場合のタイミングチャートが示されている。
【００６４】
時刻ｔ０〜ｔ１は、正常時監視期間であり、負荷分散装置２Ａは、サーバ３−１、３−２、３−３にそれぞれトランザクションＴｒ１、Ｔｒ２、Ｔｒ３を振り分けると共に、正常監視間隔Ｔ１で各サーバ３（＝３−１、３−２、３−３）の監視を行っている。
【００６５】
現行の負荷分散システムでは、正常時監視期間内にサーバ３−１の異常が検知された後も、異常が検知されたサーバ３−１のエラー確定に要する判定時間が経過する時刻ｔ２まで、負荷分散装置２Ａは、サーバ３−１、３−２、３−３へのトランザクションの振り分けを継続する。その結果、現行の負荷分散システムでは、異常が検出された時刻ｔ１からエラー確定の時刻ｔ２の間にサーバ３−１へ振り分けられたトランザクションＴｒ４、Ｔｒ７は、サーバ３−１で処理ができず、エラー終了となる。
【００６６】
図１０（ｂ）には、本発明の実施形態１の負荷分散システムにおいて、サーバ３−１の異常が検知された後復旧した場合のタイミングチャートが示されている。
【００６７】
正常時監視期間（時刻ｔ０〜ｔ１）は、現行システムと同様に、負荷分散装置２は、サーバ３−１、３−２、３−３にそれぞれトランザクションＴｒ１、Ｔｒ２、Ｔｒ３を振り分けると共に、正常監視間隔Ｔ１で各サーバ３（＝３−１、３−２、３−３）の監視を行っている。
【００６８】
しかし、本発明の負荷分散装置２は、正常時監視期間内にサーバ３−１の異常が検知されると、プリエラーと認識し、その後サーバ３−１へ新たなトランザクションの振り分けを行わず、サーバ３−２、３−３にそれぞれトランザクションＴｒ４、Ｔｒ５を振り分けている。
【００６９】
その後、異常時監視期間（時刻ｔ１〜ｔ４）では、負荷分散装置２は、異常時監視間隔Ｔ２で各サーバ３（＝３−１、３−２、３−３）の監視を行っている。異常時監視期間内の時刻ｔ３において、サーバ３−１が復旧すると、その後、負荷分散装置２は、サーバ３−１への新たなトランザクションの振り分けを再開し、サーバ３−１、３−２、３−３にそれぞれトランザクションＴｒ７、Ｔｒ８、Ｔｒ９を振り分ける。
【００７０】
図１０（ａ）に示された現行の負荷分散システムでは、正常時監視期間内に異常が検知されたサーバ３−１に、振り分けられたトランザクションＴｒ４、Ｔｒ７が処理されず、エラー終了する。これに対し、図１０（ｂ）に示された本発明の実施形態１の負荷分散システムでは、正常時監視期間内に異常が検知されたサーバ３−１は、直ちにプリエラーと認識され、新たなトランザクションは振り分けられないので、エラー終了するトランザクションは発生しない。
【００７１】
更に、図１０（ｂ）に示された例では、異常時監視期間内の時刻ｔ３に、サーバ３−１の復旧が確認されると、サーバ３−１への新たなトランザクションの振り分けが再開するため、その後、サーバ３の処理負荷が分散される。
【００７２】
図１０（ｃ）には、本発明の実施形態１の負荷分散システムにおいて、サーバ３−１の異常が検知された後復旧しなかった場合のタイミングチャートが示されている。
【００７３】
図１０（ｂ）と同様に、本発明の負荷分散装置２は、正常時監視期間内にサーバ３−１の異常が検知されると、プリエラーと認識し、その後サーバ３−１へ新たなトランザクションの振り分けを行わず、サーバ３−２、３−３にそれぞれトランザクションＴｒ４、Ｔｒ５を振り分けている。その後、異常時監視期間（時刻ｔ１〜ｔ４）では、負荷分散装置２は、異常時監視間隔Ｔ２で各サーバ３（＝３−１、３−２、３−３）の監視を行っている。
【００７４】
図１０（ｃ）に示された例では、異常時監視期間内にサーバ３−１が復旧しないので、負荷分散装置２は、サーバ３−１を切り離し、サーバ３−２及びサーバ３−３へのトランザクションの振り分けを継続している。
（実施形態２）
【００７５】
図１１は、本発明の実施形態２の負荷分散システムにおけるサーバ異常が確定したときの動作を説明する図であり、現行システム及び本発明の実施形態１の負荷分散システムを示す図１、図８等と共通の要素には共通の符号が付されている。
【００７６】
本発明の実施形態２の負荷分散システムは、実施形態１の負荷分散システムにおける負荷分散装置２に代えて、新たに負荷分散装置２Ｂを有している。負荷分散装置２Ｂのハードウェア構成は、図２に示されている実施形態１のハードウェア構成と同様である。
【００７７】
図１１に示された実施形態２の負荷分散システムでは、負荷分散装置２Ｂには、２台のサーバ３−１、３−２のみが接続されている。図３（ｂ）に示された監視パラメータ１５ａ中の最小稼動サーバ数（台）を参照すると、２台である。即ち、本発明の実施形態２は、負荷分散装置２Ｂに接続されているサーバ３の台数が最小稼動サーバ数の場合である。
【００７８】
負荷分散装置２Ｂに接続されているサーバ３の台数が最小稼動サーバ数の場合、実施形態１と同様に、サーバ３−１の異常が検知されたとき、直ちにプリエラーと認識して振り分けを抑止すると、新たな全ての処理が１つのサーバ３−２に集中することになる。その結果、サーバ３−２に処理能力を超えたトランザクションが集中すると、過負荷により、エラー終了するトランザクションが発生する。
【００７９】
実施形態２は、少数台のサーバ３に処理能力を超えたトランザクションが集中してエラー終了するのを避ける実施形態である。
【００８０】
図１２は、図１１中の負荷分散装置２Ｂの概略の機能構成図であり、実施形態１を示す図４と共通の要素には共通の符号が付されている。
【００８１】
本発明の実施形態２の負荷分散装置２Ｂは、実施形態１とは機能が異なる振分手段２１Ａと、実施形態１と同様のサーバ監視手段２２と、を有している。
【００８２】
振分手段２１Ｂは、実施形態１と同様な振分機能、振分抑止機能、切り離し機能に、新たに、接続されているサーバ３の台数が最小稼動サーバ数以下である場合に振分抑止を行わない機能が追加されている。
【００８３】
図１１及び図１２に示した例では、最小稼動サーバ数を２台として説明したが、最小稼動サーバ数は２台に限定されるものではない。負荷分散システムに入力されるトランザクションの量と、接続されるサーバ３の処理能力により、適宜変更してシステムを構築することができる。
【００８４】
以上、本発明の実施形態について説明したが、本発明は、以上に述べた実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成又は実施形態を取ることができる。
【符号の説明】
【００８５】
１，１−１，１−２，１−３      ＡＴＭ
２，２Ａ，２Ｂ      負荷分散装置
３，３−１，３−２，３−３      サーバ
１１，１６      Ｉ／Ｆ
１２      ＡＳＩＣ
１３      ＣＰＵ
１４      内部メモリ
１４ａ      処理カウンタ
１５      ＨＤＤ
１５ａ      監視パラメータ
２１，２１Ｂ      振分手段
２２      サーバ監視手段
【図３】
2015118480.tif 000003
【図４】
2015118480.tif 000004
【図６】
2015118480.tif 000005
【図９−１】
2015118480.tif 000006
【図９−２】
2015118480.tif 000007
【図１０】
2015118480.tif 000008
【図１２】
2015118480.tif 000009
【図１】
2015118480.tif 000010
【図２】
2015118480.tif 000011
【図５】
2015118480.tif 000012
【図７】
2015118480.tif 000013
【図８】
2015118480.tif 000014
【図１１】
2015118480.tif 000015