JP4866429B2 - Technology for accurately detecting system failures - Google Patents

Technology for accurately detecting system failures Download PDF

Info

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
Application number
JP2008552140A
Other languages
Japanese (ja)
Other versions
JPWO2008081844A1 (en
Inventor
学 山本
秀樹 田井
洋 堀井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008552140A priority Critical patent/JP4866429B2/en
Publication of JPWO2008081844A1 publication Critical patent/JPWO2008081844A1/en
Application granted granted Critical
Publication of JP4866429B2 publication Critical patent/JP4866429B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0709Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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を参照されたい。
特開2001−282759号公報 特開2003−196178号公報
For a reference technique related to failure detection, refer to Patent Documents 1-2 below.
JP 2001-282759 A JP 2003-196178 A

上述の多層サーバシステムにおいては、第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 information system 10. The information system 10 includes a dispatcher device 100-1 and 2, a servlet server 110-1 to 4, an APP server 120-1 to 3, a DB server 130, a database 135, a system monitoring device 140, and an information sharing device. 150. Each of the dispatcher apparatuses 100-1 and 100-2 is directly connected to the servlet servers 110-1 to 110-4. The dispatcher devices 100-1 and 100-2 distribute the processing requested from the external terminal device to the servlet servers 110-1 to 110-4.

たとえば、ディスパッチャ装置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 DB server 130, and the processing requested from the external terminal device. To process at least a part of Each of the APP servers 120-1 to 120-3 is an example of a second tier server according to the present invention, and responds to requests received from the servlet servers 110-1 to 4 for a part of processing requested by an external terminal device. To process. The DB server 130 may read data from the database 135 or update the database 135 in the course of processing. The DB server 130 is also an example of a second tier server. That is, the second tier server receives a request directly from the servlet server, or indirectly through another server / device (here, the APP servers 100-1 to 3), and responds to the request. Also included are those that process some of the requested processing.

システム監視装置140は、ディスパッチャ装置100−1〜2、サーブレットサーバ110−1〜4、APPサーバ120−1〜3およびDBサーバ130のそれぞれにおいて動作しているエージェントソフトウェアなどから、これらそれぞれの装置・サーバの状態を示すデータを受信する。たとえば、それぞれの装置・サーバにおけるCPUの利用率、ハードディスクドライブのアクセス頻度などのハードウェアの稼動状態や、CPUや筐体の温度などの物理状態を示すデータが受信される。そして、情報共有装置150は、システム監視装置140が受信したこれらそれぞれのデータに基づいて、情報システム10が有する何れかの装置・サーバに異常が発生したかどうかを判断し、その判断結果を外部に通知したり、異常が発生した装置・サーバを停止させるなどの処理を行う。   The system monitoring device 140 includes agent software running on each of the dispatcher devices 100-1 and 2, the servlet servers 110-1 to 4, the APP servers 120-1 to 3, and the DB server 130. Receive data indicating server status. For example, data indicating the operating state of the hardware such as the CPU usage rate and the access frequency of the hard disk drive in each device / server, and the physical state such as the temperature of the CPU and the housing are received. Then, the information sharing apparatus 150 determines whether an abnormality has occurred in any of the apparatuses / servers included in the information system 10 based on the respective data received by the system monitoring apparatus 140, and the determination result is externally transmitted. And processing such as stopping the device / server where the error occurred.

図1に示す情報システム10によれば、情報システム10中の各装置・サーバの状態を監視して、情報システム10に生じた異常を検出することができるとも考えられる。しかしながら、このような情報システム10の構成によっては、ソフトウェアが主な原因で生じた異常は適切に検出できない場合がある。例えば、ソフトウェアの設計等の不良が原因のデッドロックは、ソフトウェアそれ自体は設計通り正常動作していることから、CPUの状態等によってはその発生を適切に検出できない。また、本来必要なサーバ・装置に加えてシステム監視装置140および情報共有装置150が必要なので、他のサーバ・装置が正常でもシステム監視装置140および情報共有装置150自体の異常が原因で誤って異常を検出してしまう場合がある。
これに対し、以降において説明する情報システム10によれば、異常検出のための機構を、処理要求や処理応答の送受信の機構に組み込むことで、情報システム10における本来の動作に悪影響を与えることなく、様々な種類の異常を検出することができる。
以降、具体的に説明する。
According to the information system 10 illustrated in FIG. 1, it may be considered that an abnormality occurring in the information system 10 can be detected by monitoring the state of each device / server in the information system 10. However, depending on the configuration of the information system 10 as described above, there may be a case where an abnormality caused mainly by software cannot be detected appropriately. For example, a deadlock caused by a defect in software design or the like cannot be properly detected depending on the state of the CPU or the like because the software itself operates normally as designed. Further, since the system monitoring device 140 and the information sharing device 150 are necessary in addition to the originally required server / device, the system monitoring device 140 and the information sharing device 150 itself are abnormally erroneous even if other servers / devices are normal. May be detected.
On the other hand, according to the information system 10 described below, by incorporating a mechanism for detecting an abnormality into a mechanism for transmitting and receiving processing requests and processing responses, the original operation of the information system 10 is not adversely affected. Various types of abnormalities can be detected.
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 information system 10 according to the present embodiment. As in FIG. 1, the information system 10 includes dispatcher apparatuses 100-1 and 2, servlet servers 110-1 to 4, APP servers 120-1 to 120, a DB server 130, and a database 135. However, unlike the information system 10 illustrated in FIG. 1, the information system 10 illustrated in FIG. 2 may not include the system monitoring device 140 and the information sharing device 150. The outline of processing in each of the dispatcher devices 100-1 and 100-2, the servlet servers 110-1 and 110-4, the APP servers 120-1 and 120-3, the DB server 130, and the database 135 is the same as that shown in FIG. However, each server / device performs processing for detecting an abnormality in addition to transmission / reception of processing requests and processing responses. In addition, in order to use for abnormality detection, each server / device is provided with a mechanism for measuring a time required from when a processing request is transmitted to another server / device until the processing response is received.

図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 storage device 300, a transfer unit 310, a table generation unit 320, a table transmission unit 330, a first table update unit 340, and a stop determination unit 350. First, the relationship between these members and hardware resources will be briefly described. The storage device 300 stores information necessary for other members, and is realized by, for example, a RAM 1020 or a hard disk drive 1040 described later. The transfer unit 310 and the table transmission unit 330 perform transmission and reception of information and the like, and are realized by operating a CPU 1000 and a communication interface 1030 described later based on installed programs. The table generation unit 320, the first table update unit 340, and the stop determination unit 350 perform information calculation / processing and condition determination, and are realized by operating a CPU 1000 described below based on an installed program. .

記憶装置300は、各装置・サーバの稼動状態を示す状態テーブルを格納するために設けられている。状態テーブルとは、具体的には、サーブレットサーバ110−1〜4、APPサーバ120−1〜3およびDBサーバ130のそれぞれの稼動状態を示すものをいう。そして、稼動状態とは、たとえば、正常状態、動作しているが処理に閾値以上の時間を要する高負荷状態、動作していない異常状態、高負荷状態の疑いがある疑高負荷状態、および、異常状態の疑いがある疑異常状態の何れかである。   The storage device 300 is provided to store a status table indicating the operating status of each device / server. Specifically, the status table refers to a table indicating the operating status of each of the servlet servers 110-1 to 4, the APP servers 120-1 to 120-3, and the DB server 130. And the operating state is, for example, 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 It is one of the suspected abnormal states that are suspected of abnormal states.

転送部310は、要求された処理を振り分けるために、外部の端末装置から受けた処理要求を、複数のサーブレットサーバ110−1〜4の中から選択した一のサーブレットサーバ110に転送する。前述のように、サーブレットサーバ110の選択はラウンドロビン方式で行われてもよい。テーブル生成部320は、それぞれのAPPサーバ120−1〜3およびDBサーバ130の稼動状態を、転送された処理要求に対応する処理応答に含めて受信する。   The transfer unit 310 transfers a processing request received from an external terminal device to one servlet server 110 selected from the plurality of servlet servers 110-1 to 110-4 in order to distribute the requested processing. As described above, the selection of the servlet server 110 may be performed by a round robin method. The table generation unit 320 receives the operational states of the APP servers 120-1 to 120-3 and the DB server 130 in the processing response corresponding to the transferred processing request.

ここで処理応答に含めて受信する稼動状態とは、好ましくは、その処理要求に応じてサーブレットサーバ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 transfer unit 310 transfers a processing request A to the servlet server 110-1, and the servlet server 110-1 that receives the processing request A transmits the processing request B to the APP server 120-1 in response to the request A, The time required for processing corresponding to the processing request B is received in the processing response A to the processing request A.

各稼動状態の具体例として、例えば、異常状態は、所要時間が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 table generating unit 320 receives, the operating state may be a numerical value indicating such a required time, or may indicate each state that has already been determined based on the numerical value. In addition to the required time, the operating state may indicate other index values indicating the processing state in each server or apparatus.

指標値の例としては、処理のスループット、レイテンシなどが挙げられる。また、テーブル生成部320は、各処理についての所要時間を稼動状態として受信するのではなく、一定期間に応答を受信した複数処理についての所要時間の平均を稼動状態として受信してもよい。そして、テーブル生成部320は、受信した稼動状態に基づいてAPPサーバ120−1〜3およびDBサーバ130のそれぞれについての稼動状態を評価して、評価した各稼動状態を示す状態テーブルを生成して記憶装置300に記憶する。   Examples of index values include processing throughput, latency, and the like. Further, the table generation unit 320 may receive, as an operating state, an average of the required times for a plurality of processes that have received a response during a certain period, instead of receiving the required time for each process as an operating state. And the table production | generation part 320 evaluates the operation state about each of APP server 120-1-3 and DB server 130 based on the received operation state, and produces | generates the state table which shows each evaluated operation state. Store in the storage device 300.

稼動状態の評価とは、ある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 table generation unit 320 operates for each servlet server 110 based on the time required from when the processing request is transmitted to each of the servlet servers 110-1 to 110-4 until the processing response to the processing request is received. The state may be evaluated and generated by being included in the state table.

テーブル送信部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 table transmission unit 330 reads the generated state table from the storage device 300 and transmits it to the servlet servers 110-1 to 110-4. The first table updating unit 340 updates the state table already stored in the storage device 300 with the received state table in response to the reception of the state table from any of the servlet servers 110-1 to 110-4. The stop determination unit 350 receives the operation state by the table generation unit 320 and the table transmission unit 330 on the condition that any of the servlet servers 110 in the state table stored in the storage device 300 is not in a normal state. Stops sending the status table by.
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 storage device 400, a request transmission unit 410, a status reply unit 420, a second table update unit 430, and a table reply unit 440. As in the case of the dispatcher apparatus 100-1, the relationship with the hardware resources will be described first. The storage device 400 stores information necessary for other members, and is realized by, for example, a RAM 1020 or a hard disk drive 1040 described later. The request transmission unit 410 and the table reply unit 440 perform transmission / reception of processing responses and the like, and are realized by operating a CPU 1000 and a communication interface 1030 described later based on installed programs. The status reply unit 420 and the second table update unit 430 perform information calculation / processing and condition determination, and are realized by operating a CPU 1000 described later according to an installed program.

記憶装置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 storage device 400 is provided to store state tables indicating the operation states of the servlet servers 110-1 to 110-4, the APP servers 120-1 to 120-3 and the DB server 130. In response to receiving the transfer of the processing request from the storage device 300 of the dispatcher device (for example, the dispatcher device 100-1), the request transmission unit 410 transfers a part of the requested processing to the APP server 120-1 to 3 or DB. In order to cause the server 130 (hereinafter referred to as the APP server 120-1 or the like) to perform processing, a processing request is transmitted to the APP server 120-1 or the like. The status reply unit 420 uses the status of the processing response to the processing request transmitted by the request transmission unit 410 to the APP server 120-1 or the like as the operating status of the APP server 120-1 from the storage device 300 of the dispatcher apparatus 100-1. It is returned to the dispatcher apparatus 100-1 in the processing response to the processing request received.

ここで、処理応答の状態とは、例えば、処理要求の送信から処理応答の受信までの所要時間をいう。つまり、処理の一例として、要求送信部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 request transmission unit 410 resets a timer when a processing request is transmitted to the APP server 120-1, and refers to the value of the timer when a processing response to the processing request is received. And measure the time required for processing. The required time becomes the state of the processing response.

第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 table transmission unit 330 of the dispatcher device (for example, the dispatcher device 100-1), the second table update unit 430 is already stored in the storage device 400 based on the received state table. Update the state table. The second table update unit 430 may store the received state table in the storage device 400 when not stored in the storage device 400. In response to the update of the state table, the table reply unit 440 returns the updated state table to each dispatcher device. The reply destination is not limited to the transmission source of the state table for the second table updating unit 430, but is each of all the dispatcher apparatuses 100 that are directly connected to the servlet server 110-1. In addition, the status table to be returned may be transmitted by being included in a message of a processing response to the dispatcher apparatuses 100-1 and 100-2 from the servlet servers 110-1 to 110-4.

以上、図3および図4を参照して説明したように、情報システム10においては、ディスパッチャ装置100およびサーブレットサーバ110が状態テーブルを相互に送信してその内容を反映し合う。これにより、ディスパッチャ装置100−1〜2およびサーブレットサーバ110−1〜4の間で各サーバ・装置の稼動状態を適切に共有させることができる。それぞれのサーバ・装置は受信した複数の状態テーブルに基づいて、既に記憶している状態テーブルを更新することで、正常状態だがある処理にのみ偶然に処理時間を要したような場合でも、状態を誤って判断することを防ぐことができる。   As described above with reference to FIGS. 3 and 4, in the information system 10, the dispatcher device 100 and the servlet server 110 transmit the state tables to each other and reflect the contents. Thereby, the operation state of each server / device can be appropriately shared between the dispatcher devices 100-1 and 100-2 and the servlet servers 110-1 to 110-4. Each server / device updates the already stored state table based on the received multiple state tables, so that even if processing time is accidentally required only for processing that is in a normal state, the state can be changed. It is possible to prevent erroneous determination.

図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 storage device 300 or the storage device 400. Each of the storage device 300 and the storage device 400 stores, as a state table, the operating state of the server / device identified by the server ID in association with the server ID. Each of the storage device 300 and the storage device 400 further stores a version ID indicating the revision time of the state table in association with the state table. Note that the storage device 300 and the storage device 400 are independently managed in the dispatcher device 100 and the servlet server 110, respectively.

具体例として、記憶装置300は、サーブレットサーバ110−1というサーバIDに、そのサーバの稼動状態として正常状態を対応付けて記憶する。一方、記憶装置300は、APPサーバ120−1というサーバIDに、そのサーバの稼動状態として疑高負荷状態を対応付けて記憶する。また、記憶装置300は、DBサーバ130というサーバIDに、そのサーバの稼動状態として正常状態を対応付けて記憶する。バージョンIDは、改訂の時期や順序を識別可能とするものであり、これによって状態テーブル更新の可否を判断することができる。具体的には以下の通りである。   As a specific example, the storage device 300 stores a normal state associated with the server ID of the servlet server 110-1 as the operating state of the server. On the other hand, the storage device 300 stores a server ID of the APP server 120-1 in association with a suspicious load state as the operating state of the server. In addition, the storage device 300 stores a server ID of the DB server 130 in association with a normal state as the operating state of the server. The version ID makes it possible to identify the revision time and order, and it is possible to determine whether or not the state table can be updated. Specifically, it is as follows.

記憶装置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 storage device 300, each time a new state table is generated, the table generating unit 320 is associated with the state table and generated by a revision later than the previously generated state table. Is generated and stored in the storage device 300. For example, when the version ID is managed as an integer value, the table generating unit 320 increments the already stored version ID and stores it in the storage device 300 every time a new state table is generated. The cycle for generating the state table is determined in common for the dispatcher apparatuses 100-1 and 100-2, for example, every few minutes or every few seconds. Therefore, although the IDs of the generated state tables are generally synchronized, the process for maintaining the synchronization is not performed between the dispatcher apparatuses 100-1 and 100-2, so that the IDs are not always completely synchronized. Absent.

また、テーブル送信部330は、テーブル生成部320により生成されて記憶装置300に記憶された状態テーブルを、バージョンIDに対応付けて記憶装置300から読み出して、それぞれのサーブレットサーバ110−1〜4に送信する。記憶装置400におけるバージョンIDに関する処理として、第2テーブル更新部430は、状態テーブルに対応付けて受信したバージョンIDが、記憶装置400に格納されたバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、受信したその状態テーブルに基づき、記憶装置400に格納された状態テーブルを更新する。そしてその場合は、第2テーブル更新部430は、受信したそのバージョンIDを更新後の状態テーブルに対応付けて記憶装置400に格納する。   In addition, the table transmission unit 330 reads the state table generated by the table generation unit 320 and stored in the storage device 300 from the storage device 300 in association with the version ID, and sends it to each servlet server 110-1 to 4. Send. As a process related to the version ID in the storage device 400, the second table updating unit 430 compares the received version ID with the state table at the same time as or later than the version ID stored in the storage device 400. On condition that the revision is indicated, the state table stored in the storage device 400 is updated based on the received state table. In that case, the second table update unit 430 stores the received version ID in the storage device 400 in association with the updated state table.

また、テーブル返信部440は、状態テーブルの更新に応じて、更新したその状態テーブルを、更新に用いた状態テーブルに対応するバージョンIDに対応付けてそれぞれのディスパッチャ装置100に返信する。この返信を受けて第1テーブル更新部340は、状態テーブルに対応付けて受信したバージョンIDが、記憶装置300に記憶したバージョンIDと比較して同時期又は後の時期の改定を示すことを条件に、受信したこの状態テーブルにより、記憶装置300に記憶した状態テーブルを更新する。
以上のように、状態テーブルがバージョンIDに対応付けて管理されることで、通信トラフィックの集中などで一部の状態テーブルが遅延して到着した場合であっても、最新の状態テーブルのみを選択して参照できる。
Further, in response to the update of the state table, the table return unit 440 returns the updated state table to each dispatcher apparatus 100 in association with the version ID corresponding to the state table used for the update. In response to this reply, the first table updating unit 340 is provided on the condition that the version ID received in association with the state table indicates revision of the same period or a later period as compared with the version ID stored in the storage device 300. Then, the state table stored in the storage device 300 is updated with the received state table.
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 servlet server 110 selected from the plurality of servlet servers 110-1 to 110-4. (S610). When receiving a processing response to the transferred processing request (S620: YES), the transfer unit 310 returns the processing response to the external terminal device (S630).

次に、テーブル生成部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 table generation unit 320 generates a state table based on the processing response message (S640). Specifically, the table generation unit 320 acquires the operating statuses of the APP servers 120-1 to 120-3 and the DB server 130 from the processing response message. Based on the acquired operating statuses, the table generating unit 320 acquires the APP. The operating status of each server / device for the servers 120-1 to 120-3 and the DB server 130 is evaluated. In addition, the table generation unit 320 evaluates the operating state of the servlet servers 110-1 to 110-4 based on the time required from when the processing request is transferred until this processing response is received. The evaluated operating status is generated by being included in the status table. The newly generated state table is stored in the storage device 300 in place of the state table already stored in the storage device 300. The version ID is incremented. The evaluation of the operating state is based on the operating state included in a plurality of processing responses received within a predetermined period in the past, and the same server / device is evaluated based on the plurality of operating states. May be. Details will be described later. When the newly generated state table and the already stored state table are the same, the table generating unit 320 does not need to update the storage device 300 with the newly generated state table. . In this case, the table transmission unit 330 described later does not have to transmit the state table in S660.

次に、停止判断部350は、状態テーブルの送受信を停止するべき条件が成立したかどうかを判断する(S650)。停止するべき条件とは、たとえば、サーブレットサーバ110−1〜4の何れの稼動状態も正常状態でないことである。このような場合には、ディスパッチャ装置100−1〜2およびサーブレットサーバ110−1〜4間で状態テーブルの相互送信が円滑に行えなくなるからである。停止条件が成立していなければ(S650:NO)、テーブル送信部330は、生成された状態テーブルを記憶装置300から読み出して、それぞれのサーブレットサーバ110に対し送信する(S660)。停止条件が成立していれば(S650:YES)、テーブル送信部330は、状態テーブルを送信しないで次の処理に移る。   Next, stop determination unit 350 determines whether a condition for stopping transmission / reception of the state table is satisfied (S650). The condition to be stopped is, for example, that none of the operating states of the servlet servers 110-1 to 110-4 are in a normal state. In such a case, mutual transmission of the status table between the dispatcher apparatuses 100-1 and 100-2 and the servlet servers 110-1 and 110-4 cannot be performed smoothly. If the stop condition is not satisfied (S650: NO), the table transmission unit 330 reads the generated state table from the storage device 300 and transmits it to each servlet server 110 (S660). If the stop condition is satisfied (S650: YES), the table transmission unit 330 proceeds to the next process without transmitting the state table.

なお、停止判断部350は、停止条件が成立した場合であっても、成立から予め定められた期間が経過したことを条件に、テーブル生成部320により稼動状態の受信、および、テーブル送信部330による状態テーブルの送信を再開させてもよい。再開しても直ちに停止条件が成立した場合には、停止判断部350は、稼動状態の受信および状態テーブルの送信を停止して、上記予め定められた期間よりも長い期間待機する。そして、その期間経過後に停止判断部350は、稼動状態の受信および状態テーブルの送信を再開する。このように、障害の回復が遅れるのに従って待機時間を長くすることで、障害発生時の情報システム10の負荷をできるだけ軽減して、障害からの回復を促すことができる。   Even if the stop condition is satisfied, the stop determination unit 350 receives the operating state by the table generation unit 320 and the table transmission unit 330 on the condition that a predetermined period has elapsed since the establishment. The transmission of the state table by may be resumed. If the stop condition is satisfied immediately after restarting, stop determination unit 350 stops receiving the operating state and transmitting the state table, and waits for a period longer than the predetermined period. Then, after the period has elapsed, stop determination unit 350 resumes reception of the operating state and transmission of the state table. In this way, by increasing the standby time as the recovery of the failure is delayed, the load on the information system 10 at the time of the failure can be reduced as much as possible to facilitate the recovery from the failure.

また、第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 table update unit 340 determines whether a new state table has been received from the servlet servers 110-1 to 110-4 (S670). That is, the first table update unit 340 stores the version ID received in association with this state table in the storage device 300 in response to the reception of the state table from any of the servlet servers 110-1 to 110-4. It is judged whether the revision of the same period or a later period is shown in comparison with the version ID of the current version ID. To indicate a revision at the same time or a later time means, for example, that the received version ID number is the same as or greater than the already stored version ID number. On condition that a new state table has been received (S670: YES), the first table updating unit 340 updates the state table stored in the storage device 300 with the received state table (S680).

なお、新たな状態テーブルを生成する処理をしている間に、サーブレットサーバ110から状態テーブルを受信した場合には、テーブル送信部330が新たに生成した状態テーブルを送信してから、第1テーブル更新部340が状態テーブルの更新を試みることが望ましい。このように、処理の所要時間等に基づく稼動状態の評価を優先させることで、稼動状態の評価に用いる所要時間等の情報を情報システム10全体で増加させることができ、ゆえに、稼動状態の評価の精度を高めることができる。   If the status table is received from the servlet server 110 during the process of generating a new status table, the first table is transmitted after the table transmission unit 330 transmits the newly generated status table. It is desirable that the update unit 340 tries to update the state table. As described above, by giving priority to the evaluation of the operation state based on the time required for the processing, the information such as the required time used for the evaluation of the operation state can be increased in the entire information system 10. Can improve the accuracy.

図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 table generation unit 320 evaluates the operating state of each device / server based on the processing response message received by the transfer unit 310 will be described. The table generation unit 320 receives and receives the operating status of each server / device included in a plurality of processing responses received by the transfer unit 310 from the servlet servers 110-1 to 4 in the past predetermined time. The operating states that have been used are tabulated (S700). An example of specific processing will be described below.

まず、テーブル生成部320は、各処理応答について以下の処理を行う。テーブル生成部320は、その処理応答の受信までの、対応する処理要求の送信からの所要時間を算出する。これは、テーブル生成部320において処理要求の送信時にタイマーをリセットして、処理応答の受信時にそのタイマーを参照することによって実現される。この時間を時間Aとする。また、テーブル生成部320は、この処理応答のメッセージから、この処理要求に応じてサーブレットサーバ110がAPPサーバ120に要求した処理の所要時間を取得する。この時間を時間Bとする。そして、テーブル生成部320は、時間Aから時間Bを差し引くことで、サーブレットサーバ110における処理の所要時間を算出する。   First, the table generation unit 320 performs the following processing for each processing response. The table generation unit 320 calculates the time required from the transmission of the corresponding processing request until the processing response is received. This is realized by resetting a timer when the processing request is transmitted in the table generation unit 320 and referring to the timer when the processing response is received. This time is referred to as time A. Further, the table generation unit 320 obtains the time required for the processing requested by the servlet server 110 from the APP server 120 in response to the processing request from the processing response message. This time is defined as time B. Then, the table generation unit 320 calculates the time required for processing in the servlet server 110 by subtracting the time B from the time A.

この処理要求に伴って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 DB server 130 for further processing in accordance with this processing request, the table generating unit 320 further acquires the required time from the message. This time is defined as time C. In that case, the table generation unit 320 calculates the time required for processing in the APP server 120 by subtracting this time C from the required time B measured in the servlet server 110. In this way, the table generation unit 320 calculates the required time for each of a plurality of processes that are sequentially requested from a certain process request. The required time is converted into operating state information with the above-mentioned 5 seconds and 2 seconds as threshold values. The table generation unit 320 performs the above processing for each processing response received within the above-described past predetermined time. Then, the table generation unit 320 totals the operation states determined in this way for each of the servlet servers 110-1 to 4, the APP servers 120-1 to 120, and the DB server 130.

次に、テーブル生成部320は、それぞれのサーブレットサーバ110−1〜4について、当該サーブレットサーバ110について集計された稼動状態の何れもが、高負荷状態または異常状態を示すかどうかを判断する(S710)。何れのサーブレットサーバ110についても、集計された稼動状態の何れもが高負荷状態又は異常状態を示していることを条件に(S710:YES)、停止判断部350は、状態テーブルの送受信を停止するべき条件が成立したと判断して(S720)、本図の処理を終了する。この場合、テーブル生成部320は、状態テーブルを生成しなくてもよい。   Next, the table generating unit 320 determines, for each servlet server 110-1 to 4, whether any of the operation states counted for the servlet server 110 indicates a high load state or an abnormal state (S 710). ). For any servlet server 110, the stop determination unit 350 stops transmission / reception of the state table on condition that any of the aggregated operating states indicates a high load state or an abnormal state (S710: YES). It is determined that the power condition has been satisfied (S720), and the processing of this figure is terminated. In this case, the table generation unit 320 does not have to generate a state table.

次に、テーブル生成部320は、APPサーバ120−1〜3およびDBサーバ130のそれぞれ(以下、処理の対象を当該サーバと呼ぶ)について以下の処理を行う(S730)。テーブル生成部320は、当該サーバについて受信した稼動状態のうち、当該サーバが正常であることを示す稼動状態の割合が予め定められた基準値(N)であることを条件に(S740:YES)、当該サーバが正常状態であると評価する(S750)。この基準値(N)は、0より大きい極めて小さい値であることが望ましい。これは、サーバに一旦異常が発生すると以降の処理は更に遅延する傾向があり、一時的にであっても状況が改善することは稀だからである。すなわち、正常と判断できる処理が僅かに観測されるときは、異常状態においてたまたま正常に処理が完了されたとは考えにくく、正常状態においてたまたま他の処理に時間がかかっていると考えた方が自然だからである。このため、テーブル生成部320は、正常状態を示す稼動状態が1つでも含まれていれば、当該サーバが正常状態であると評価してよい。   Next, the table generation unit 320 performs the following processing for each of the APP servers 120-1 to 120-3 and the DB server 130 (hereinafter, the processing target is referred to as the server) (S730). The table generation unit 320 is provided on the condition that the ratio of the operation state indicating that the server is normal is the predetermined reference value (N) among the operation states received for the server (S740: YES). The server is evaluated to be in a normal state (S750). This reference value (N) is desirably an extremely small value larger than zero. This is because once an abnormality occurs in the server, the subsequent processing tends to be further delayed, and the situation is rarely improved even temporarily. In other words, when a slight amount of processing that can be determined to be normal is observed, it is unlikely that it has happened to have been completed normally in an abnormal state, and it is more natural to assume that other processing in the normal state takes time. That's why. For this reason, the table generation unit 320 may evaluate that the server is in a normal state if at least one operation state indicating a normal state is included.

正常状態と評価されない場合(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 table generation unit 320 then sets a reference value in which a ratio of the operating state indicating that the server is heavily loaded out of the operating state received for the server is predetermined. (K) It is determined whether or not it is greater than or equal to (S760). On condition that the value is equal to or greater than the reference value (K) (S760: YES), the table generating unit 320 evaluates that the server is in a high load state (S770). This reference value (K) is also preferably a very small value larger than 0, and the table generating unit 320 is abnormal in all other operating states if at least one operating state indicating a high load state is included. Even if the state is indicated, it may be determined that the server is in a high load state. On condition that the ratio of the operating state indicating a high load is less than the reference value (K) (S760: NO), the table generating unit 320 determines that the server is in a suspected abnormal state (S780). The table generation unit 320 repeats the above process for each of the APP servers 120-1 to 120-3 and the DB server 130 (S790).

図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 storage device 300 of the dispatcher device (for example, the dispatcher device 100-1) (S800: YES), the request transmission unit 410 transfers a part of the requested processing to the APP server 120-. In order to make it process to 1-3 etc., a processing request is transmitted to APP server 120-1 grade | etc., (S810). The transmission destination is, for example, the APP server 120-1. When the request transmission unit 410 receives a processing response to the processing request transmitted to the APP server 120-1 (S820: YES), the status reply unit 420 sets the status of the processing response as the operating status of the APP server 120-1. Obtain (S830). For example, the required time from the processing request to the processing response may be acquired from the APP server 120-1. Then, the status reply unit 420 returns the operational state of the APP server 120-1 to the dispatcher apparatus 100-1 including the processing response to the processing request transferred from the storage device 300 of the dispatcher apparatus 100-1 ( S840).

次に、第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 table update unit 430 determines whether a new state table has been received from the dispatcher device (for example, the dispatcher device 100-1) (S850). That is, in response to receiving the state table from the dispatcher apparatus 100-1, the second table updating unit 430 uses the version ID received in association with the state table as the version ID already stored in the storage device 400. It is determined that a new status table has been received on the condition that the comparison indicates a revision at the same time or later. On condition that a new state table has been received (S850: YES), the second table updating unit 430 updates the state table stored in the storage device 400 based on the received state table (S860). Since the status table is updated every time the status table is received in this way, the status table information received from each of the dispatcher devices 100-1 and 100-2 is integrated and reflected in the status table of the storage device 400. The Then, the table reply unit 440 returns the updated state table to each of the dispatcher apparatuses 100-1 and 100-2 (S870).

図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 table updating unit 430 updates the operating states of the APP servers 120-1 to 3 and the DB server 130 managed in the state table according to the state transition diagram shown in FIG. Specifically, the second table update unit 430 is not in a normal state in the state table that is already stored in the storage device 400, and the table transmission unit 330 of the dispatcher device 100 is in the operation table. In the state table received from the server, the operating state of the server is updated to a normal state on condition that the state is normal. That is, any state of high load, abnormality, suspicious load or suspicion abnormality is updated to a normal state on condition that the normal state is received.

また、第2テーブル更新部430は、処理対象であるサーバの稼動状態が、すでに記憶装置400に記憶されている状態テーブルにおいて正常状態であり、かつ、サーブレットサーバ110のテーブル送信部330から受信した状態テーブルにおいては異常状態または疑異常状態であることを条件に、当該サーバの稼動状態を疑異常状態に更新する。即ち、第2テーブル更新部430においては、異常状態を受信したからといって直ちに異常状態とは判断されない。そして、第2テーブル更新部430は、稼動状態を疑異常状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を異常状態に更新する。   In addition, the second table update unit 430 is in a normal state in the state table that is already stored in the storage device 400, and the operation state of the server to be processed is received from the table transmission unit 330 of the servlet server 110. In the status table, the operating state of the server is updated to a suspected abnormal state on condition that the server is in an abnormal state or a suspected abnormal state. That is, the second table update unit 430 does not immediately determine an abnormal state just because it receives an abnormal state. Then, the second table update unit 430 updates the operating state to the abnormal state on the condition that a predetermined period has passed without updating the operating state to the suspected abnormal state and then returning to the normal state.

また、第2テーブル更新部430は、処理対象であるサーバの稼動状態が、すでに記憶装置400に記憶されている状態テーブルにおいて正常状態であり、かつ、サーブレットサーバ110のテーブル送信部330から受信した状態テーブルにおいては高負荷状態であることを条件に、当該サーバの稼動状態を疑高負荷状態に更新する。即ち、第2テーブル更新部430においては、高負荷状態を受信したからといって直ちに高負荷状態とは判断されない。そして、第2テーブル更新部430は、稼動状態を疑高負荷状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を高負荷状態に更新する。   In addition, the second table update unit 430 is in a normal state in the state table that is already stored in the storage device 400, and the operation state of the server to be processed is received from the table transmission unit 330 of the servlet server 110. In the state table, the operating state of the server is updated to a suspiciously high load state on condition that the load is high. That is, the second table update unit 430 does not immediately determine that the high load state has been received just because the high load state is received. Then, the second table update unit 430 updates the operation state to the high load condition on the condition that a predetermined period has elapsed without updating the operation state to the suspicious high load state and then returning to the normal state. To do.

図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 information system 10 according to the present embodiment. Here, for convenience of explanation, it is assumed that the information system 10 includes dispatcher apparatuses 100-1 and 100-2, a servlet server 110-1, and APP servers 120-1 to 120-3, and the servlet server 110-2 and the DB server 130. Shall not have. The APP servers 120-1 to 120-3 are written as A to C in the table, respectively. The initial value of the version ID is set to 0. That is, the storage devices in all servers and devices store a numerical value of 0 as the version ID. The state table includes the operating states of the APP servers 120-1 to 120-3 and does not include the operating states of the servlet servers 110-1 to 110-2.

初期状態である時間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 time 0, which is the initial state, the storage device 300 of the dispatcher apparatus 100-1 stores a state table in which the operating states of the APP servers 120-1 to 120-3 are all normal. This state table is denoted as A, B, C. The same applies to the storage device 300 of the dispatcher device 100-2 and the storage device 400 of the servlet server 110-1. At time 1 following time 0, the table generating unit 320 determines that the operating state of the APP server 120-3 is a suspected abnormal state. This is because, for example, any processing executed by the APP server 120-1 in response to a request from the dispatcher apparatus 100-1 within a certain period of time required time to be determined as an abnormal state. . The state of the state table at this time is expressed as A, B, C (-). Symbol-indicates an abnormal state, and symbol (-) indicates a suspected abnormal state. At this time, the version ID is incremented to 1 in the storage device 300 of the dispatcher apparatus 100-1. However, since the version ID is still 0 in the servlet server 110-1, the version ID is expressed as 0 in the drawing.

時間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 time 2, the second table update unit 430 of the servlet server 110-1 receives the state table from the table transmission unit 330 of the dispatcher apparatus 100-1. In the state table already stored in the storage device 300, the APP server 120-3 is in a normal state, but the APP server 120-3 is in a suspected abnormal state in the received state table. For this reason, the second table update unit 430 of the servlet server 110-1 updates the operating state to the suspected abnormal state. Therefore, the status table is A, B, C (−) also in the servlet server 110-1.

また、同じ時間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 same time 2, the table generation unit 320 of the dispatcher apparatus 100-2 generates a state table independently of the dispatcher apparatus 100-1 slightly later than the dispatcher apparatus 100-1. At this time, the table generation unit 320 determines that the operating state of the APP server 120-2 is a suspected abnormal state. This is because, for example, any processing executed by the APP server 120-2 in response to a request from the dispatcher apparatus 100-2 within a certain period of time required time to be determined as an abnormal state. . The status tables generated as a result are A, B (−), and C. At this time, the version ID becomes 1 in all of the dispatcher apparatuses 100-1 and 100-2 and the servlet server 110-1.

時間3において、サーブレットサーバ110−1のテーブル返信部440は、状態テーブルをディスパッチャ装置100−1およびディスパッチャ装置100−2に対し送信する。ディスパッチャ装置100−1において、記憶している状態テーブルと受信した状態テーブルは同一であるから何らの処理は行われない。ディスパッチャ装置100−2において、記憶している状態テーブルおよび受信した状態テーブルはバージョンIDが共に1であって同一なので、第1テーブル更新部340は、受信した状態テーブルにより、記憶している状態テーブルを更新する。例えば、記憶している状態テーブルは、受信した状態テーブルにより置換される。この結果、ディスパッチャ装置100−2の記憶装置300において、状態テーブルはA,B,C(−)となる。   At time 3, the table reply unit 440 of the servlet server 110-1 transmits the state table to the dispatcher apparatus 100-1 and the dispatcher apparatus 100-2. In the dispatcher apparatus 100-1, since the stored state table and the received state table are the same, no processing is performed. In the dispatcher apparatus 100-2, since the stored state table and the received state table have the same version ID of 1, the first table update unit 340 stores the stored state table according to the received state table. Update. For example, the stored state table is replaced with the received state table. As a result, in the storage device 300 of the dispatcher apparatus 100-2, the status tables are A, B, and C (−).

時間4において、ディスパッチャ装置100−2のテーブル生成部320は、APPサーバ120−2の稼動状態を疑異常状態と再度判断する。これは、次の一定期間内においても、ディスパッチャ装置100−2からの要求を受けてAPPサーバ120−2で実行された処理の何れもが、異常状態と判断されるべき所要時間を要したからである。この結果生成される状態テーブルは、A,B(−),Cである。また、生成されるバージョンIDは2である。そして、次の時間5において、ディスパッチャ装置100−2のテーブル送信部330は、生成したこの状態テーブルをサーブレットサーバ110−1に送信する。   At time 4, the table generation unit 320 of the dispatcher apparatus 100-2 determines again that the operation state of the APP server 120-2 is a suspected abnormal state. This is because, even within the next fixed period, any processing executed by the APP server 120-2 in response to a request from the dispatcher apparatus 100-2 required a time required to be determined as an abnormal state. It is. The status tables generated as a result are A, B (−), and C. The generated version ID is 2. Then, at the next time 5, the table transmission unit 330 of the dispatcher apparatus 100-2 transmits the generated state table to the servlet server 110-1.

サーブレットサーバ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 table updating unit 430 of the servlet server 110-1 has the received version ID 2 larger than the stored version ID 1, so that the stored status table is changed according to the received status table. Update. Regarding the APP server 120-2, since the stored operating state is a normal state and the received operating state is a suspected abnormal state, the second table updating unit 430 changes the operating state of the APP server 120-2 to a suspected abnormal state. Update. Regarding the APP server 120-3, since the stored operating state is a suspected abnormal state and the received operating state is a normal state, the second table updating unit 430 updates the operating state of the APP server 120-3 to a normal state. To do. As a result, the status table becomes A, B (-), C.

次の時間6において、サーブレットサーバ110−1のテーブル返信部440は、更新した状態テーブルをディスパッチャ装置100−1〜2のそれぞれに返信する。ディスパッチャ装置100−2において、既に記憶している状態テーブルおよび受信した状態テーブルは同じなので、第1テーブル更新部340は何ら処理を行わない。一方、サーブレットサーバ110−1は、記憶しているものとは異なる状態テーブルA,B(−),Cを受信し、かつ、バージョンIDも同時期の改定を示すことから、受信したこの状態テーブルにより、記憶している状態テーブルを置換する。この結果、状態テーブルはA,B(−),Cとなる。   At the next time 6, the table return unit 440 of the servlet server 110-1 returns the updated state table to each of the dispatcher apparatuses 100-1 and 100-2. In the dispatcher apparatus 100-2, since the already stored state table and the received state table are the same, the first table update unit 340 does not perform any processing. On the other hand, the servlet server 110-1 receives the state tables A, B (-), C different from the stored ones, and the version ID indicates the revision at the same time. To replace the stored state table. As a result, the status table becomes A, B (-), C.

次の時間7および8において、ディスパッチャ装置100−1〜2のテーブル生成部320は、APPサーバ120−1〜3の稼動状態を評価するが、評価前と同一状態であるから図10中の表記は変化しない。同様に、サーブレットサーバ110−1の第2テーブル更新部430は状態テーブルをディスパッチャ装置100−1〜2から受信するが、既に記憶している状態テーブルと同一であるから図10中の表記は変化しない。   At the next times 7 and 8, the table generation unit 320 of the dispatcher apparatuses 100-1 and 100-2 evaluates the operating state of the APP servers 120-1 to 120-3. Does not change. Similarly, the second table update unit 430 of the servlet server 110-1 receives the state table from the dispatcher apparatuses 100-1 and 100-2, but the notation in FIG. 10 changes because it is the same as the already stored state table. do not do.

時間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 table updating unit 430 of the servlet server 110-1 has updated the operating state of the APP server 120-2 to the suspected abnormal state. Update the operating state of the to an abnormal state. The updated operation state is included in the state table and returned to the dispatcher apparatuses 100-1 and 100-2. As a result, the status table becomes A, B-, and C. At time 10, the first table updating unit 340 of the dispatcher apparatuses 100-1 and 100-2 updates the already stored state table with the received state table. As a result, the status table becomes A, B-, and C.

図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 information processing apparatus 500 that functions as the dispatcher apparatus 100-1 or the servlet server 110-1. The information processing apparatus 500 includes a CPU peripheral unit including a CPU 1000, a RAM 1020, and a graphic controller 1075 connected to each other by a host controller 1082, a communication interface 1030, a hard disk drive 1040, and the like connected to the host controller 1082 by an input / output controller 1084 And an input / output unit having a CD-ROM drive 1060 and a legacy input / output unit having a ROM 1010 connected to an input / output controller 1084, a flexible disk drive 1050, and an input / output chip 1070.

ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。   The host controller 1082 connects the RAM 1020 to the CPU 1000 and the graphic controller 1075 that access the RAM 1020 at a high transfer rate. The CPU 1000 operates based on programs stored in the ROM 1010 and the RAM 1020, and controls each unit. The graphic controller 1075 acquires image data generated by the CPU 1000 or the like on a frame buffer provided in the RAM 1020 and displays it on the display device 1080. Alternatively, the graphic controller 1075 may include a frame buffer that stores image data generated by the CPU 1000 or the like.

入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ1040は、情報処理装置500が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。   The input / output controller 1084 connects the host controller 1082 to the communication interface 1030, the hard disk drive 1040, and the CD-ROM drive 1060, which are relatively high-speed input / output devices. The communication interface 1030 communicates with an external device via a network. The hard disk drive 1040 stores programs and data used by the information processing apparatus 500. The CD-ROM drive 1060 reads a program or data from the CD-ROM 1095 and provides it to the RAM 1020 or the hard disk drive 1040.

また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、情報処理装置500の起動時にCPU1000が実行するブートプログラムや、情報処理装置500のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。   The input / output controller 1084 is connected to the ROM 1010 and relatively low-speed input / output devices such as the flexible disk drive 1050 and the input / output chip 1070. The ROM 1010 stores a boot program executed by the CPU 1000 when the information processing apparatus 500 is activated, a program depending on the hardware of the information processing apparatus 500, and the like. The flexible disk drive 1050 reads a program or data from the flexible disk 1090 and provides it to the RAM 1020 or the hard disk drive 1040 via the input / output chip 1070. The input / output chip 1070 connects various input / output devices via a flexible disk 1090 and, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like.

情報処理装置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 information processing apparatus 500 is stored in a recording medium such as the flexible disk 1090, the CD-ROM 1095, or an IC card and provided by a user. The program is read from the recording medium via the input / output chip 1070 and / or the input / output controller 1084, installed in the information processing apparatus 500, and executed. The operations that the program causes the information processing device 500 to perform are the same as the operations in the dispatcher device 100-1 and the servlet server 110-1 described with reference to FIGS. The operations and hardware configurations of the dispatcher apparatus 100-2 and the servlet servers 110-2 to 4 are also substantially the same as those of the information processing apparatus 500 shown in FIG.

以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク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 flexible disk 1090 and the CD-ROM 1095, an optical recording medium such as a DVD or PD, a magneto-optical recording medium such as an MD, a tape medium, a semiconductor memory such as an IC card, or the like can be used. Further, a storage device such as a hard disk or a RAM provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the information processing apparatus 500 via the network.

以上、本実施形態に係る情報システム10によれば、処理要求・処理応答などのメッセージに含めて稼動状態を送受信させることができるので、本来必要な装置・サーバの他に追加の装置を必要とせず、なおかつ、ソフトウェア由来の障害を含めた幅広い種類の障害を検出することができる。また、あるサーバAが他のサーバBに処理を要求し、サーバBがサーバCに更に処理を要求するというように、呼び出し関係が階層的な場合においても障害発生箇所を精度良く判断できる。さらに、ディスパッチャ装置100およびサーブレットサーバ110間で稼動状態の評価結果を交換することで、誤った評価や一時的な評価の誤りを訂正できる。たとえば、Java(登録商標)のGCなどによって一時的に遅延した処理を障害として誤って判断することを避け、稼動状態評価の精度を高めることができる。   As described above, according to the information system 10 according to the present embodiment, the operating state can be transmitted and received by including in a message such as a processing request / processing response, so that an additional device is required in addition to the originally required device / server. Furthermore, it is possible to detect a wide variety of faults including software-derived faults. Further, even when the calling relationship is hierarchical, such as when a certain server A requests processing from another server B and the server B requests further processing from the server C, it is possible to accurately determine the location of failure. Furthermore, by exchanging the evaluation result of the operating state between the dispatcher apparatus 100 and the servlet server 110, an erroneous evaluation or a temporary evaluation error can be corrected. For example, it is possible to avoid erroneously determining a process temporarily delayed by a GC of Java (registered trademark) or the like as a failure, and to improve the accuracy of the operation state evaluation.

以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。   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.

図1は、情報システム10の構成の一例を示す。FIG. 1 shows an example of the configuration of the information system 10. 図2は、本実施形態に係る情報システム10の全体構成を示す。FIG. 2 shows the overall configuration of the information system 10 according to the present embodiment. 図3は、ディスパッチャ装置100−1の機能構成を示す。FIG. 3 shows a functional configuration of the dispatcher apparatus 100-1. 図4は、サーブレットサーバ110−1の機能構成を示す。FIG. 4 shows a functional configuration of the servlet server 110-1. 図5は、記憶装置300または記憶装置400が記憶する状態テーブルのデータ構造の一例を示す。FIG. 5 shows an example of the data structure of the state table stored in the storage device 300 or the storage device 400. 図6は、ディスパッチャ装置100−1が処理要求および処理応答を送受信する処理の具体例を示す。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. 図7は、S640における処理の詳細な例を示す。FIG. 7 shows a detailed example of the process in S640. 図8は、サーブレットサーバ110−1が処理要求および処理応答を送受信する処理の具体例を示す。FIG. 8 shows a specific example of processing in which the servlet server 110-1 transmits and receives processing requests and processing responses. 図9は、S860において順次更新される稼動状態の状態遷移図である。FIG. 9 is a state transition diagram of the operating state sequentially updated in S860. 図10は、本実施形態に係る情報システム10により稼動状態が順次更新される過程を示す。FIG. 10 shows a process in which the operating state is sequentially updated by the information system 10 according to the present embodiment. 図11は、ディスパッチャ装置100−1またはサーブレットサーバ110−1として機能する情報処理装置500のハードウェア構成の一例を示す。FIG. 11 shows an example of the hardware configuration of the information processing apparatus 500 that functions as the dispatcher apparatus 100-1 or the servlet server 110-1.

符号の説明Explanation of symbols

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 SYMBOLS 10 Information system 100 Dispatcher apparatus 110 Servlet server 120 APP server 130 DB server 135 Database 140 System monitoring apparatus 150 Information sharing apparatus 300 Storage apparatus 310 Transfer part 320 Table generation part 330 Table transmission part 340 1st table update part 350 Stop judgment part 400 Storage device 410 Request transmission unit 420 Status reply unit 430 Second table update unit 440 Table reply unit 500 Information processing device

Claims (11)

外部の端末装置から要求された処理を振り分ける複数のディスパッチャ装置と、振り分けられた当該処理を行う複数の第1階層サーバと、第1階層サーバから受けた要求に応じて当該処理の一部を行う少なくとも1つの第2階層サーバとを備えるシステムであって、 それぞれの前記ディスパッチャ装置は、
それぞれの第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.
ディスパッチャ装置および第1階層サーバのそれぞれにおける記憶装置は、状態テーブルに対応付けて当該状態テーブルの改訂の時期を示すバージョンIDを更に記憶し、
前記テーブル生成部は、新たに状態テーブルを生成する毎に、当該状態テーブルに対応付けて、前回に生成した状態テーブルよりも後の改訂により生成されたことを示すバージョン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.
前記状態返信部は、ディスパッチャ装置の転送部から転送を受けた処理要求に対する処理応答に、前記稼動状態として、当該処理要求に応じて第2階層サーバに要求した処理の所要時間を示す情報を含めて当該ディスパッチャ装置に返信し、
前記テーブル生成部は、前記一の第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階層サーバ毎の稼動状態を評価して、前記状態テーブルに含めて生成し、
前記ディスパッチャ装置は、生成した前記状態テーブルにおいて、何れの前記第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階層サーバが正常であることを示す稼動状態の割合が予め定められた基準値以上であることを条件に、当該第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.
前記テーブル生成部は、正常状態であると評価しなかった第2階層サーバのそれぞれについて、当該第2階層サーバについて受信した前記稼動状態のうち、当該第2サーバが高負荷であることを示す稼動状態の割合が予め定められた基準値以上であることを条件に、当該第2階層サーバが高負荷状態であると評価する
請求項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階層サーバの稼動状態が、既に記憶装置に記憶されている状態テーブルにおいて正常状態ではなく、かつ、ディスパッチャ装置のテーブル送信部から受信した状態テーブルにおいては正常状態であることを条件に、当該第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.
前記第2テーブル更新部は、第2階層サーバ毎に、当該第2階層サーバの稼動状態が、既に記憶装置に記憶されている状態テーブルにおいて正常状態であり、かつ、ディスパッチャ装置のテーブル送信部から受信した状態テーブルにおいては異常状態または疑異常状態であることを条件に、当該第2階層サーバの稼動状態を疑異常状態に更新し、さらに、 稼動状態を疑異常状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を異常状態に更新する
請求項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.
前記第2テーブル更新部は、第2階層サーバ毎に、当該第2階層サーバの稼動状態が、既に記憶装置に記憶されている状態テーブルにおいて正常状態であり、かつ、ディスパッチャ装置のテーブル送信部から受信した状態テーブルにおいては高負荷状態であることを条件に、当該第2階層サーバの稼動状態を疑高負荷状態に更新し、さらに、
稼動状態を疑高負荷状態に更新してから正常状態に戻すことなく予め定められた期間が経過したことを条件に、当該稼動状態を高負荷状態に更新する
請求項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.
外部の端末装置から要求された処理を振り分ける複数のディスパッチャ装置と、振り分けられた当該処理を行う複数の第1階層サーバと、第1階層サーバから受けた要求に応じて当該処理の一部を行う少なくとも1つの第2階層サーバとを備えるシステムにおいて、稼動状態を管理する方法であって、
それぞれの前記ディスパッチャ装置は、
それぞれの第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.
外部の端末装置から要求された処理を振り分ける複数のディスパッチャ装置と、振り分けられた当該処理を行う複数の第1階層サーバと、第1階層サーバから受けた要求に応じて当該処理の一部を行う少なくとも1つの第2階層サーバとを備えるシステムとして、複数の情報処理装置を機能させるプログラムであって、
それぞれの情報処理装置を、
それぞれの第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.
JP2008552140A 2006-12-27 2007-12-26 Technology for accurately detecting system failures Expired - Fee Related JP4866429B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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