JP4866429B2 - Technology for accurately detecting system failures - Google Patents
Technology for accurately detecting system failures Download PDFInfo
- Publication number
- JP4866429B2 JP4866429B2 JP2008552140A JP2008552140A JP4866429B2 JP 4866429 B2 JP4866429 B2 JP 4866429B2 JP 2008552140 A JP2008552140 A JP 2008552140A JP 2008552140 A JP2008552140 A JP 2008552140A JP 4866429 B2 JP4866429 B2 JP 4866429B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- processing
- server
- tier server
- tier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Description
本発明は、システム障害を精度良く検出する技術に関する。特に、本発明は、複数のサーバ装置が相互に通信するシステムにおいて、障害を精度良く検出する技術に関する。 The present invention relates to a technique for accurately detecting a system failure. In particular, the present invention relates to a technique for accurately detecting a failure in a system in which a plurality of server devices communicate with each other.
近年、大規模なウェブサイトは単一のサーバ装置ではなく複数のサーバ装置を備えたシステムによって実現される。このようなシステムは多層サーバシステムと呼ばれ、たとえば、HTTPプロトコルに関する制御を行うサーブレットサーバ、呼び出されたアプリケーションを動作させるアプリケーションサーバ、データベースのトランザクションを行うデータベースサーバなどを備える。このような多層サーバシステムにおいて発生した障害を検出するために、従来、これらのサーバ群とは別体に設けられた監視用サーバが用いられている。 In recent years, large-scale websites are realized by a system including a plurality of server devices instead of a single server device. Such a system is called a multi-layer server system, and includes, for example, a servlet server that performs control related to the HTTP protocol, an application server that operates a called application, and a database server that performs database transactions. In order to detect a failure that has occurred in such a multi-layer server system, conventionally, a monitoring server provided separately from these server groups has been used.
監視用サーバは、システム内の各サーバからその状態を定期的に収集する。たとえば、供給電圧、CPUの温度、および、CPUのビジー率などのハードウェアの状態が収集されて、その状態が通常とは異なる場合に、当該システムに異常が発生したと判断される。但し、このような監視用サーバのみによっては、ソフトウェアに生じた異常を判断できない場合がある。このため、各サーバにおいては、当該サーバから他のサーバに要求したトランザクションの所要時間を計測して、その時間の長さが所定の範囲内かどうか判断することで、ソフトウェア由来の障害を検出可能としている。 The monitoring server periodically collects its status from each server in the system. For example, when hardware states such as supply voltage, CPU temperature, and CPU busy rate are collected and the state is different from the normal state, it is determined that an abnormality has occurred in the system. However, there may be a case where an abnormality occurring in the software cannot be determined only by such a monitoring server. For this reason, each server can detect a software-derived failure by measuring the time required for a transaction requested from the server to another server and determining whether the time is within a predetermined range. It is said.
障害検出に関する参考技術としては以下の特許文献1−2を参照されたい。
上述の多層サーバシステムにおいては、第1のサーバが第2のサーバに処理を要求し、要求を受けた第2のサーバが第3のサーバに更に処理を要求することがある。このような場合、第1のサーバに返送される処理応答が遅延しても、第2のサーバおよび第3のサーバの何れに障害が発生しているかどうかは第1のサーバには分からない。このような場合に第2のサーバに障害が発生したものとみなして処理要求の送信経路などを変更してしまえば、不用意に処理効率を低下させるおそれがある。 In the multi-layer server system described above, the first server may request processing from the second server, and the second server that receives the request may request further processing from the third server. In such a case, even if the processing response sent back to the first server is delayed, the first server does not know which of the second server and the third server has failed. In such a case, if it is assumed that a failure has occurred in the second server and the transmission path of the processing request is changed, the processing efficiency may be reduced carelessly.
また、サーバ上で動作するプログラムがJava言語(登録商標)で記述されている場合には、Javaのミドルウェアがガーベージ・コレクション(GC)を定期的に行う場合がある。GCとは、プログラムが確保したものの不要となった記憶領域を、そのプログラムの動作とは独立に、たとえば定期的に解放する処理である。この場合には、サーバにおける処理が一時的には遅延するが、GCが終了すればすぐに元の状態に戻る。このような一時的な状態をもってサーバに障害が発生したと判断すれば、システムを効率的に活用する観点から不都合である。 In addition, when a program operating on the server is described in Java language (registered trademark), Java middleware may periodically perform garbage collection (GC). The GC is a process of, for example, periodically releasing a storage area that is secured by a program but is no longer necessary, independently of the operation of the program. In this case, the processing in the server is temporarily delayed, but returns to the original state as soon as GC ends. If it is determined that a failure has occurred in the server in such a temporary state, it is inconvenient from the viewpoint of efficiently using the system.
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。 Therefore, an object of the present invention is to provide a system, a method, and a program that can solve the above-described problems. This object is achieved by a combination of features described in the independent claims. The dependent claims define further advantageous specific examples of the present invention.
上記課題を解決するために、本発明の一側面においては、外部の端末装置から要求された処理を振り分ける複数のディスパッチャ装置と、振り分けられた当該処理を行う複数の第1階層サーバと、第1階層サーバから受けた要求に応じて当該処理の一部を行う少なくとも1つの第2階層サーバとを備えるシステムであって、それぞれのディスパッチャ装置は、それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置と、要求された処理を振り分けるために、外部の端末装置から受けた処理要求を複数の第1階層サーバの中から選択した一の第1階層サーバに転送する転送部と、それぞれの第2階層サーバの稼動状態を、転送された処理要求に対応する処理応答に含めて受信し、受信した稼動状態に基づいて第2階層サーバ毎の稼動状態を評価して、第2階層サーバ毎の稼動状態を示す状態テーブルを生成して記憶装置に記憶するテーブル生成部と、状態テーブルの生成に応じ、生成した状態テーブルを記憶装置から読み出してそれぞれの第1階層サーバに送信するテーブル送信部と、何れかの第1階層サーバからの状態テーブルの受信に応じて、受信した状態テーブルにより記憶装置に記憶した状態テーブルを更新する第1テーブル更新部とを有し、それぞれの第1階層サーバは、それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置と、ディスパッチャ装置の転送部から処理要求の転送を受けたことに応じて、要求された処理の一部を第2階層サーバに処理させるために、第2階層サーバに処理要求を送信する要求送信部と、第2階層サーバに送信した処理要求に対する処理応答の状態を、当該第2階層サーバの稼動状態として、ディスパッチャ装置の転送部から転送を受けた処理要求に対する処理応答に含めて当該ディスパッチャ装置に返信する状態返信部と、ディスパッチャ装置のテーブル送信部から状態テーブルを受信したことに応じて、受信した当該状態テーブルに基づき記憶装置に既に格納された状態テーブルを更新する第2テーブル更新部と、状態テーブルの更新に応じて、更新した状態テーブルをそれぞれのディスパッチャ装置に返信するテーブル返信部とを有するシステムを提供する。また、当該システムにより各サーバの状態を管理する方法、および、当該システムとして複数の情報処理装置を機能させるプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。In order to solve the above problem, in one aspect of the present invention, a plurality of dispatcher devices that distribute processing requested from an external terminal device, a plurality of first tier servers that perform the distributed processing, A system including at least one second tier server that performs a part of the processing in response to a request received from the tier server, wherein each dispatcher device indicates an operating state of each second tier server. And a transfer unit for transferring a processing request received from an external terminal device to one first tier server selected from among a plurality of first tier servers in order to distribute the requested processing. And the operation status of each second tier server included in the processing response corresponding to the transferred processing request, and the second tier server based on the received operation status. A table generation unit that evaluates the operation state for each server, generates a state table indicating the operation state for each second tier server and stores the state table in the storage device, and stores the generated state table according to the state table generation The table transmission unit that reads from the first tier server and transmits the table to each first tier server, and updates the state table stored in the storage device by the received state table in response to the reception of the state table from any of the first tier servers. Each of the first tier servers has a storage device for storing a state table indicating an operating state of each second tier server, and transfers processing requests from the transfer unit of the dispatcher device. Sending a request for processing to the second tier server in order to cause the second tier server to process part of the requested processing in response to receiving the request. And the status of the processing response to the processing request transmitted to the second tier server is included in the processing response to the processing request received from the transfer unit of the dispatcher device as the operating status of the second tier server. A status reply unit for replying, a second table update unit for updating the status table already stored in the storage device based on the received status table in response to receiving the status table from the table transmission unit of the dispatcher device; Provided is a system including a table reply unit that returns an updated state table to each dispatcher device in response to the update of the state table. In addition, a method for managing the state of each server by the system and a program for causing a plurality of information processing apparatuses to function as the system are provided.
The above summary of the invention does not enumerate all the necessary features of the present invention, and sub-combinations of these feature groups can also be the invention.
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, the present invention will be described through embodiments of the invention. However, the following embodiments do not limit the invention according to the scope of claims, and all combinations of features described in the embodiments are included. It is not necessarily essential for the solution of the invention.
図1は、情報システム10の構成の一例を示す。情報システム10は、ディスパッチャ装置100−1〜2と、サーブレットサーバ110−1〜4と、APPサーバ120−1〜3と、DBサーバ130と、データベース135と、システム監視装置140と、情報共有装置150とを備える。ディスパッチャ装置100−1〜2のそれぞれは、サーブレットサーバ110−1〜4に直接接続されている。そして、ディスパッチャ装置100−1〜2は、外部の端末装置から要求された処理をサーブレットサーバ110−1〜4に振り分ける。
FIG. 1 shows an example of the configuration of the
たとえば、ディスパッチャ装置100−1〜2のそれぞれは、順次受け取る処理要求をラウンドロビン方式によってサーブレットサーバ110−1〜4のそれぞれに転送してもよい。即ち、ディスパッチャ装置100−1は、1回目に受け取った処理要求をサーブレットサーバ110−1に転送し、2回目に受け取った処理要求をサーブレットサーバ110−2に転送し、3回目に受け取った処理要求をサーブレットサーバ110−3に転送し、4回目に受け取った処理要求をサーブレットサーバ110−4に転送する。5回目からは元に戻り、処理要求はサーブレットサーバ110−1に転送される。 For example, each of the dispatcher apparatuses 100-1 and 100-2 may transfer processing requests received sequentially to each of the servlet servers 110-1 to 110-4 in a round robin manner. That is, the dispatcher apparatus 100-1 transfers the processing request received the first time to the servlet server 110-1, transfers the processing request received the second time to the servlet server 110-2, and receives the processing request received the third time. Is transferred to the servlet server 110-3, and the processing request received for the fourth time is transferred to the servlet server 110-4. From the fifth time, the process returns to the original, and the processing request is transferred to the servlet server 110-1.
サーブレットサーバ110−1〜4のそれぞれは、本発明に係る第1階層サーバの一例であり、具体的には例えばHTTPサーバなどである。そして、サーブレットサーバ110−1〜4のそれぞれは、ディスパッチャ装置100−1〜2から振り分けられた処理要求に応じて処理を行う。処理の過程で、所定のアプリケーション・プログラムの呼び出しや、データベースに対するアクセスの必要が生じる場合がある。そのような場合は、サーブレットサーバ110−1〜4のそれぞれは、APP(アプリケーション)サーバ120−1〜3またはDBサーバ130に対し更に処理要求を送信して、外部の端末装置から要求された処理の少なくとも一部を処理させる。APPサーバ120−1〜3のそれぞれは、本発明に係る第2階層サーバの一例であり、外部の端末装置が要求した処理の一部を、サーブレットサーバ110−1〜4から受けた要求に応じて処理する。DBサーバ130は、処理の過程でデータベース135からデータを読み出し、または、データベース135を更新してもよい。なお、DBサーバ130もまた第2階層サーバの一例である。即ち第2階層サーバには、サーブレットサーバから直接要求を受けるものの他、他のサーバ/装置(ここではAPPサーバ100−1〜3)を介して間接的に要求を受けて、その要求に応じて要求された処理の一部を処理するものも含まれる。
Each of the servlet servers 110-1 to 110-4 is an example of a first tier server according to the present invention, and specifically, for example, an HTTP server. Each of the servlet servers 110-1 to 110-4 performs processing in response to a processing request distributed from the dispatcher apparatuses 100-1 to 100-2. In the course of processing, it may be necessary to call a predetermined application program or access a database. In such a case, each of the servlet servers 110-1 to 110-4 transmits a processing request to the APP (application) servers 120-1 to 120-3 or the
システム監視装置140は、ディスパッチャ装置100−1〜2、サーブレットサーバ110−1〜4、APPサーバ120−1〜3およびDBサーバ130のそれぞれにおいて動作しているエージェントソフトウェアなどから、これらそれぞれの装置・サーバの状態を示すデータを受信する。たとえば、それぞれの装置・サーバにおけるCPUの利用率、ハードディスクドライブのアクセス頻度などのハードウェアの稼動状態や、CPUや筐体の温度などの物理状態を示すデータが受信される。そして、情報共有装置150は、システム監視装置140が受信したこれらそれぞれのデータに基づいて、情報システム10が有する何れかの装置・サーバに異常が発生したかどうかを判断し、その判断結果を外部に通知したり、異常が発生した装置・サーバを停止させるなどの処理を行う。
The
図1に示す情報システム10によれば、情報システム10中の各装置・サーバの状態を監視して、情報システム10に生じた異常を検出することができるとも考えられる。しかしながら、このような情報システム10の構成によっては、ソフトウェアが主な原因で生じた異常は適切に検出できない場合がある。例えば、ソフトウェアの設計等の不良が原因のデッドロックは、ソフトウェアそれ自体は設計通り正常動作していることから、CPUの状態等によってはその発生を適切に検出できない。また、本来必要なサーバ・装置に加えてシステム監視装置140および情報共有装置150が必要なので、他のサーバ・装置が正常でもシステム監視装置140および情報共有装置150自体の異常が原因で誤って異常を検出してしまう場合がある。
これに対し、以降において説明する情報システム10によれば、異常検出のための機構を、処理要求や処理応答の送受信の機構に組み込むことで、情報システム10における本来の動作に悪影響を与えることなく、様々な種類の異常を検出することができる。
以降、具体的に説明する。According to the
On the other hand, according to the
Hereinafter, a specific description will be given.
図2は、本実施形態に係る情報システム10の全体構成を示す。情報システム10は、図1と同様に、ディスパッチャ装置100−1〜2と、サーブレットサーバ110−1〜4と、APPサーバ120−1〜3と、DBサーバ130と、データベース135とを備える。但し、図1に示した情報システム10とは異なり、図2の情報システム10は、システム監視装置140および情報共有装置150を備えなくてもよい。ディスパッチャ装置100−1〜2、サーブレットサーバ110−1〜4、APPサーバ120−1〜3、DBサーバ130およびデータベース135のそれぞれにおける処理の概要は、図1に示したものと同様である。但し、それぞれのサーバ・装置においては、処理要求および処理応答の送受信に加えて、異常検出のための処理を行う。また、異常検出に用いるために、それぞれのサーバ・装置は、処理要求を他のサーバ・装置に送信してから、その処理応答を受信するまでの所要時間を計測する機構を備えるものとする。
FIG. 2 shows the overall configuration of the
図3は、ディスパッチャ装置100−1の機能構成を示す。ディスパッチャ装置100−1は、記憶装置300と、転送部310と、テーブル生成部320と、テーブル送信部330と、第1テーブル更新部340と、停止判断部350とを有する。まず、これら各部材とハードウェア資源との関係について簡単に述べる。記憶装置300は、他の各部材に必要な情報を記憶するものであり、例えば後述のRAM1020またはハードディスクドライブ1040により実現される。転送部310およびテーブル送信部330は、情報の送受信等を行うものであり、後述のCPU1000および通信インターフェイス1030を、インストールされたプログラムに基づき動作させることにより実現される。テーブル生成部320、第1テーブル更新部340および停止判断部350は、情報の演算・加工および条件判断を行うものであり、後述のCPU1000を、インストールされたプログラムに基づき動作させることにより実現される。
FIG. 3 shows a functional configuration of the dispatcher apparatus 100-1. The dispatcher apparatus 100-1 includes a
記憶装置300は、各装置・サーバの稼動状態を示す状態テーブルを格納するために設けられている。状態テーブルとは、具体的には、サーブレットサーバ110−1〜4、APPサーバ120−1〜3およびDBサーバ130のそれぞれの稼動状態を示すものをいう。そして、稼動状態とは、たとえば、正常状態、動作しているが処理に閾値以上の時間を要する高負荷状態、動作していない異常状態、高負荷状態の疑いがある疑高負荷状態、および、異常状態の疑いがある疑異常状態の何れかである。
The
転送部310は、要求された処理を振り分けるために、外部の端末装置から受けた処理要求を、複数のサーブレットサーバ110−1〜4の中から選択した一のサーブレットサーバ110に転送する。前述のように、サーブレットサーバ110の選択はラウンドロビン方式で行われてもよい。テーブル生成部320は、それぞれのAPPサーバ120−1〜3およびDBサーバ130の稼動状態を、転送された処理要求に対応する処理応答に含めて受信する。
The
ここで処理応答に含めて受信する稼動状態とは、好ましくは、その処理要求に応じてサーブレットサーバ110−1〜4がAPPサーバ120−1〜3に要求した処理の所要時間を示す情報である。つまり、転送部310がある処理要求Aをサーブレットサーバ110−1に転送し、それを受信したサーブレットサーバ110−1がその要求Aに応じて処理要求BをAPPサーバ120−1に送信した場合、その処理要求Bに応じた処理の所要時間が、処理要求Aに対する処理応答Aに含めて受信される。
Here, the operating state received in the process response is preferably information indicating the time required for the process that the servlet server 110-1 to 4 requested to the APP server 120-1 to 3 according to the process request. . That is, when the
各稼動状態の具体例として、例えば、異常状態は、所要時間が5秒超であることを示し、高負荷状態は、所要時間が2秒超5秒以下であることを示し、正常状態は、所要時間が2秒以下であることを示す。テーブル生成部320が受信する時点では、稼動状態はこのような所要時間を示す数値そのものであってもよいし、既にその数値に基づき判断された各状態を示すものであってもよい。また、稼動状態は、所要時間のほか、各サーバや装置における処理の状態を示すその他の指標値を示すものであってもよい。
As a specific example of each operating state, for example, an abnormal state indicates that the required time is more than 5 seconds, a high load state indicates that the required time is more than 2 seconds and not more than 5 seconds, and a normal state is Indicates that the required time is 2 seconds or less. At the time when the
指標値の例としては、処理のスループット、レイテンシなどが挙げられる。また、テーブル生成部320は、各処理についての所要時間を稼動状態として受信するのではなく、一定期間に応答を受信した複数処理についての所要時間の平均を稼動状態として受信してもよい。そして、テーブル生成部320は、受信した稼動状態に基づいてAPPサーバ120−1〜3およびDBサーバ130のそれぞれについての稼動状態を評価して、評価した各稼動状態を示す状態テーブルを生成して記憶装置300に記憶する。
Examples of index values include processing throughput, latency, and the like. Further, the
稼動状態の評価とは、あるAPPサーバ120について受信した稼動状態そのものをそのAPPサーバ120の稼動状態として取り扱う処理であってもよいし、同一のAPPサーバ120について異なる複数の稼動状態を受信した場合に、それら複数の稼動状態に基づき単一の稼動状態を定める処理であってもよい。さらには、テーブル生成部320は、サーブレットサーバ110−1〜4のそれぞれに対し処理要求を送信してからその処理要求に対する処理応答を受信するまでの所要時間に基づいて、サーブレットサーバ110毎の稼動状態を評価して、状態テーブルに含めて生成してもよい。
The evaluation of the operating state may be a process in which the operating state itself received for a certain APP server 120 is handled as the operating state of the APP server 120, or when a plurality of different operating states are received for the same APP server 120. Moreover, the process which determines a single operating state based on these several operating states may be sufficient. Furthermore, the
テーブル送信部330は、状態テーブルの生成に応じ、生成したその状態テーブルを記憶装置300から読み出して、それぞれのサーブレットサーバ110−1〜4に送信する。第1テーブル更新部340は、何れかのサーブレットサーバ110−1〜4からの状態テーブルの受信に応じて、受信したこの状態テーブルにより、記憶装置300に既に記憶している状態テーブルを更新する。停止判断部350は、記憶装置300に記憶した状態テーブルにおいて、何れのサーブレットサーバ110も、稼動状態が正常状態でないことを条件に、テーブル生成部320による稼動状態の受信、および、テーブル送信部330による状態テーブルの送信を停止させる。
なお、ディスパッチャ装置100−2が有する各機能についてはディスパッチャ装置100−1と略同一であるから説明を省略する。In response to the generation of the state table, the
Note that the functions of the dispatcher apparatus 100-2 are substantially the same as those of the dispatcher apparatus 100-1, and thus description thereof is omitted.
図4は、サーブレットサーバ110−1の機能構成を示す。サーブレットサーバ110−1は、記憶装置400と、要求送信部410と、状態返信部420と、第2テーブル更新部430と、テーブル返信部440とを有する。ディスパッチャ装置100−1の場合と同様、まず、ハードウェア資源との関連について述べる。記憶装置400は、他の各部材に必要な情報を記憶するものであり、例えば後述のRAM1020またはハードディスクドライブ1040により実現される。要求送信部410およびテーブル返信部440は、処理応答等の送受信を行うものであり、後述のCPU1000および通信インターフェイス1030を、インストールされたプログラムに基づき動作させることにより実現される。状態返信部420および第2テーブル更新部430は、情報の演算・加工および条件判断を行うものであり、後述のCPU1000を、インストールされたプログラムにより動作させることにより実現される。
FIG. 4 shows a functional configuration of the servlet server 110-1. The servlet server 110-1 includes a
記憶装置400は、サーブレットサーバ110−1〜4、APPサーバ120−1〜3およびDBサーバ130のそれぞれの稼動状態を示す状態テーブルを格納するために設けられている。要求送信部410は、ディスパッチャ装置(たとえばディスパッチャ装置100−1)の記憶装置300から処理要求の転送を受けたことに応じて、要求された処理の一部をAPPサーバ120−1〜3またはDBサーバ130(以降、APPサーバ120−1等と呼ぶ)に処理させるために、APPサーバ120−1等に処理要求を送信する。状態返信部420は、要求送信部410がAPPサーバ120−1等に送信した処理要求に対する処理応答の状態を、そのAPPサーバ120−1の稼動状態として、ディスパッチャ装置100−1の記憶装置300から転送を受けた処理要求に対する処理応答に含めてそのディスパッチャ装置100−1に返信する。
The
ここで、処理応答の状態とは、例えば、処理要求の送信から処理応答の受信までの所要時間をいう。つまり、処理の一例として、要求送信部410は、処理要求をAPPサーバ120−1に送信したときにタイマーをリセットして、その処理要求に対する処理応答を受信したときにそのタイマーの値を参照して、処理の所要時間を計測する。そしてその所要時間が、その処理応答の状態となる。
Here, the state of the processing response refers to, for example, the time required from the transmission of the processing request to the reception of the processing response. That is, as an example of processing, the
第2テーブル更新部430は、ディスパッチャ装置(たとえばディスパッチャ装置100−1)のテーブル送信部330から状態テーブルを受信したことに応じて、受信したその状態テーブルに基づき、記憶装置400に既に格納された状態テーブルを更新する。第2テーブル更新部430は、記憶装置400に何ら格納されていない場合には、受信したその状態テーブルを記憶装置400に格納してもよい。テーブル返信部440は、状態テーブルの更新に応じて、更新したその状態テーブルをそれぞれのディスパッチャ装置に返信する。返信先は、第2テーブル更新部430に対する状態テーブルの送信元には限らず、サーブレットサーバ110−1に直接接続する全てのディスパッチャ装置100のそれぞれである。また、返信する状態テーブルは、サーブレットサーバ110−1〜4からディスパッチャ装置100−1〜2に対する処理応答のメッセージに含めて送信されてもよい。
In response to receiving the state table from the
以上、図3および図4を参照して説明したように、情報システム10においては、ディスパッチャ装置100およびサーブレットサーバ110が状態テーブルを相互に送信してその内容を反映し合う。これにより、ディスパッチャ装置100−1〜2およびサーブレットサーバ110−1〜4の間で各サーバ・装置の稼動状態を適切に共有させることができる。それぞれのサーバ・装置は受信した複数の状態テーブルに基づいて、既に記憶している状態テーブルを更新することで、正常状態だがある処理にのみ偶然に処理時間を要したような場合でも、状態を誤って判断することを防ぐことができる。
As described above with reference to FIGS. 3 and 4, in the
図5は、記憶装置300または記憶装置400が記憶する状態テーブルのデータ構造の一例を示す。記憶装置300および記憶装置400のそれぞれは、状態テーブルとして、サーバIDに対応付けて、そのサーバIDにより識別されるサーバ・装置の稼動状態を記憶している。また、記憶装置300および記憶装置400のそれぞれは、状態テーブルに対応付けて、その状態テーブルの改訂の時期を示すバージョンIDを更に記憶する。なお、記憶装置300および記憶装置400は、それぞれディスパッチャ装置100およびサーブレットサーバ110において独立して管理される。
FIG. 5 shows an example of the data structure of the state table stored in the
具体例として、記憶装置300は、サーブレットサーバ110−1というサーバIDに、そのサーバの稼動状態として正常状態を対応付けて記憶する。一方、記憶装置300は、APPサーバ120−1というサーバIDに、そのサーバの稼動状態として疑高負荷状態を対応付けて記憶する。また、記憶装置300は、DBサーバ130というサーバIDに、そのサーバの稼動状態として正常状態を対応付けて記憶する。バージョンIDは、改訂の時期や順序を識別可能とするものであり、これによって状態テーブル更新の可否を判断することができる。具体的には以下の通りである。
As a specific example, the
記憶装置300におけるバージョンIDに関する処理として、テーブル生成部320は、新たに状態テーブルを生成する毎に、その状態テーブルに対応付けて、前回に生成した状態テーブルよりも後の改訂により生成されたことを示すバージョンIDを生成して記憶装置300に記憶する。例えばバージョンIDが整数値として管理される場合、テーブル生成部320は、新たに状態テーブルを生成する毎に、既に記憶しているバージョンIDをインクリメントして記憶装置300に記憶する。状態テーブルを生成する周期は、例えば数分おきや数秒おきなど、ディスパッチャ装置100−1〜2に共通に定められている。したがって、生成される状態テーブルのIDは概ね同期しているが、ディスパッチャ装置100−1〜2の間で同期を維持するための処理を行ってはいないので、完全に同期しているとは限らない。
As a process related to the version ID in the
また、テーブル送信部330は、テーブル生成部320により生成されて記憶装置300に記憶された状態テーブルを、バージョンIDに対応付けて記憶装置300から読み出して、それぞれのサーブレットサーバ110−1〜4に送信する。記憶装置400におけるバージョンIDに関する処理として、第2テーブル更新部430は、状態テーブルに対応付けて受信したバージョンIDが、記憶装置400に格納されたバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、受信したその状態テーブルに基づき、記憶装置400に格納された状態テーブルを更新する。そしてその場合は、第2テーブル更新部430は、受信したそのバージョンIDを更新後の状態テーブルに対応付けて記憶装置400に格納する。
In addition, the
また、テーブル返信部440は、状態テーブルの更新に応じて、更新したその状態テーブルを、更新に用いた状態テーブルに対応するバージョンIDに対応付けてそれぞれのディスパッチャ装置100に返信する。この返信を受けて第1テーブル更新部340は、状態テーブルに対応付けて受信したバージョンIDが、記憶装置300に記憶したバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、受信したこの状態テーブルにより、記憶装置300に記憶した状態テーブルを更新する。
以上のように、状態テーブルがバージョンIDに対応付けて管理されることで、通信トラフィックの集中などで一部の状態テーブルが遅延して到着した場合であっても、最新の状態テーブルのみを選択して参照できる。Further, in response to the update of the state table, the
As described above, since the state table is managed in association with the version ID, only the latest state table is selected even when some state tables arrive with a delay due to concentration of communication traffic. You can refer to it.
図6は、ディスパッチャ装置100−1が処理要求および処理応答を送受信する処理の具体例を示す。ディスパッチャ装置100−1は、例えば定期的に、又は、何らかの要求・応答を受信する毎に、以下の処理を行う。ディスパッチャ装置100−1は、外部の端末装置から処理要求を受信すると(S600:YES)、その処理要求を、複数のサーブレットサーバ110−1〜4の中から選択した一のサーブレットサーバ110に転送する(S610)。転送部310は、転送した処理要求に対する処理応答を受信すると(S620:YES)、その処理応答を外部の端末装置に対し返信する(S630)。
FIG. 6 shows a specific example of processing in which the dispatcher apparatus 100-1 transmits and receives a processing request and a processing response. The dispatcher apparatus 100-1 performs the following processing, for example, periodically or every time a request / response is received. When the dispatcher apparatus 100-1 receives a processing request from an external terminal device (S600: YES), the dispatcher apparatus 100-1 transfers the processing request to one
次に、テーブル生成部320は、この処理応答のメッセージに基づいて状態テーブルを生成する(S640)。具体的には、テーブル生成部320は、この処理応答のメッセージの中から、それぞれのAPPサーバ120−1〜3およびDBサーバ130の稼動状態を取得し、取得したこの稼動状態に基づいて、APPサーバ120−1〜3およびDBサーバ130についてのサーバ・装置毎の稼動状態を評価する。また、テーブル生成部320は、処理要求を転送してからこの処理応答を受信するまでの所要時間に基づいて、サーブレットサーバ110−1〜4の稼動状態を評価する。評価された稼動状態は状態テーブルに含めて生成される。新たに生成した状態テーブルは、既に記憶装置300に記憶している状態テーブルに代えて記憶装置300に記憶される。また、バージョンIDはインクリメントされる。また、稼動状態の評価は、過去の予め定められた期間内に受信した複数の処理応答に含まれる稼動状態に基づくものであり、同一のサーバ・装置について複数の稼動状態に基づき評価が行われてもよい。詳しくは後述する。なお、テーブル生成部320は、新たに生成した状態テーブルと、すでに記憶している状態テーブルを比較して同一である場合には、新たに生成した状態テーブルにより記憶装置300を更新しなくてよい。この場合は、後に説明するテーブル送信部330は、S660において状態テーブルを送信しなくてよい。
Next, the
次に、停止判断部350は、状態テーブルの送受信を停止するべき条件が成立したかどうかを判断する(S650)。停止するべき条件とは、たとえば、サーブレットサーバ110−1〜4の何れの稼動状態も正常状態でないことである。このような場合には、ディスパッチャ装置100−1〜2およびサーブレットサーバ110−1〜4間で状態テーブルの相互送信が円滑に行えなくなるからである。停止条件が成立していなければ(S650:NO)、テーブル送信部330は、生成された状態テーブルを記憶装置300から読み出して、それぞれのサーブレットサーバ110に対し送信する(S660)。停止条件が成立していれば(S650:YES)、テーブル送信部330は、状態テーブルを送信しないで次の処理に移る。
Next, stop
なお、停止判断部350は、停止条件が成立した場合であっても、成立から予め定められた期間が経過したことを条件に、テーブル生成部320により稼動状態の受信、および、テーブル送信部330による状態テーブルの送信を再開させてもよい。再開しても直ちに停止条件が成立した場合には、停止判断部350は、稼動状態の受信および状態テーブルの送信を停止して、上記予め定められた期間よりも長い期間待機する。そして、その期間経過後に停止判断部350は、稼動状態の受信および状態テーブルの送信を再開する。このように、障害の回復が遅れるのに従って待機時間を長くすることで、障害発生時の情報システム10の負荷をできるだけ軽減して、障害からの回復を促すことができる。
Even if the stop condition is satisfied, the
また、第1テーブル更新部340は、サーブレットサーバ110−1〜4から新しい状態テーブルを受信したかどうかを判断する(S670)。即ち、第1テーブル更新部340は、何れかのサーブレットサーバ110−1〜4からの状態テーブルの受信に応じて、この状態テーブルに対応付けて受信したバージョンIDが、既に記憶装置300に記憶しているバージョンIDと比較して同時期又は後の時期の改訂を示すかどうかを判断する。同時期又は後の時期の改訂を示すということは、例えば、受信したバージョンIDの番号が、既に記憶しているバージョンIDの番号と同じか、それよりも大きいということである。新しい状態テーブルを受信したことを条件に(S670:YES)、第1テーブル更新部340は、受信したその状態テーブルにより、記憶装置300に記憶した状態テーブルを更新する(S680)。
In addition, the first
なお、新たな状態テーブルを生成する処理をしている間に、サーブレットサーバ110から状態テーブルを受信した場合には、テーブル送信部330が新たに生成した状態テーブルを送信してから、第1テーブル更新部340が状態テーブルの更新を試みることが望ましい。このように、処理の所要時間等に基づく稼動状態の評価を優先させることで、稼動状態の評価に用いる所要時間等の情報を情報システム10全体で増加させることができ、ゆえに、稼動状態の評価の精度を高めることができる。
If the status table is received from the
図7は、S640における処理の詳細な例を示す。図7を参照して、転送部310が受信した処理応答のメッセージに基づいてテーブル生成部320が各装置・サーバの稼動状態を評価する処理の詳細を説明する。テーブル生成部320は、転送部310がサーブレットサーバ110−1〜4から過去の予め定められた時間内に受信した複数の処理応答に含めて、各サーバ・装置の稼動状態を受信して、受信した稼動状態を集計する(S700)。具体的処理の一例を以下に述べる。
FIG. 7 shows a detailed example of the process in S640. With reference to FIG. 7, the details of the process in which the
まず、テーブル生成部320は、各処理応答について以下の処理を行う。テーブル生成部320は、その処理応答の受信までの、対応する処理要求の送信からの所要時間を算出する。これは、テーブル生成部320において処理要求の送信時にタイマーをリセットして、処理応答の受信時にそのタイマーを参照することによって実現される。この時間を時間Aとする。また、テーブル生成部320は、この処理応答のメッセージから、この処理要求に応じてサーブレットサーバ110がAPPサーバ120に要求した処理の所要時間を取得する。この時間を時間Bとする。そして、テーブル生成部320は、時間Aから時間Bを差し引くことで、サーブレットサーバ110における処理の所要時間を算出する。
First, the
この処理要求に伴ってAPPサーバ120がDBサーバ130に対し更に処理を要求していた場合には、テーブル生成部320は、その所要時間をメッセージから更に取得する。この時間を時間Cとする。その場合には、テーブル生成部320は、サーブレットサーバ110において計測された所要時間Bから、この時間Cを差し引くことで、APPサーバ120における処理の所要時間を算出する。このように、テーブル生成部320は、ある1つの処理要求から派生的に順次要求された複数の処理のそれぞれについて、その所要時間を算出する。所要時間は、前述の5秒および2秒を閾値として、稼動状態の情報に変換される。以上の処理を、テーブル生成部320は、上述の過去の予め定められた時間内に受信したそれぞれの処理応答について行う。そして、テーブル生成部320は、このようにして判断された稼動状態を、サーブレットサーバ110−1〜4、APPサーバ120−1〜3およびDBサーバ130のそれぞれについて集計する。
When the APP server 120 requests the
次に、テーブル生成部320は、それぞれのサーブレットサーバ110−1〜4について、当該サーブレットサーバ110について集計された稼動状態の何れもが、高負荷状態または異常状態を示すかどうかを判断する(S710)。何れのサーブレットサーバ110についても、集計された稼動状態の何れもが高負荷状態又は異常状態を示していることを条件に(S710:YES)、停止判断部350は、状態テーブルの送受信を停止するべき条件が成立したと判断して(S720)、本図の処理を終了する。この場合、テーブル生成部320は、状態テーブルを生成しなくてもよい。
Next, the
次に、テーブル生成部320は、APPサーバ120−1〜3およびDBサーバ130のそれぞれ(以下、処理の対象を当該サーバと呼ぶ)について以下の処理を行う(S730)。テーブル生成部320は、当該サーバについて受信した稼動状態のうち、当該サーバが正常であることを示す稼動状態の割合が予め定められた基準値(N)であることを条件に(S740:YES)、当該サーバが正常状態であると評価する(S750)。この基準値(N)は、0より大きい極めて小さい値であることが望ましい。これは、サーバに一旦異常が発生すると以降の処理は更に遅延する傾向があり、一時的にであっても状況が改善することは稀だからである。すなわち、正常と判断できる処理が僅かに観測されるときは、異常状態においてたまたま正常に処理が完了されたとは考えにくく、正常状態においてたまたま他の処理に時間がかかっていると考えた方が自然だからである。このため、テーブル生成部320は、正常状態を示す稼動状態が1つでも含まれていれば、当該サーバが正常状態であると評価してよい。
Next, the
正常状態と評価されない場合(S740)、次に、テーブル生成部320は、当該サーバについて受信した稼動状態のうち、当該サーバが高負荷であることを示す稼動状態の割合が予め定められた基準値(K)以上であるかどうかを判断する(S760)。基準値(K)以上であることを条件に(S760:YES)、テーブル生成部320は、当該サーバが高負荷状態であると評価する(S770)。この基準値(K)も、0より大きい極めて小さい値であることが望ましく、テーブル生成部320は、高負荷状態を示す稼動状態が1つでも含まれていれば、他の稼動状態が全て異常状態を示していても、当該サーバが高負荷状態であると判断してよい。高負荷であることを示す稼動状態の割合が基準値(K)未満であることを条件に(S760:NO)、テーブル生成部320は、当該サーバが疑異常状態と判断する(S780)。テーブル生成部320は、以上の処理をAPPサーバ120−1〜3およびDBサーバ130のそれぞれについて繰り返す(S790)。
When the normal state is not evaluated (S740), the
図8は、サーブレットサーバ110−1が処理要求および処理応答を送受信する処理の具体例を示す。要求送信部410は、ディスパッチャ装置(たとえばディスパッチャ装置100−1)の記憶装置300から処理要求の転送を受けたことに応じて(S800:YES)、要求された処理の一部をAPPサーバ120−1〜3等に処理させるために、APPサーバ120−1等に処理要求を送信する(S810)。送信先をたとえばAPPサーバ120−1とする。要求送信部410がAPPサーバ120−1に送信した処理要求に対する処理応答を受信すると(S820:YES)、状態返信部420は、その処理応答の状態を、そのAPPサーバ120−1の稼動状態として取得する(S830)。例えば、処理要求から処理応答までの所要時間がAPPサーバ120−1から取得されてもよい。そして、状態返信部420は、APPサーバ120−1の稼動状態を、ディスパッチャ装置100−1の記憶装置300から転送を受けた処理要求に対する処理応答に含めてそのディスパッチャ装置100−1に返信する(S840)。
FIG. 8 shows a specific example of processing in which the servlet server 110-1 transmits and receives processing requests and processing responses. In response to receiving a processing request transfer from the
次に、第2テーブル更新部430は、ディスパッチャ装置(たとえばディスパッチャ装置100−1)から新しい状態テーブルを受信したかどうかを判断する(S850)。即ち、第2テーブル更新部430は、ディスパッチャ装置100−1から状態テーブルを受信したことに応じて、その状態テーブルに対応付けて受信したバージョンIDが、記憶装置400に既に格納されたバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、新しい状態テーブルを受信したと判断する。新しい状態テーブルを受信したことを条件に(S850:YES)、第2テーブル更新部430は、受信したその状態テーブルに基づき、記憶装置400に格納された状態テーブルを更新する(S860)。状態テーブルの更新は、このように、状態テーブルを受信する毎に行われるから、ディスパッチャ装置100−1〜2の各々から受信した状態テーブルの情報は統合されて記憶装置400の状態テーブルに反映される。そして、テーブル返信部440は、更新したその状態テーブルをディスパッチャ装置100−1〜2のそれぞれに対し返信する(S870)。
Next, the second
図9は、S860において順次更新される稼動状態の状態遷移図である。第2テーブル更新部430は、状態テーブルにおいて管理されたAPPサーバ120−1〜3およびDBサーバ130の各稼動状態を、図9に示す状態遷移図に従って更新する。具体的には、第2テーブル更新部430は、処理対象であるサーバの稼動状態が、既に記憶装置400に記憶されている状態テーブルにおいて正常状態ではなく、かつ、ディスパッチャ装置100のテーブル送信部330から受信した状態テーブルにおいては正常状態であることを条件に、当該サーバの稼動状態を正常状態に更新する。即ち、高負荷、異常、疑高負荷または疑異常の何れの状態も、正常状態を受信したことを条件に正常状態に更新される。
FIG. 9 is a state transition diagram of the operating state sequentially updated in S860. The second
また、第2テーブル更新部430は、処理対象であるサーバの稼動状態が、すでに記憶装置400に記憶されている状態テーブルにおいて正常状態であり、かつ、サーブレットサーバ110のテーブル送信部330から受信した状態テーブルにおいては異常状態または疑異常状態であることを条件に、当該サーバの稼動状態を疑異常状態に更新する。即ち、第2テーブル更新部430においては、異常状態を受信したからといって直ちに異常状態とは判断されない。そして、第2テーブル更新部430は、稼動状態を疑異常状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を異常状態に更新する。
In addition, the second
また、第2テーブル更新部430は、処理対象であるサーバの稼動状態が、すでに記憶装置400に記憶されている状態テーブルにおいて正常状態であり、かつ、サーブレットサーバ110のテーブル送信部330から受信した状態テーブルにおいては高負荷状態であることを条件に、当該サーバの稼動状態を疑高負荷状態に更新する。即ち、第2テーブル更新部430においては、高負荷状態を受信したからといって直ちに高負荷状態とは判断されない。そして、第2テーブル更新部430は、稼動状態を疑高負荷状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を高負荷状態に更新する。
In addition, the second
図10は、本実施形態に係る情報システム10により稼動状態が順次更新される過程を示す。ここでは説明の都合上、情報システム10は、ディスパッチャ装置100−1〜2と、サーブレットサーバ110−1と、APPサーバ120−1〜3とを有するものとし、サーブレットサーバ110−2およびDBサーバ130は有しないものとする。また、APPサーバ120−1〜3を、表の中でそれぞれA〜Cと表記する。また、バージョンIDの初期値を0とする。即ち、全てのサーバ・装置における記憶装置は、バージョンIDとして数値の0を記憶している。また、状態テーブルは、APPサーバ120−1〜3の稼動状態を含み、サーブレットサーバ110−1〜2の稼動状態を含まないものとする。
FIG. 10 shows a process in which the operating state is sequentially updated by the
初期状態である時間0の時点において、ディスパッチャ装置100−1の記憶装置300は、APPサーバ120−1〜3のそれぞれの稼動状態を何れも正常状態とする状態テーブルを記憶している。この状態テーブルをA,B,Cと表記する。ディスパッチャ装置100−2の記憶装置300およびサーブレットサーバ110−1の記憶装置400も同様である。時間0の次の時間1において、テーブル生成部320は、APPサーバ120−3の稼動状態を疑異常状態と判断する。これは、例えばある一定期間内にディスパッチャ装置100−1からの要求を受けてAPPサーバ120−1で実行された処理の何れもが、異常状態と判断されるべき所要時間を要したからである。このときの状態テーブルの状態をA,B,C(−)と表記する。記号−は異常状態を示し、記号(−)は疑異常状態を示す。この時点でディスパッチャ装置100−1の記憶装置300においてバージョンIDはインクリメントされて1となる。しかしまだサーブレットサーバ110−1においてバージョンIDが0のままなので、図中ではバージョンIDを0と表記する。
At the
時間2において、サーブレットサーバ110−1の第2テーブル更新部430は、ディスパッチャ装置100−1のテーブル送信部330から状態テーブルを受信する。記憶装置300に既に記憶されている状態テーブルにおいて、APPサーバ120−3は正常状態だが、受信した状態テーブルにおいてAPPサーバ120−3は疑異常状態である。このため、サーブレットサーバ110−1の第2テーブル更新部430は、稼動状態を疑異常状態に更新する。したがって、サーブレットサーバ110−1においても状態テーブルはA,B,C(−)となる。
At
また、同じ時間2において、ディスパッチャ装置100−2のテーブル生成部320は、ディスパッチャ装置100−1と比べてやや遅れて、ディスパッチャ装置100−1とは独立に状態テーブルを生成する。このとき、テーブル生成部320は、APPサーバ120−2の稼動状態を疑異常状態と判断する。これは、例えばある一定期間内にディスパッチャ装置100−2からの要求を受けてAPPサーバ120−2で実行された処理の何れもが、異常状態と判断されるべき所要時間を要したからである。この結果生成される状態テーブルは、A,B(−),Cである。この時点で、ディスパッチャ装置100−1〜2およびサーブレットサーバ110−1の全てでバージョンIDが1となる。
Further, at the
時間3において、サーブレットサーバ110−1のテーブル返信部440は、状態テーブルをディスパッチャ装置100−1およびディスパッチャ装置100−2に対し送信する。ディスパッチャ装置100−1において、記憶している状態テーブルと受信した状態テーブルは同一であるから何らの処理は行われない。ディスパッチャ装置100−2において、記憶している状態テーブルおよび受信した状態テーブルはバージョンIDが共に1であって同一なので、第1テーブル更新部340は、受信した状態テーブルにより、記憶している状態テーブルを更新する。例えば、記憶している状態テーブルは、受信した状態テーブルにより置換される。この結果、ディスパッチャ装置100−2の記憶装置300において、状態テーブルはA,B,C(−)となる。
At
時間4において、ディスパッチャ装置100−2のテーブル生成部320は、APPサーバ120−2の稼動状態を疑異常状態と再度判断する。これは、次の一定期間内においても、ディスパッチャ装置100−2からの要求を受けてAPPサーバ120−2で実行された処理の何れもが、異常状態と判断されるべき所要時間を要したからである。この結果生成される状態テーブルは、A,B(−),Cである。また、生成されるバージョンIDは2である。そして、次の時間5において、ディスパッチャ装置100−2のテーブル送信部330は、生成したこの状態テーブルをサーブレットサーバ110−1に送信する。
At
サーブレットサーバ110−1の第2テーブル更新部430は、受信したバージョンIDである2が、記憶しているバージョンIDである1より大きいので、受信したこの状態テーブルにより、記憶している状態テーブルを更新する。APPサーバ120−2について、記憶している稼動状態は正常状態であり、受信した稼動状態は疑異常状態なので、第2テーブル更新部430は、APPサーバ120−2の稼動状態を疑異常状態に更新する。APPサーバ120−3について、記憶している稼動状態は疑異常状態であり、受信した稼動状態は正常状態なので、第2テーブル更新部430は、APPサーバ120−3の稼動状態を正常状態に更新する。この結果、状態テーブルはA,B(−),Cとなる。
The second
次の時間6において、サーブレットサーバ110−1のテーブル返信部440は、更新した状態テーブルをディスパッチャ装置100−1〜2のそれぞれに返信する。ディスパッチャ装置100−2において、既に記憶している状態テーブルおよび受信した状態テーブルは同じなので、第1テーブル更新部340は何ら処理を行わない。一方、サーブレットサーバ110−1は、記憶しているものとは異なる状態テーブルA,B(−),Cを受信し、かつ、バージョンIDも同時期の改定を示すことから、受信したこの状態テーブルにより、記憶している状態テーブルを置換する。この結果、状態テーブルはA,B(−),Cとなる。
At the
次の時間7および8において、ディスパッチャ装置100−1〜2のテーブル生成部320は、APPサーバ120−1〜3の稼動状態を評価するが、評価前と同一状態であるから図10中の表記は変化しない。同様に、サーブレットサーバ110−1の第2テーブル更新部430は状態テーブルをディスパッチャ装置100−1〜2から受信するが、既に記憶している状態テーブルと同一であるから図10中の表記は変化しない。
At the
時間9において、サーブレットサーバ110−1の第2テーブル更新部430は、APPサーバ120−2の稼動状態を疑異常状態に更新してから予め定められた時間が経過したので、APPサーバ120−2の稼動状態を異常状態に更新する。更新された稼動状態は状態テーブルに含めてディスパッチャ装置100−1〜2に返信される。この結果、状態テーブルはA,B−,Cとなる。時間10において、ディスパッチャ装置100−1〜2の第1テーブル更新部340は、受信した状態テーブルによって、既に記憶している状態テーブルを更新する。この結果、状態テーブルはA,B−,Cとなる。
At time 9, the second
図11は、ディスパッチャ装置100−1またはサーブレットサーバ110−1として機能する情報処理装置500のハードウェア構成の一例を示す。情報処理装置500は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
FIG. 11 shows an example of the hardware configuration of the
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
The
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ1040は、情報処理装置500が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。
The input /
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、情報処理装置500の起動時にCPU1000が実行するブートプログラムや、情報処理装置500のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
The input /
情報処理装置500に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して
、記録媒体から読み出され情報処理装置500にインストールされて実行される。プログラムが情報処理装置500等に働きかけて行わせる動作は、図1から図10において説明したディスパッチャ装置100−1およびサーブレットサーバ110−1における動作と同一であるから、説明を省略する。なお、ディスパッチャ装置100−2およびサーブレットサーバ110−2〜4の動作・ハードウェア構成についても、図11に示す情報処理装置500と略同一であるから説明を省略する。A program provided to the
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置500に提供してもよい。
The program shown above may be stored in an external storage medium. As the storage medium, in addition to the
以上、本実施形態に係る情報システム10によれば、処理要求・処理応答などのメッセージに含めて稼動状態を送受信させることができるので、本来必要な装置・サーバの他に追加の装置を必要とせず、なおかつ、ソフトウェア由来の障害を含めた幅広い種類の障害を検出することができる。また、あるサーバAが他のサーバBに処理を要求し、サーバBがサーバCに更に処理を要求するというように、呼び出し関係が階層的な場合においても障害発生箇所を精度良く判断できる。さらに、ディスパッチャ装置100およびサーブレットサーバ110間で稼動状態の評価結果を交換することで、誤った評価や一時的な評価の誤りを訂正できる。たとえば、Java(登録商標)のGCなどによって一時的に遅延した処理を障害として誤って判断することを避け、稼動状態評価の精度を高めることができる。
As described above, according to the
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. It will be apparent to those skilled in the art that various modifications or improvements can be added to the above-described embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.
10 情報システム
100 ディスパッチャ装置
110 サーブレットサーバ
120 APPサーバ
130 DBサーバ
135 データベース
140 システム監視装置
150 情報共有装置
300 記憶装置
310 転送部
320 テーブル生成部
330 テーブル送信部
340 第1テーブル更新部
350 停止判断部
400 記憶装置
410 要求送信部
420 状態返信部
430 第2テーブル更新部
440 テーブル返信部
500 情報処理装置DESCRIPTION OF
Claims (11)
それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置と、
要求された処理を振り分けるために、外部の端末装置から受けた処理要求を前記複数の第1階層サーバの中から選択した一の第1階層サーバに転送する転送部と、
それぞれの前記第2階層サーバの稼動状態を、転送された前記処理要求に対応する処理応答に含めて受信し、受信した稼動状態に基づいて第2階層サーバ毎の稼動状態を評価して、第2階層サーバ毎の稼動状態を示す状態テーブルを生成して記憶装置に記憶するテーブル生成部と、
前記状態テーブルの生成に応じ、生成した前記状態テーブルを記憶装置から読み出してそれぞれの前記第1階層サーバに送信するテーブル送信部と、
何れかの第1階層サーバからの状態テーブルの受信に応じて、受信した前記状態テーブルにより記憶装置に記憶した前記状態テーブルを更新する第1テーブル更新部と
を有し、
それぞれの前記第1階層サーバは、
それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置と、
ディスパッチャ装置の転送部から処理要求の転送を受けたことに応じて、要求された処理の一部を第2階層サーバに処理させるために、第2階層サーバに処理要求を送信する要求送信部と、
第2階層サーバに送信した前記処理要求に対する処理応答の状態を、当該第2階層サーバの稼動状態として、ディスパッチャ装置の転送部から転送を受けた処理要求に対する処理応答に含めて当該ディスパッチャ装置に返信する状態返信部と、
ディスパッチャ装置のテーブル送信部から状態テーブルを受信したことに応じて、受信した当該状態テーブルに基づき記憶装置に既に格納された状態テーブルを更新する第2テーブル更新部と、
状態テーブルの更新に応じて、更新した前記状態テーブルをそれぞれの前記ディスパッチャ装置に返信するテーブル返信部と
を有するシステム。A plurality of dispatcher devices that distribute processing requested from an external terminal device, a plurality of first tier servers that perform the allocated processing, and a part of the processing according to a request received from the first tier server A system comprising at least one second tier server, each dispatcher device comprising:
A storage device for storing a status table indicating the operating status of each second-tier server;
A transfer unit that transfers a processing request received from an external terminal device to one first tier server selected from the plurality of first tier servers in order to distribute the requested processing;
The operating status of each of the second tier servers is received in the processing response corresponding to the transferred processing request, and the operating status of each second tier server is evaluated based on the received operating status, A table generation unit that generates a state table indicating an operation state for each two-tier server and stores the state table in a storage device;
In response to the generation of the state table, a table transmission unit that reads the generated state table from a storage device and transmits the read state table to each first tier server;
A first table updating unit for updating the state table stored in the storage device by the received state table in response to reception of the state table from any of the first tier servers,
Each of the first tier servers is
A storage device for storing a status table indicating the operating status of each second-tier server;
A request transmission unit for transmitting a processing request to the second tier server in order to cause the second tier server to process a part of the requested processing in response to receiving the processing request from the transfer unit of the dispatcher device; ,
The status of the processing response to the processing request transmitted to the second tier server is included in the processing response to the processing request transferred from the transfer unit of the dispatcher device as the operating status of the second tier server and returned to the dispatcher device. A status reply section to
A second table updating unit for updating the state table already stored in the storage device based on the received state table in response to receiving the state table from the table transmission unit of the dispatcher device;
And a table return unit that returns the updated state table to each dispatcher device in response to the update of the state table.
前記テーブル生成部は、新たに状態テーブルを生成する毎に、当該状態テーブルに対応付けて、前回に生成した状態テーブルよりも後の改訂により生成されたことを示すバージョンIDを生成して記憶装置に記憶し、
前記テーブル送信部は、生成した状態テーブルをバージョンIDに対応付けて記憶装置から読み出してそれぞれの前記第1階層サーバに送信し、
前記第2テーブル更新部は、状態テーブルに対応付けて受信したバージョンIDが、記憶装置に格納されたバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、受信した当該状態テーブルに基づき記憶装置に格納された前記状態テーブルを更新し、さらに、受信した当該バージョンIDを更新後の当該状態テーブルに対応付けて記憶装置に格納し、
前記テーブル返信部は、状態テーブルの更新に応じて、更新した当該状態テーブルを、更新に用いた状態テーブルに対応するバージョンIDに対応付けてそれぞれのディスパッチャ装置に返信し、
前記第1テーブル更新部は、状態テーブルに対応付けて受信したバージョンIDが、記憶装置に記憶したバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、受信した当該状態テーブルにより記憶装置に記憶した前記状態テーブルを更新する
請求項1に記載のシステム。The storage device in each of the dispatcher device and the first tier server further stores a version ID indicating the revision time of the state table in association with the state table,
Each time the table generation unit newly generates a state table, the table generation unit associates the state table with the state table and generates a version ID indicating that the state table is generated by a revision later than the state table generated last time. Remember
The table transmission unit reads out the generated state table in association with the version ID from the storage device, and transmits it to each of the first tier servers.
The second table update unit is received on the condition that the version ID received in association with the state table indicates a revision of the same period or later as compared to the version ID stored in the storage device. Update the state table stored in the storage device based on the state table, and store the received version ID in the storage device in association with the updated state table,
In response to the update of the state table, the table reply unit sends the updated state table to each dispatcher device in association with the version ID corresponding to the state table used for the update,
The first table update unit receives the state on condition that the version ID received in association with the state table indicates revision of the same period or later as compared to the version ID stored in the storage device. The system according to claim 1, wherein the state table stored in the storage device is updated by a table.
前記テーブル生成部は、前記一の第1階層サーバから、当該一の第1階層サーバに対して転送した前記処理要求に応じた処理の所要時間を、前記稼動状態として、当該処理要求に対する処理応答に含めて受信する
請求項1に記載のシステム。The status reply unit includes, as the operating status, information indicating the time required for processing requested to the second tier server in response to the processing request in the processing response to the processing request received from the transfer unit of the dispatcher device. Reply to the dispatcher device
The table generation unit sets a processing time corresponding to the processing request transferred from the one first tier server to the one first tier server as the operation state, and a processing response to the processing request. The system according to claim 1, wherein the system is received.
前記ディスパッチャ装置は、生成した前記状態テーブルにおいて、何れの前記第1階層サーバも、稼動状態が正常状態でないことを条件に、前記テーブル生成部による稼動状態の受信、および、前記テーブル送信部による状態テーブルの送信を停止させる停止判断部を更に有する
請求項1に記載のシステム。The table generation unit further determines the operating state of each first tier server based on the time required from when the processing request is transmitted to each first tier server until the processing response to the processing request is received. Evaluate and generate in the state table,
In the generated state table, the dispatcher apparatus receives the operating state by the table generating unit and the state by the table transmitting unit on the condition that any of the first tier servers is not in a normal operating state. The system according to claim 1, further comprising a stop determination unit that stops transmission of the table.
前記テーブル生成部は、同一の第2階層サーバについて複数の前記稼動状態を受信して、第2階層サーバ毎に、当該第2階層サーバについて受信した前記稼動状態のうち、当該第2階層サーバが正常であることを示す稼動状態の割合が予め定められた基準値以上であることを条件に、当該第2階層サーバが正常状態であると評価する
請求項1に記載のシステム。The operating state of the second tier server is one of a normal state, a high load state that is operating but requires a time longer than a threshold for processing, and an abnormal state that is not operating.
The table generation unit receives a plurality of operating states for the same second tier server, and for each second tier server, among the operating states received for the second tier server, the second tier server The system according to claim 1, wherein the second tier server is evaluated to be in a normal state on the condition that a ratio of an operation state indicating normal is equal to or greater than a predetermined reference value.
請求項5に記載のシステム。The table generation unit indicates, for each of the second tier servers that have not been evaluated as being in a normal state, an operation indicating that the second server has a high load among the operation states received for the second tier server. The system according to claim 5, wherein the second tier server is evaluated as being in a high load condition on the condition that the state ratio is equal to or greater than a predetermined reference value.
前記第2テーブル更新部は、第2階層サーバ毎に、当該第2階層サーバの稼動状態が、既に記憶装置に記憶されている状態テーブルにおいて正常状態ではなく、かつ、ディスパッチャ装置のテーブル送信部から受信した状態テーブルにおいては正常状態であることを条件に、当該第2階層サーバの稼動状態を正常状態に更新する
請求項1に記載のシステム。The operational status of the second tier server is a normal state, a high load state that is operating but takes a time longer than a threshold for processing, an abnormal state that is not operating, a suspicious high load state that is suspected of being a high load state, and Any of the suspected abnormal states that are suspected of being abnormal,
The second table update unit, for each second tier server, indicates that the operating state of the second tier server is not normal in the state table already stored in the storage device, and from the table transmission unit of the dispatcher device. The system according to claim 1, wherein the operating state of the second tier server is updated to a normal state on condition that the received state table is in a normal state.
請求項7に記載のシステム。For each second tier server, the second table update unit is in a normal state in the state table in which the operation status of the second tier server is already stored in the storage device, and from the table transmission unit of the dispatcher device In the received status table, on the condition that it is an abnormal state or a suspected abnormal state, the operating state of the second tier server is updated to a suspected abnormal state, and further, the operating state is updated to a suspected abnormal state and then the normal state The system according to claim 7, wherein the operating state is updated to an abnormal state on condition that a predetermined period has elapsed without returning to the state.
稼動状態を疑高負荷状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を高負荷状態に更新する
請求項7に記載のシステム。For each second tier server, the second table update unit is in a normal state in the state table in which the operation status of the second tier server is already stored in the storage device, and from the table transmission unit of the dispatcher device In the received state table, on the condition that it is in a high load state, the operating state of the second tier server is updated to a suspicious high load state,
The system according to claim 7, wherein the operating state is updated to a high load condition on condition that a predetermined period has elapsed without updating the operating state to a suspicious high load state and then returning to a normal state.
それぞれの前記ディスパッチャ装置は、
それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置を有し、
ディスパッチャ装置として機能するそれぞれのコンピュータにおいて、
要求された処理を振り分けるために、外部の端末装置から受けた処理要求を前記複数の第1階層サーバの中から選択した一の第1階層サーバに対し転送部により転送することと、
それぞれの前記第2階層サーバの稼動状態を、転送された前記処理要求に対応する処理応答に含めて受信し、受信した稼動状態に基づいて第2階層サーバ毎の稼動状態を評価して、第2階層サーバ毎の稼動状態を示す状態テーブルを生成してテーブル生成部により記憶装置に記憶することと、
前記状態テーブルの生成に応じ、生成した前記状態テーブルを記憶装置から読み出してそれぞれの前記第1階層サーバに対しテーブル送信部により送信することと、
何れかの第1階層サーバからの状態テーブルの受信に応じて、受信した前記状態テーブルにより記憶装置に記憶した前記状態テーブルを第1テーブル更新部により更新することと
を有し、
それぞれの第1階層サーバは、
それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置を有し、
第1階層サーバとして機能するそれぞれのコンピュータにおいて、
ディスパッチャ装置の転送部から処理要求の転送を受けたことに応じて、要求された処理の一部を第2階層サーバに処理させるために、第2階層サーバに処理要求を要求送信部により送信することと、
第2階層サーバに送信した前記処理要求に対する処理応答の状態を、当該第2階層サーバの稼動状態として、ディスパッチャ装置の転送部から転送を受けた処理要求に対する処理応答に含めて当該ディスパッチャ装置に状態返信部により返信することと、
ディスパッチャ装置のテーブル送信部から状態テーブルを受信したことに応じて、受信した当該状態テーブルに基づき記憶装置に既に格納された状態テーブルを第2テーブル更新部により更新することと、
状態テーブルの更新に応じて、更新した前記状態テーブルをそれぞれの前記ディスパッチャ装置に対しテーブル返信部により返信することと
を有する方法。A plurality of dispatcher devices that distribute processing requested from an external terminal device, a plurality of first tier servers that perform the allocated processing, and a part of the processing according to a request received from the first tier server In a system comprising at least one second tier server, a method for managing an operating state,
Each said dispatcher device
A storage device for storing a status table indicating the operating status of each second-tier server;
In each computer that functions as a dispatcher device,
Transferring a processing request received from an external terminal device to one first tier server selected from the plurality of first tier servers by a transfer unit in order to distribute the requested processing;
The operating status of each of the second tier servers is received in the processing response corresponding to the transferred processing request, and the operating status of each second tier server is evaluated based on the received operating status, Generating a status table indicating the operating status of each two-tier server and storing it in the storage device by the table generator;
In response to the generation of the state table, the generated state table is read from a storage device and transmitted to each of the first tier servers by a table transmission unit;
Updating the state table stored in the storage device by the received state table by a first table update unit in response to reception of the state table from any of the first tier servers,
Each first tier server
A storage device for storing a status table indicating the operating status of each second-tier server;
In each computer functioning as the first tier server,
In response to receiving the processing request from the transfer unit of the dispatcher device, the request transmitting unit transmits the processing request to the second tier server in order to cause the second tier server to process a part of the requested processing. And
The status of the processing response to the processing request transmitted to the second tier server is included in the processing response to the processing request received from the transfer unit of the dispatcher device as the operating status of the second tier server, and the status of the dispatcher device Reply by the reply part,
In response to receiving the state table from the table transmission unit of the dispatcher device, updating the state table already stored in the storage device based on the received state table by the second table update unit;
A method in which, in response to an update of the state table, the updated state table is returned to each of the dispatcher devices by a table return unit.
それぞれの情報処理装置を、
それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置と、
要求された処理を振り分けるために、外部の端末装置から受けた処理要求を前記複数の第1階層サーバの中から選択した一の第1階層サーバに転送する転送部と、
それぞれの前記第2階層サーバの稼動状態を、転送された前記処理要求に対応する処理応答に含めて受信し、受信した稼動状態に基づいて第2階層サーバ毎の稼動状態を評価して、第2階層サーバ毎の稼動状態を示す状態テーブルを生成して記憶装置に記憶するテーブル生成部と、
前記状態テーブルの生成に応じ、生成した前記状態テーブルを記憶装置から読み出してそれぞれの前記第1階層サーバに送信するテーブル送信部と、
何れかの第1階層サーバからの状態テーブルの受信に応じて、受信した前記状態テーブルにより記憶装置に記憶した前記状態テーブルを更新する第1テーブル更新部と
を有するディスパッチャ装置として機能させ、
他のそれぞれの情報処理装置を、
それぞれの第2階層サーバの稼動状態を示す状態テーブルを格納するための記憶装置と、
ディスパッチャ装置の転送部から処理要求の転送を受けたことに応じて、要求された処理の一部を第2階層サーバに処理させるために、第2階層サーバに処理要求を送信する要求送信部と、
第2階層サーバに送信した前記処理要求に対する処理応答の状態を、当該第2階層サーバの稼動状態として、ディスパッチャ装置の転送部から転送を受けた処理要求に対する処理応答に含めて当該ディスパッチャ装置に返信する状態返信部と、
ディスパッチャ装置のテーブル送信部から状態テーブルを受信したことに応じて、受信した当該状態テーブルに基づき記憶装置に既に格納された状態テーブルを更新する第2テーブル更新部と、
状態テーブルの更新に応じて、更新した前記状態テーブルをそれぞれの前記ディスパッチャ装置に返信するテーブル返信部と
を有する第1階層サーバとして機能させるプログラム。A plurality of dispatcher devices that distribute processing requested from an external terminal device, a plurality of first tier servers that perform the allocated processing, and a part of the processing according to a request received from the first tier server As a system comprising at least one second tier server, a program for causing a plurality of information processing devices to function,
Each information processing device
A storage device for storing a status table indicating the operating status of each second-tier server;
A transfer unit that transfers a processing request received from an external terminal device to one first tier server selected from the plurality of first tier servers in order to distribute the requested processing;
The operating status of each of the second tier servers is received in the processing response corresponding to the transferred processing request, and the operating status of each second tier server is evaluated based on the received operating status, A table generation unit that generates a state table indicating an operation state for each two-tier server and stores the state table in a storage device;
In response to the generation of the state table, a table transmission unit that reads the generated state table from a storage device and transmits the read state table to each first tier server;
In response to reception of the state table from any of the first tier servers, the first table update unit that updates the state table stored in the storage device by the received state table, and functions as a dispatcher device,
Each other information processing device
A storage device for storing a status table indicating the operating status of each second-tier server;
A request transmission unit for transmitting a processing request to the second tier server in order to cause the second tier server to process a part of the requested processing in response to receiving the processing request from the transfer unit of the dispatcher device; ,
The status of the processing response to the processing request transmitted to the second tier server is included in the processing response to the processing request transferred from the transfer unit of the dispatcher device as the operating status of the second tier server and returned to the dispatcher device. A status reply section to
A second table updating unit for updating the state table already stored in the storage device based on the received state table in response to receiving the state table from the table transmission unit of the dispatcher device;
A program that functions as a first tier server having a table reply unit that replies the updated state table to each dispatcher device in response to an update of the state table.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008552140A JP4866429B2 (en) | 2006-12-27 | 2007-12-26 | Technology for accurately detecting system failures |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006350936 | 2006-12-27 | ||
JP2006350936 | 2006-12-27 | ||
JP2008552140A JP4866429B2 (en) | 2006-12-27 | 2007-12-26 | Technology for accurately detecting system failures |
PCT/JP2007/075035 WO2008081844A1 (en) | 2006-12-27 | 2007-12-26 | Technique for accurately detecting system failure |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008081844A1 JPWO2008081844A1 (en) | 2010-04-30 |
JP4866429B2 true JP4866429B2 (en) | 2012-02-01 |
Family
ID=39588526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008552140A Expired - Fee Related JP4866429B2 (en) | 2006-12-27 | 2007-12-26 | Technology for accurately detecting system failures |
Country Status (6)
Country | Link |
---|---|
US (2) | US20080215325A1 (en) |
JP (1) | JP4866429B2 (en) |
KR (1) | KR101033447B1 (en) |
CN (1) | CN101568905B (en) |
TW (1) | TW200841189A (en) |
WO (1) | WO2008081844A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4827721B2 (en) * | 2006-12-26 | 2011-11-30 | ニュアンス コミュニケーションズ,インコーポレイテッド | Utterance division method, apparatus and program |
US20100017486A1 (en) * | 2008-07-16 | 2010-01-21 | Fujitsu Limited | System analyzing program, system analyzing apparatus, and system analyzing method |
KR101010911B1 (en) * | 2008-12-31 | 2011-01-26 | 엔에이치엔(주) | Method for sending and receiving message in message network system |
KR20120060655A (en) * | 2010-12-02 | 2012-06-12 | 한국전자통신연구원 | Routing Method And Apparatus For Detecting Server Attacking And Network Using Method Thereof |
CN104219105A (en) * | 2013-05-31 | 2014-12-17 | 英业达科技有限公司 | Error notification device and method |
US20150006730A1 (en) * | 2013-06-27 | 2015-01-01 | Sap Ag | Enabling multi-tenant virtual servers in a cloud system |
JP2015118685A (en) * | 2013-11-12 | 2015-06-25 | 株式会社リコー | Information processing system, information processing method, and program |
US9329937B1 (en) * | 2013-12-31 | 2016-05-03 | Google Inc. | High availability architecture |
JP2015215827A (en) * | 2014-05-13 | 2015-12-03 | 富士通株式会社 | Transmission order determination program, transmission order determination device and transmission order determination method |
US10134425B1 (en) * | 2015-06-29 | 2018-11-20 | Amazon Technologies, Inc. | Direction-based speech endpointing |
CN107291558B (en) * | 2016-03-30 | 2020-11-24 | 阿里巴巴集团控股有限公司 | Application program interface deadlock monitoring method and device |
TWI691852B (en) | 2018-07-09 | 2020-04-21 | 國立中央大學 | Error detection device and error detection method for detecting failure of hierarchical system, computer-readable recording medium and computer program product |
JP7063292B2 (en) | 2019-03-15 | 2022-05-09 | オムロン株式会社 | Control system, configuration device, and configuration program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH118623A (en) * | 1997-03-31 | 1999-01-12 | Alcatel Alsthom Co General Electricite | Propagation system for state of network object |
JP2001356972A (en) * | 2000-06-15 | 2001-12-26 | Fast Net Kk | Network monitoring system and method |
JP2003186833A (en) * | 2001-12-20 | 2003-07-04 | Hitachi Ltd | Responsiveness measurement evaluation device and distributed computer system using this device |
JP2003196178A (en) * | 2001-12-25 | 2003-07-11 | Hitachi Ltd | Hierarchical structure server system |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4817092A (en) | 1987-10-05 | 1989-03-28 | International Business Machines | Threshold alarms for processing errors in a multiplex communications system |
JP3350293B2 (en) * | 1994-08-09 | 2002-11-25 | 株式会社東芝 | Dialogue processing device and dialogue processing method |
US5806021A (en) * | 1995-10-30 | 1998-09-08 | International Business Machines Corporation | Automatic segmentation of continuous text using statistical approaches |
US6694055B2 (en) * | 1998-07-15 | 2004-02-17 | Microsoft Corporation | Proper name identification in chinese |
US20020032564A1 (en) * | 2000-04-19 | 2002-03-14 | Farzad Ehsani | Phrase-based dialogue modeling with particular application to creating a recognition grammar for a voice-controlled user interface |
GB9930731D0 (en) * | 1999-12-22 | 2000-02-16 | Ibm | Voice processing apparatus |
EP1287418A2 (en) | 2000-05-10 | 2003-03-05 | Tech Link International Entertainment Limited | Security system for high level transactions between devices |
US6873953B1 (en) * | 2000-05-22 | 2005-03-29 | Nuance Communications | Prosody based endpoint detection |
US6934756B2 (en) * | 2000-11-01 | 2005-08-23 | International Business Machines Corporation | Conversational networking via transport, coding and control conversational protocols |
US20020075304A1 (en) * | 2000-12-18 | 2002-06-20 | Nortel Networks Limited | Method and system for supporting communications within a virtual team environment |
US20020075306A1 (en) * | 2000-12-18 | 2002-06-20 | Christopher Thompson | Method and system for initiating communications with dispersed team members from within a virtual team environment using personal identifiers |
US7177810B2 (en) * | 2001-04-10 | 2007-02-13 | Sri International | Method and apparatus for performing prosody-based endpointing of a speech signal |
US7099912B2 (en) * | 2001-04-24 | 2006-08-29 | Hitachi, Ltd. | Integrated service management system |
US7313526B2 (en) * | 2001-09-05 | 2007-12-25 | Voice Signal Technologies, Inc. | Speech recognition using selectable recognition modes |
US7076430B1 (en) * | 2002-05-16 | 2006-07-11 | At&T Corp. | System and method of providing conversational visual prosody for talking heads |
US6996583B2 (en) | 2002-07-01 | 2006-02-07 | International Business Machines Corporation | Real-time database update transaction with disconnected relational database clients |
US20040024585A1 (en) * | 2002-07-03 | 2004-02-05 | Amit Srivastava | Linguistic segmentation of speech |
US7567902B2 (en) * | 2002-09-18 | 2009-07-28 | Nuance Communications, Inc. | Generating speech recognition grammars from a large corpus of data |
US7373300B1 (en) * | 2002-12-18 | 2008-05-13 | At&T Corp. | System and method of providing a spoken dialog interface to a website |
US7243071B1 (en) * | 2003-01-16 | 2007-07-10 | Comverse, Inc. | Speech-recognition grammar analysis |
US20040193400A1 (en) * | 2003-03-24 | 2004-09-30 | Mcdonald David D. | Method and system for producing cohesive phrases from fixed phrases in a natural language system |
US7493251B2 (en) * | 2003-05-30 | 2009-02-17 | Microsoft Corporation | Using source-channel models for word segmentation |
KR100577387B1 (en) * | 2003-08-06 | 2006-05-10 | 삼성전자주식회사 | Method and apparatus for handling speech recognition errors in spoken dialogue systems |
JP4516306B2 (en) * | 2003-11-28 | 2010-08-04 | 株式会社日立製作所 | How to collect storage network performance information |
US7756709B2 (en) * | 2004-02-02 | 2010-07-13 | Applied Voice & Speech Technologies, Inc. | Detection of voice inactivity within a sound stream |
JP4855655B2 (en) * | 2004-06-15 | 2012-01-18 | 株式会社ソニー・コンピュータエンタテインメント | Processing management apparatus, computer system, distributed processing method, and computer program |
US7680647B2 (en) * | 2005-06-21 | 2010-03-16 | Microsoft Corporation | Association-based bilingual word alignment |
US9300790B2 (en) * | 2005-06-24 | 2016-03-29 | Securus Technologies, Inc. | Multi-party conversation analyzer and logger |
US20070067172A1 (en) * | 2005-09-22 | 2007-03-22 | Minkyu Lee | Method and apparatus for performing conversational opinion tests using an automated agent |
-
2007
- 2007-12-03 TW TW096145883A patent/TW200841189A/en unknown
- 2007-12-26 WO PCT/JP2007/075035 patent/WO2008081844A1/en active Application Filing
- 2007-12-26 KR KR1020097011538A patent/KR101033447B1/en not_active IP Right Cessation
- 2007-12-26 JP JP2008552140A patent/JP4866429B2/en not_active Expired - Fee Related
- 2007-12-26 CN CN2007800483151A patent/CN101568905B/en not_active Expired - Fee Related
- 2007-12-27 US US11/964,858 patent/US20080215325A1/en not_active Abandoned
-
2011
- 2011-10-03 US US13/252,009 patent/US9128836B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH118623A (en) * | 1997-03-31 | 1999-01-12 | Alcatel Alsthom Co General Electricite | Propagation system for state of network object |
JP2001356972A (en) * | 2000-06-15 | 2001-12-26 | Fast Net Kk | Network monitoring system and method |
JP2003186833A (en) * | 2001-12-20 | 2003-07-04 | Hitachi Ltd | Responsiveness measurement evaluation device and distributed computer system using this device |
JP2003196178A (en) * | 2001-12-25 | 2003-07-11 | Hitachi Ltd | Hierarchical structure server system |
Also Published As
Publication number | Publication date |
---|---|
CN101568905A (en) | 2009-10-28 |
CN101568905B (en) | 2011-10-12 |
JPWO2008081844A1 (en) | 2010-04-30 |
TW200841189A (en) | 2008-10-16 |
US20080215325A1 (en) | 2008-09-04 |
KR20090102747A (en) | 2009-09-30 |
US9128836B2 (en) | 2015-09-08 |
WO2008081844A1 (en) | 2008-07-10 |
US20120023366A1 (en) | 2012-01-26 |
KR101033447B1 (en) | 2011-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4866429B2 (en) | Technology for accurately detecting system failures | |
US20210250265A1 (en) | Health status monitoring for services provided by computing devices | |
US10110425B2 (en) | Differentiated service-based graceful degradation layer | |
US7937437B2 (en) | Method and apparatus for processing a request using proxy servers | |
US7225356B2 (en) | System for managing operational failure occurrences in processing devices | |
US9703608B2 (en) | Variable configurations for workload distribution across multiple sites | |
US20080288812A1 (en) | Cluster system and an error recovery method thereof | |
US20120297107A1 (en) | Storage controller system with data synchronization and method of operation thereof | |
US20180101413A1 (en) | Control device and control method | |
EP2637097A1 (en) | Differentiated service-based graceful degradation layer | |
JP2021149550A (en) | Storage system and analytical method of storage system | |
US20190124145A1 (en) | Method and apparatus for availability management | |
JP2017174038A (en) | Information processing system, information processing method, and program | |
US20110219268A1 (en) | Monitoring program, monitoring apparatus, and monitoring method | |
JP6134720B2 (en) | Connection method | |
CN111104266A (en) | Access resource allocation method and device, storage medium and electronic equipment | |
JP2009025971A (en) | Information processor and log data collection system | |
US7607051B2 (en) | Device and method for program correction by kernel-level hardware monitoring and correlating hardware trouble to a user program correction | |
WO2019161908A1 (en) | Dynamic determination of consistency levels for distributed database transactions | |
JP4375121B2 (en) | Processing agent method in database management system | |
JP2010087834A (en) | Network monitoring system | |
JP2007133665A (en) | Computer system, distributed processing method, computer and distributed processing program | |
WO2023275984A1 (en) | Virtualization system restoration device and virtualization system restoration method | |
JP2011253231A (en) | Fault monitoring device, method, and program for parallel distributed processing system | |
JP2006268193A (en) | Management system, management center, and management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111025 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |