JP2008108163A - Server device, request processing control method, and program thereof - Google Patents

Server device, request processing control method, and program thereof Download PDF

Info

Publication number
JP2008108163A
JP2008108163A JP2006292084A JP2006292084A JP2008108163A JP 2008108163 A JP2008108163 A JP 2008108163A JP 2006292084 A JP2006292084 A JP 2006292084A JP 2006292084 A JP2006292084 A JP 2006292084A JP 2008108163 A JP2008108163 A JP 2008108163A
Authority
JP
Japan
Prior art keywords
request
processing
server
information
processing unit
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.)
Pending
Application number
JP2006292084A
Other languages
Japanese (ja)
Inventor
Tatsuhiro Maeda
竜宏 前田
Yoshiro Yamamoto
芳郎 山本
Yoshiyuki Iwamoto
善行 岩本
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006292084A priority Critical patent/JP2008108163A/en
Publication of JP2008108163A publication Critical patent/JP2008108163A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To prevent a function of processing requests from continuously stopping in a plurality of server devices which process requests accepted from client devices. <P>SOLUTION: A server devices 10 stores information which associates URIs designated by requests from client devices 20, conditions for execution of control of processing for the requests, actions being processing contents of control, and information relating to an acceptance state of the requests with each other, in a memory 200, and a CPU 100 acquires URIs and actions from the memory 200 to inform other server device 10 of them, in response to detection of the stop of the function processing requests when information relating to the acceptance state meets a corresponding condition. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、クライアント装置から受け付けたリクエストを処理するサーバ装置の機能を制御する技術に関するものである。   The present invention relates to a technique for controlling a function of a server device that processes a request received from a client device.

従来、複数のサーバ装置がネットワークを介して接続されたシステムにおいて、サーバ装置がクライアント装置から受け付けたリクエストの処理を他のサーバ装置に負荷分散する技術がある。例えば、サーバ装置が、リクエストの処理を他のサーバ装置に委託した際の処理時間やデータ転送時間などを履歴情報として保持し、クライアント装置からリクエストを受け付けた場合に、保持している履歴情報に基づいて、このリクエストの処理の実行に要する時間が短いサーバ装置を負荷分散先のサーバ装置として選出する技術が開示されている(例えば、特許文献1参照)。サーバ装置は、選出したサーバ装置に処理の実行を委託する。このような技術によれば、リクエストの処理を複数のサーバ装置に分散させることが可能である。
特開2003−208414号公報
2. Description of the Related Art Conventionally, in a system in which a plurality of server devices are connected via a network, there is a technique for distributing the load of requests received by a server device from a client device to other server devices. For example, when the server device stores the processing time or data transfer time when request processing is entrusted to another server device as history information and receives a request from a client device, Based on this, a technology for selecting a server device that takes a short time to execute the request processing as a load balancing destination server device is disclosed (for example, see Patent Document 1). The server device entrusts execution of the process to the selected server device. According to such a technique, request processing can be distributed to a plurality of server apparatuses.
JP 2003-208414 A

しかしながら、特許文献1に開示された技術では、例えば、1つのリクエストでメモリを大量に消費してしまうような不具合がサーバ装置のプログラムに存在した場合や、サーバ装置が悪意のあるリクエストを受け付けた場合などに、1つのリクエストを処理する過程で、サーバ装置によるリクエストを処理する機能が停止してしまう可能性がある。このようなリクエストがクライアント装置からサーバ装置に連続的に送信された場合、リクエストの処理を負荷分散させる機能により、サーバ装置が他のサーバ装置にリクエストの処理を連続的に委託するため、複数のサーバ装置によるリクエストを処理する機能が連続的に停止してしまう可能性がある。   However, in the technique disclosed in Patent Document 1, for example, when a problem that consumes a large amount of memory in one request exists in the program of the server device, or the server device accepts a malicious request. In some cases, in the process of processing one request, the function of processing a request by the server apparatus may be stopped. When such a request is continuously transmitted from the client device to the server device, the server device continuously entrusts the processing of the request to other server devices by the function of load balancing the processing of the request. There is a possibility that the function of processing the request by the server device is continuously stopped.

そこで本発明は、クライアント装置から受け付けたリクエストを処理する複数のサーバ装置において、リクエストを処理する機能が連続的に停止することを防止することを目的とする。   Therefore, an object of the present invention is to prevent a function for processing a request from being continuously stopped in a plurality of server devices that process a request received from a client device.

前記目的を達成するために、本発明は、ネットワークを介してクライアント装置から受け付けたリクエストを処理する複数のサーバ装置が、相互に通信可能に構成されており、クライアント装置からのリクエストによって指定されるリソースの識別子と、リクエストに対する処理の制御が実行されるための条件と、制御の処理内容であるアクションと、リクエストの受け付け状況に関する情報とを対応させた情報を記憶する記憶部と、情報を処理する処理部とを備えるものである。処理部は、リクエストを処理する機能の停止を検知すると、リクエストの受け付け状況に関する情報が、この情報に対応する条件を満たす場合に、記憶部からリソースの識別子およびアクションを取得して、取得したリソースの識別子およびアクションを他のサーバ装置に通知する。   In order to achieve the above object, according to the present invention, a plurality of server devices that process requests received from a client device via a network are configured to be able to communicate with each other, and are designated by requests from the client device. A storage unit that stores information that associates resource identifiers, conditions for executing control of processing for a request, actions that are control processing contents, and information about the reception status of a request, and processing information And a processing unit. When the processing unit detects the stop of the function for processing the request, when the information about the reception status of the request satisfies a condition corresponding to this information, the processing unit acquires the resource identifier and the action from the storage unit, and acquires the acquired resource. Is notified to other server devices.

本発明によれば、クライアント装置から受け付けたリクエストを処理する複数のサーバ装置において、リクエストを処理する機能が連続的に停止することを防止することが可能である。   ADVANTAGE OF THE INVENTION According to this invention, it is possible to prevent that the function which processes a request stops in the some server apparatus which processes the request received from the client apparatus continuously.

以下、本発明を実施するための最良の形態(以下「実施形態」という)について、図面を参照して説明する。   Hereinafter, the best mode for carrying out the present invention (hereinafter referred to as “embodiment”) will be described with reference to the drawings.

図1は、本実施形態におけるサーバ装置が複数接続されたリクエスト処理システムの構成を示す図である。図1に示すように、本実施形態におけるリクエスト処理システム1は、クライアント装置20と、サーバ装置10Aと、サーバ装置10Bとを含んで構成されている。クライアント装置20、サーバ装置10Aおよびサーバ装置10Bは、ネットワーク30を介して相互に通信可能に構成されている。サーバ装置10Aおよびサーバ装置10Bは、冗長構成(同様の構成)であり、ここではサーバ装置10が2台示されているが、複数であれば特にその数が限定されるものではない。また、クライアント装置20は3台示されているが、複数であれば特にその数が限定されるものではない。   FIG. 1 is a diagram showing a configuration of a request processing system in which a plurality of server devices are connected in the present embodiment. As shown in FIG. 1, the request processing system 1 according to the present embodiment includes a client device 20, a server device 10A, and a server device 10B. The client device 20, the server device 10A, and the server device 10B are configured to be able to communicate with each other via the network 30. The server device 10A and the server device 10B have a redundant configuration (similar configuration). Here, two server devices 10 are shown, but the number is not particularly limited as long as there are a plurality of server devices 10. Also, although three client devices 20 are shown, the number is not particularly limited as long as there are a plurality of client devices 20.

クライアント装置20は、ネットワーク30を介してサーバ装置10にリクエストを送信する機能を有するとともに、サーバ装置10からそのリクエストに対するレスポンスを受け取る機能を有する。   The client device 20 has a function of transmitting a request to the server device 10 via the network 30 and a function of receiving a response to the request from the server device 10.

サーバ装置10は、CPU(Central Processing Unit)100と、メモリ200とを含んで構成される。記憶部としてのメモリ200は、アプリケーションサーバ処理プログラム210と、監視サーバ処理プログラム220と、モジュールプログラム(リクエスト送出力モジュールプログラム)230と、Webサーバ処理プログラム240と、監視サーバ定義ファイル250と、モジュールカウンタテーブル260と、Webサーバリクエスト受付統計情報270とを含んで記憶する機能を有する。処理部としてのCPU100は、メモリ200に記憶されているプログラムを実行する機能を有する。   The server device 10 includes a CPU (Central Processing Unit) 100 and a memory 200. The memory 200 as a storage unit includes an application server processing program 210, a monitoring server processing program 220, a module program (request sending / output module program) 230, a Web server processing program 240, a monitoring server definition file 250, and a module counter. The table 260 and the Web server request reception statistical information 270 are stored and stored. The CPU 100 as the processing unit has a function of executing a program stored in the memory 200.

アプリケーションサーバ処理プログラム210は、モジュールプログラム230からリクエストが入力されると、そのリクエストの処理を実行し、モジュールプログラム230にその実行結果としてのレスポンスを出力するコードが記述されたプログラムである。   When a request is input from the module program 230, the application server processing program 210 is a program in which a code for executing the processing of the request and outputting a response as the execution result to the module program 230 is described.

監視サーバ処理プログラム220は、リクエストを処理する機能(アプリケーションサーバ処理プログラム210がCPU100に実行されることによって実現する機能)を監視し、その停止を検知すると、監視サーバ定義ファイル250から取得したリソースの識別子およびアクションを他のサーバ装置10およびモジュールプログラム230に通知するコードが記述されたプログラムである。他のサーバ装置10は、リソースの識別子およびアクションが通知されることによって、通知されたリソースの識別子を指定するリクエストを受信した場合の処理を制御することが可能になる。つまり、監視サーバ処理プログラム220は、他のサーバ装置10のリクエスト処理を制御するリクエスト処理制御プログラムとしてのプログラムである。ここで、リソースとは、クライアント装置20がサーバ装置10を介して取得可能な情報であり、例えば、電子文書や画像などの情報である。リソースの識別子とは、クライアント装置からのリクエストによって指定されるものであり、このリソースの識別子には、例えば、URI(Uniform Resource Identifier)が用いられる。さらに、監視サーバ処理プログラム220は、他の装置からリソースの識別子およびアクションを受信すると、受信したリソースの識別子およびアクションをモジュールプログラム230に出力するコードが記述されたプログラムである。監視サーバ定義ファイル250については後記する。さらに、リソースの識別子およびアクションを監視サーバ定義ファイル250から取得する方法についても後記する。   The monitoring server processing program 220 monitors a function for processing a request (a function realized when the application server processing program 210 is executed by the CPU 100). When the monitoring server processing program 220 detects the stop, the monitoring server processing program 220 detects the resource acquired from the monitoring server definition file 250. This is a program in which codes for notifying the identifiers and actions to other server devices 10 and module programs 230 are described. The other server apparatus 10 can control the processing when receiving the request designating the notified resource identifier by notifying the resource identifier and the action. That is, the monitoring server processing program 220 is a program as a request processing control program that controls request processing of other server devices 10. Here, the resource is information that can be acquired by the client apparatus 20 via the server apparatus 10, and is information such as an electronic document or an image, for example. The resource identifier is specified by a request from the client device. For example, a URI (Uniform Resource Identifier) is used as the resource identifier. Further, the monitoring server processing program 220 is a program in which a code that outputs the received resource identifier and action to the module program 230 when receiving the resource identifier and action from another device is described. The monitoring server definition file 250 will be described later. Further, a method for acquiring resource identifiers and actions from the monitoring server definition file 250 will be described later.

モジュールプログラム230は、監視サーバ処理プログラム220からリソースの識別子およびアクションが入力されると、モジュールカウンタテーブル260にデータを登録するコードが記述されたプログラムである。モジュールカウンタテーブル260については後記する。また、モジュールプログラム230は、Webサーバ処理プログラム240からリクエストが入力されると、モジュールカウンタテーブル260に従って、アプリケーションサーバ処理プログラム210で処理させるリクエストの制御を行うコードが記述されたプログラムである。さらに、アプリケーションサーバ処理プログラム210からレスポンスが入力されると、Webサーバ処理プログラム240にレスポンスを出力するコードが記述されたプログラムである。   The module program 230 is a program in which a code for registering data in the module counter table 260 when a resource identifier and an action are input from the monitoring server processing program 220 is described. The module counter table 260 will be described later. The module program 230 is a program in which a code for controlling a request to be processed by the application server processing program 210 in accordance with the module counter table 260 when a request is input from the Web server processing program 240 is described. Furthermore, when a response is input from the application server processing program 210, the program describes a code for outputting a response to the Web server processing program 240.

Webサーバ処理プログラム240は、クライアント装置20からリクエストを受け付けると、モジュールプログラム230にリクエストを出力するコードが記述されたプログラムである。また、Webサーバ処理プログラム240は、モジュールプログラム230からレスポンスが入力されると、クライアント装置20に送信するコードが記述されたプログラムである。さらに、Webサーバ処理プログラム240は、Webサーバリクエスト受付統計情報270に含まれるリクエストの受け付け状況に関する情報を所定の時間ごと(例えば、1秒ごと)に更新するコードが記述されたプログラムである。Webサーバリクエスト受付統計情報270およびそれに含まれるリクエストの受け付け状況に関する情報については後記する。   The Web server processing program 240 is a program in which a code that outputs a request to the module program 230 when a request is received from the client device 20 is described. The Web server processing program 240 is a program in which a code to be transmitted to the client device 20 when a response is input from the module program 230 is described. Further, the Web server processing program 240 is a program in which a code for updating information on the request reception status included in the Web server request reception statistical information 270 is described at predetermined time intervals (for example, every second). The Web server request reception statistical information 270 and information regarding the reception status of requests included therein will be described later.

図2は、本実施形態におけるリクエスト処理システムが2台のサーバ装置を含む場合の処理の流れを示す図である。図2に示すように、ここでは、リクエスト処理システム1が、クライアント装置20と、2台のサーバ装置10(サーバ装置10Aおよびサーバ装置10B)とを含んで構成される場合を例に挙げて、サーバ装置10Aによるリクエスト処理の機能が停止した場合に、サーバ装置10(サーバ装置10Aおよびサーバ装置10B)がそのリクエストの受信を拒否する処理について説明する(適宜図1参照)。また、アプリケーションサーバ処理部310、監視サーバ処理部320、モジュール部330およびWebサーバ処理部340は、それぞれアプリケーションサーバ処理プログラム210、監視サーバ処理プログラム220、モジュールプログラム230およびWebサーバ処理プログラム240がCPU100によって実行されることによって実現されるものである。また、モジュール部330は、Webサーバ処理部340のプロセス上で動作するものである。   FIG. 2 is a diagram illustrating a processing flow when the request processing system according to the present embodiment includes two server apparatuses. As shown in FIG. 2, here, as an example, the request processing system 1 includes a client device 20 and two server devices 10 (server device 10A and server device 10B). A process in which the server apparatus 10 (the server apparatus 10A and the server apparatus 10B) rejects reception of the request when the function of the request process by the server apparatus 10A is stopped will be described (see FIG. 1 as appropriate). In addition, the application server processing unit 310, the monitoring server processing unit 320, the module unit 330, and the web server processing unit 340 are respectively connected to the application server processing program 210, the monitoring server processing program 220, the module program 230, and the web server processing program 240 by the CPU 100. It is realized by being executed. The module unit 330 operates on the process of the Web server processing unit 340.

クライアント装置20から送信されたリクエスト(http://・・・/hoge.jsp)をアプリケーションサーバ処理部310Aが受け付けて処理を行おうとしたが、問題が発生し(1つのリクエストでメモリを大量に消費してしまうような不具合がサーバ装置10Aのアプリケーションサーバ処理プログラム210に存在した場合や、サーバ装置10Aが悪意のあるリクエストを受け付けた場合など)、アプリケーションサーバ処理部310Aがダウン(リクエストを処理する機能が停止)したとする。監視サーバ処理部320Aは、アプリケーションサーバ処理部310Aのプロセスが存在するか否かを所定の時間ごと(例えば、1秒ごと)に監視しており、アプリケーションサーバ処理部310Aがダウンしたことを検知すると(ステップS1001)、Webサーバ処理部340Aが保持するWebサーバリクエスト受付統計情報270からデータを取得して、解析を行う(ステップS1002)。解析の際には、Webサーバリクエスト受付統計情報270から取得したデータと、自己が保持する監視サーバ定義ファイル250のデータとを比較する。   The application server processing unit 310A accepts the request (http: //... /Hoge.jsp) transmitted from the client device 20 and tries to process it, but a problem occurs (a large amount of memory is required for one request). When there is a malfunction that may be consumed in the application server processing program 210 of the server apparatus 10A, or when the server apparatus 10A receives a malicious request, the application server processing unit 310A is down (processes the request). Suppose that the function stops. The monitoring server processing unit 320A monitors whether or not the process of the application server processing unit 310A exists every predetermined time (for example, every second), and detects that the application server processing unit 310A is down. (Step S1001), data is acquired from the Web server request reception statistical information 270 held by the Web server processing unit 340A, and analysis is performed (Step S1002). In the analysis, the data acquired from the Web server request reception statistical information 270 is compared with the data of the monitoring server definition file 250 held by itself.

監視サーバ処理部320Aは、解析した後にリクエスト(http://・・・/hoge.jsp)を受信拒否すると判定すると、リクエスト(http://・・・/hoge.jsp)を受信拒否する旨の通知を、監視サーバ処理部320Bおよびモジュール部330Aに行う(ステップS1003)。監視サーバ処理部320Bは、モジュール部330Bに対してリクエスト受信拒否の通知を行う(ステップS1004)。モジュール部330Aは、クライアント装置20から、Webサーバ処理部340Aを介して受け付けたリクエスト(http://・・・/hoge.jsp)がWebサーバ処理部340Aから入力された場合には、以降の処理でリクエストをアプリケーションサーバ処理部310Aに出力しないようにし、Webサーバ処理部340Aを介してクライアント装置20にエラーを出力することでリクエスト受信拒否を行う(ステップS1005)。同様に、モジュール部330Bは、クライアント装置20から受け付けたリクエスト(http://・・・/hoge.jsp)がWebサーバ処理部340Bから入力された場合には、以降の処理でリクエストをアプリケーションサーバ処理部310Bに出力しないようにし、Webサーバ処理部340Bを介してクライアント装置20にエラーを出力することでリクエスト受信拒否を行う(ステップS1006)。   If the monitoring server processing unit 320A determines that the request (http: //.../hoge.jsp) is rejected after analysis, the monitoring server processing unit 320A rejects the request (http: //.../hoge.jsp). Is sent to the monitoring server processing unit 320B and the module unit 330A (step S1003). The monitoring server processing unit 320B notifies the module unit 330B that the request reception has been rejected (step S1004). When the request (http: //... /Hoge.jsp) received from the client device 20 via the Web server processing unit 340A is input from the Web server processing unit 340A, the module unit 330A In the process, the request is not output to the application server processing unit 310A, and an error is output to the client device 20 via the Web server processing unit 340A to reject the reception of the request (step S1005). Similarly, when the request (http: //... /Hoge.jsp) received from the client device 20 is input from the Web server processing unit 340B, the module unit 330B sends the request to the application server in the subsequent processing. The request reception is rejected by not outputting to the processing unit 310B and outputting an error to the client device 20 via the Web server processing unit 340B (step S1006).

図3は、本実施形態におけるWebサーバリクエスト受付統計情報の構成を示す図である。図3に示すように、Webサーバリクエスト受付統計情報270は、URI(リソースの識別子)271と、リクエストの受け付け状況に関する情報276とを含んで構成される。ここでは、リクエストの受け付け状況に関する情報276として、カウンタ273、1秒あたりのリクエスト数274、平均レスポンスタイム275が示されており、各項目の値は、時間272ごとに設定されている。   FIG. 3 is a diagram showing a configuration of Web server request reception statistical information in the present embodiment. As shown in FIG. 3, the Web server request reception statistical information 270 includes a URI (resource identifier) 271 and information 276 regarding the request reception status. Here, the counter 273, the number of requests 274 per second, and the average response time 275 are shown as the information 276 regarding the request acceptance status, and the value of each item is set for each time 272.

URI271は、クライアント装置20(図1参照)からのリクエストによって指定されるリソースの識別子である。   The URI 271 is an identifier of a resource specified by a request from the client device 20 (see FIG. 1).

カウンタ273は、時間272あたり(秒・分・時間・日)に成功したリクエスト処理数の累計である「成功」と、時間272あたり(秒・分・時間・日)に失敗したリクエスト処理数の累計である「失敗」とを含む。「成功」としては、例えば、HTTP(HyperText Transfer Protocol)ステータスコード:200番台から300番台のレスポンス数を用い、「失敗」としては、例えば、HTTPステータスコード:500番台のレスポンス数を用いることができる。また、「成功」にHTTPステータスコード:100番台のレスポンス数を加えるようにしてもよいし、「失敗」にHTTPステータスコード:400番台のレスポンス数を累計に加えるようにしてもよい。   The counter 273 indicates “success” that is the cumulative number of request processes that succeeded per hour 272 (seconds / minutes / hours / days), and the number of request processes that failed per hour 272 (seconds / minutes / hours / days). Includes “failure”, which is the cumulative total. As “success”, for example, an HTTP (HyperText Transfer Protocol) status code: the number of responses in the 200s to 300s can be used, and as “failure”, for example, the HTTP status code: the number of responses in the 500s can be used. . Further, the number of responses of HTTP status code: 100s may be added to “success”, or the number of responses of HTTP status code: 400s may be added to “failure”.

1秒あたりのリクエスト数274は、1秒間にクライアント装置20(図1参照)から受け付けたリクエスト数を、時間272(秒・分・時間・日)単位の平均値として算出した値である。例えば、1秒あたりのリクエスト数274(「日」単位の平均値)が9.1リクエスト数/秒で、1秒あたりのリクエスト数274(「分」単位の平均値)が12.7リクエスト数/秒の場合には、現在から遡って1分の間は、リクエストの受け付けによる負荷が高い状態(ピーク状態)になっている可能性があると判断できる。また、1秒あたりのリクエスト数274の代わりに、他の単位時間あたりのリクエスト数を用いてもよく、例えば、1分あたりのリクエスト数、1時間あたりのリクエスト数などを用いてもよい。   The number of requests 274 per second is a value obtained by calculating the number of requests received from the client device 20 (see FIG. 1) per second as an average value in units of time 272 (seconds / minutes / hours / days). For example, when the number of requests 274 per second (average value in "day" units) is 9.1 requests / second and the number of requests 274 per second (average value in "minutes") is 12.7 requests / second Therefore, it can be determined that there is a possibility that the load due to the reception of the request is high (peak state) for 1 minute from the present. Further, instead of the number of requests 274 per second, the number of requests per other unit time may be used. For example, the number of requests per minute, the number of requests per hour, or the like may be used.

平均レスポンスタイム275は、Webサーバ処理部340(図2参照)がクライアント装置20(図2参照)からリクエストを受け付けてからクライアント装置20(図2参照)にレスポンスを返すまでの処理時間を、時間272(秒・分・時間・日)単位の平均値として算出した値である。例えば、平均レスポンスタイム275(「日」単位の平均値)が18.5ミリ秒で、平均レスポンスタイム275(「分」単位の平均値)が25.6ミリ秒の場合には、現在から遡って1分の間は、リクエストを受け付けてからレスポンスを返すまでに多くの時間を要していることから、リクエストの受け付けによる負荷が高い時間状態(ピーク状態)になっている可能性があると判断できる。   The average response time 275 is the processing time from when the Web server processing unit 340 (see FIG. 2) receives a request from the client device 20 (see FIG. 2) until the response is returned to the client device 20 (see FIG. 2). It is a value calculated as an average value in units of 272 (seconds / minutes / hours / days). For example, if the average response time 275 (average value in “day” unit) is 18.5 milliseconds and the average response time 275 (average value in “minute” unit) is 25.6 milliseconds, one minute retroactively Since it takes a lot of time until a response is returned after receiving a request, it can be determined that there is a possibility that the load due to receiving a request is in a high time state (peak state).

Webサーバリクエスト受付統計情報270は、運用上リクエスト処理の状況を確認するために利用されるようにしてもよい。また、Webサーバリクエスト受付統計情報270は、Webサーバリクエスト受付統計情報270をクリアすることもできる。   The Web server request reception statistical information 270 may be used to confirm the status of request processing in operation. The Web server request reception statistical information 270 can also clear the Web server request reception statistical information 270.

図4は、本実施形態における監視サーバ定義ファイルの構成を示す図である。図4に示すように、監視サーバ定義ファイル250は、URI251と、条件252と、アクション253とを含んで構成される。この監視サーバ定義ファイル250のデータは、例えば、管理者(不図示)などによって定義されるものである。また、メモリ200(図1参照)は、すくなくともURI251と、条件252と、アクション253と、リクエストの受け付け状況に関する情報276(図3参照)とを対応させた情報を記憶する。   FIG. 4 is a diagram showing the configuration of the monitoring server definition file in this embodiment. As shown in FIG. 4, the monitoring server definition file 250 includes a URI 251, a condition 252, and an action 253. The data in the monitoring server definition file 250 is defined by an administrator (not shown), for example. In addition, the memory 200 (see FIG. 1) stores at least information that associates the URI 251, the condition 252, the action 253, and the information 276 (see FIG. 3) regarding the request reception status.

URI251は、クライアント装置20(図1参照)からのリクエストによって指定されるリソースの識別子である。ここでは、URI251として、”/”のコンテキストルートから始まるURIが定義してある。また、3行目のデータのように、URI251の中に“*”をワイルドカードとして使用してもよい。このように、監視サーバ定義ファイル250をURI251別に定義しておくことによって、例えばログイン画面を表示させるリクエストを受信拒否しない(監視サーバ定義ファイル250に設定しない)ようにしておけば、クライアント装置20からログインができなくなることを防止できる。   The URI 251 is an identifier of a resource specified by a request from the client device 20 (see FIG. 1). Here, a URI starting from a context root of “/” is defined as the URI 251. Further, as in the data on the third line, “*” may be used as a wild card in the URI 251. In this way, by defining the monitoring server definition file 250 for each URI 251, for example, if the request for displaying the login screen is not rejected (not set in the monitoring server definition file 250), the client device 20 This prevents you from being unable to log in.

条件252は、リクエストに対する処理の制御が実行されるための条件である。条件252としては、Webサーバリクエスト受付統計情報270(図3参照)のカウンタ273、リクエスト数274および平均レスポンスタイム275のうち、いずれの項目を用いてもよいし、それらの項目を組み合わせて条件252を構成するようにしてもよい。また、条件252に、しきい値(例えば、平均レスポンスタイム275のしきい値)を設定しておき、サーバ装置10(図1参照)が、実測値としきい値とに基づいてリクエストに対する処理を実行するようにしてもよい(平均レスポンスタイムの実測値がしきい値よりも大きいと判定した場合に、リクエストに対する処理の制御を実行するなど)。   The condition 252 is a condition for executing processing control for the request. As the condition 252, any of the items of the counter 273, the number of requests 274, and the average response time 275 of the Web server request reception statistical information 270 (see FIG. 3) may be used. You may make it comprise. Further, a threshold value (for example, a threshold value of the average response time 275) is set in the condition 252, and the server device 10 (see FIG. 1) performs processing for the request based on the actually measured value and the threshold value. You may make it perform (control of the process with respect to a request is performed, etc., when it determines with the measured value of average response time being larger than a threshold value).

アクション253は、リクエストに対する処理の制御を実行する際の処理内容である。ここでは、アクション253にリクエストの「流量制御」「受信拒否」などが定義されている。「流量制御」の「同時処理数」は、アプリケーションサーバ処理部310で同時に処理できるリクエスト数の上限値であり、「流量制御」の「キュー」は、リクエスト処理待ちとして、キューに格納できるリクエスト数の上限値を示している。また、「受信拒否」は、「流量制御(同時処理数:0)」と同じ意味であるため、アクション253には「受信拒否」の代わりに、「流量制御(同時処理数:0)」を設定してもよい。アクション253としては、「同時処理数」および「キュー」のいずれか一方を用いてもよいし、双方を設定してもよい。   The action 253 is the processing content when executing processing control for the request. Here, “flow rate control” and “reception refusal” of the request are defined in the action 253. “Number of simultaneous processing” of “flow rate control” is the upper limit of the number of requests that can be processed simultaneously by the application server processing unit 310, and “queue” of “flow rate control” is the number of requests that can be stored in the queue while waiting for request processing The upper limit is shown. In addition, “reception refusal” has the same meaning as “flow rate control (simultaneous processing number: 0)”. Therefore, “flow rate control (simultaneous processing number: 0)” is used instead of “reception refusal” in action 253. It may be set. As the action 253, either “the number of simultaneous processes” or “queue” may be used, or both may be set.

図5は、本実施形態におけるモジュールカウンタテーブルの構成を示す図である。モジュールカウンタテーブル260は、URI261を含み、監視サーバ定義ファイル250(図4参照)に「同時処理数」が定義されている場合には、すくなくとも上限値262と、リクエストカウンタ263とを含んで構成され、監視サーバ定義ファイル250(図4参照)に「キュー」が定義されている場合には、すくなくともキューサイズ264と、キューカウンタ265とを含んで構成されるものである。   FIG. 5 is a diagram showing the configuration of the module counter table in the present embodiment. The module counter table 260 includes a URI 261. When the “simultaneous processing number” is defined in the monitoring server definition file 250 (see FIG. 4), the module counter table 260 includes at least an upper limit value 262 and a request counter 263. In the case where “queue” is defined in the monitoring server definition file 250 (see FIG. 4), at least the queue size 264 and the queue counter 265 are included.

URI261は、クライアント装置20(図1参照)からのリクエストによって指定されるリソースの識別子である。   The URI 261 is an identifier of a resource specified by a request from the client device 20 (see FIG. 1).

上限値262は、アプリケーションサーバ処理部310(図2参照)で同時に実行できるリクエストの最大数である。   The upper limit value 262 is the maximum number of requests that can be executed simultaneously by the application server processing unit 310 (see FIG. 2).

リクエストカウンタ263は、アプリケーションサーバ処理部310(図2参照)で実行中のリクエストの数である。   The request counter 263 is the number of requests being executed by the application server processing unit 310 (see FIG. 2).

キューサイズ264は、モジュール部330(図2参照)が保持するキューに格納できるリクエストの最大数である。   The queue size 264 is the maximum number of requests that can be stored in the queue held by the module unit 330 (see FIG. 2).

キューカウンタ265は、モジュール部330(図2参照)が保持するキューに格納されているリクエストの数である。   The queue counter 265 is the number of requests stored in the queue held by the module unit 330 (see FIG. 2).

図6は、本実施形態におけるサーバ装置によるリクエスト処理の機能停止時の処理の流れを示すフローチャートである。図6を参照して(適宜図1ないし図5参照)、サーバ装置10Aが自己のリクエストを処理する機能の停止を検知する処理および検知した際に実行する処理の流れを説明する。   FIG. 6 is a flowchart showing the flow of processing when the function of request processing by the server device in the present embodiment is stopped. With reference to FIG. 6 (refer to FIG. 1 to FIG. 5 as appropriate), a description will be given of a process for detecting the stop of the function of processing its own request by the server device 10A and a flow of a process executed when it is detected.

監視サーバ処理部320Aは、アプリケーションサーバ処理部310Aのプロセスを監視する(ステップS101)。すなわち、監視サーバ処理部320Aは、所定の時間ごとにアプリケーションサーバ処理部310Aにヘルスチェックの要求を送信し、アプリケーションサーバ処理部310Aが正常なレスポンスを返すか否かで、アプリケーションサーバ処理部310Aがダウンしているか否か(サーバ装置10Aのリクエストを処理する機能が停止しているか否か)を確認する。監視サーバ処理部320Aが、アプリケーションサーバ処理部310Aがダウンしていない(サーバ装置10Aのリクエストを処理する機能が停止していない)と判定した場合(ステップS102で「No」)、ステップS101に戻る。監視サーバ処理部320Aが、アプリケーションサーバ処理部310Aがダウンした(サーバ装置10Aのリクエストを処理する機能が停止した)と判定した場合(ステップS102で「Yes」)、監視サーバ処理部320Aは、アプリケーションサーバ処理部310Aを再起動する(ステップS103)。   The monitoring server processing unit 320A monitors the process of the application server processing unit 310A (step S101). That is, the monitoring server processing unit 320A transmits a health check request to the application server processing unit 310A every predetermined time, and the application server processing unit 310A determines whether or not the application server processing unit 310A returns a normal response. It is confirmed whether or not it is down (whether or not the function of processing the request of the server device 10A is stopped). When the monitoring server processing unit 320A determines that the application server processing unit 310A is not down (the function of processing the request of the server device 10A is not stopped) (“No” in step S102), the process returns to step S101. . When the monitoring server processing unit 320A determines that the application server processing unit 310A is down (the function of processing the request of the server device 10A has stopped) (“Yes” in step S102), the monitoring server processing unit 320A The server processing unit 310A is restarted (step S103).

次に、監視サーバ処理部320Aは、監視サーバ定義ファイル250とWebサーバリクエスト受付統計情報270とを比較する(ステップS104)。すなわち、監視サーバ処理部320Aは、監視サーバ定義ファイル250の条件252で使用される情報(監視サーバ定義ファイル250の1行目であればWebサーバリクエスト受付統計情報270の平均レスポンスタイム275(秒・分・時間・日))を、監視サーバ定義ファイル250のURI251と同一のURI261を有するWebサーバリクエスト受付統計情報270のデータから取得し、監視サーバ定義ファイル250の条件252を満たすURI251が存在するか否かを解析する。   Next, the monitoring server processing unit 320A compares the monitoring server definition file 250 with the Web server request reception statistical information 270 (step S104). That is, the monitoring server processing unit 320A receives information used in the condition 252 of the monitoring server definition file 250 (if the first line of the monitoring server definition file 250, the average response time 275 of the web server request reception statistical information 270 (seconds · Min / hour / day)) from the data of the Web server request reception statistical information 270 having the same URI 261 as the URI 251 of the monitoring server definition file 250, and whether there is a URI 251 that satisfies the condition 252 of the monitoring server definition file 250 Analyze whether or not.

監視サーバ処理部320Aは、条件に適合する情報が存在しないと判定した場合(ステップS105で「No」)、ステップS101に戻る。条件に適合する情報が存在すると判定した場合(ステップS105で「Yes」)、ステップS105で条件252を満たすと判定したデータのURI251およびアクション253を、他の監視サーバ処理部320Bに通知する(ステップS106)。ここでは、他の監視サーバ処理部320Bは1台であるとしたが、複数であってもよい。   If the monitoring server processing unit 320A determines that there is no information that meets the conditions ("No" in step S105), the monitoring server processing unit 320A returns to step S101. When it is determined that there is information that meets the conditions (“Yes” in step S105), the URI 251 and the action 253 of the data determined to satisfy the condition 252 in step S105 are notified to the other monitoring server processing unit 320B (step S105). S106). Here, it is assumed that there is one other monitoring server processing unit 320B, but there may be a plurality.

以下のステップS107〜ステップS109の処理は、サーバ装置10Aが、ステップS105で条件252を満たすと判定したデータのURI251を指定するリクエストを受信した際にアクション253を実行することによって、リクエスト処理を制御するために行う。すなわち、監視サーバ処理部320Aは、ステップS105で条件252を満たすと判定したデータのURI251およびアクション253をモジュール部330Aに出力する(ステップS107)。モジュール部330Aは、モジュールカウンタテーブル260に情報を登録する(ステップS108)。すなわち、監視サーバ処理部320Aから入力されたURI251をモジュールカウンタテーブル260のURI261に、監視サーバ処理部320Aから入力されたアクション253の「同時処理数」を上限値262に、「キュー」をモジュールカウンタテーブル260のキューサイズ264に登録する。リクエストカウンタ263およびキューカウンタ265には、例えば「0」を設定しておく。   The processing of the following steps S107 to S109 controls the request processing by executing the action 253 when the server device 10A receives a request specifying the URI 251 of the data determined to satisfy the condition 252 in step S105. To do. That is, the monitoring server processing unit 320A outputs the URI 251 and the action 253 of the data determined to satisfy the condition 252 in step S105 to the module unit 330A (step S107). The module unit 330A registers information in the module counter table 260 (step S108). That is, the URI 251 input from the monitoring server processing unit 320A is set to the URI 261 of the module counter table 260, the “simultaneous processing number” of the action 253 input from the monitoring server processing unit 320A is set to the upper limit value 262, and “queue” is set to the module counter. It is registered in the queue size 264 of the table 260. For example, “0” is set in the request counter 263 and the queue counter 265.

モジュール部330Aは、Webサーバ処理部340Aを再起動する(ステップS109)。このステップS109は、Webサーバ処理部340のプロセス上で動作しているモジュール部330が保持するモジュールカウンタテーブル260の変更を反映させるために行う。Webサーバ処理部340の再起動の方法には、処理中のリクエストが終了してから再起動を行い、再起動の間に受け付けたリクエストをWebサーバ処理部340のキューに格納する方法、リクエストの終了を待たずに強制的に再起動を行う方法などがある。その後、ステップS101に戻る。   The module unit 330A restarts the Web server processing unit 340A (step S109). This step S109 is performed to reflect the change in the module counter table 260 held by the module unit 330 operating on the process of the Web server processing unit 340. As a method of restarting the Web server processing unit 340, restart is performed after the request being processed is completed, and a request received during the restart is stored in the queue of the Web server processing unit 340. There is a method to forcibly restart without waiting for the end. Then, it returns to step S101.

図7は、本実施形態におけるリクエスト処理の機能停止の通知を受けたサーバ装置によって実行される処理の流れを示すフローチャートである。図7を参照して(適宜図1ないし図5参照)、サーバ装置10Aのリクエストを処理する機能が停止した際に、サーバ装置10Bがサーバ装置10Aからその旨の通知を受け付ける処理および受け付けた際に実行する処理の流れを説明する。   FIG. 7 is a flowchart showing the flow of processing executed by the server device that has received the notification of the request processing function stop in this embodiment. Referring to FIG. 7 (refer to FIGS. 1 to 5 as appropriate), when the function of processing a request of server apparatus 10A is stopped, server apparatus 10B receives a notification to that effect from server apparatus 10A, and The flow of processing to be executed will be described.

監視サーバ処理部320Bは、監視サーバ処理部320Aからアプリケーションサーバ処理部310Aがダウンした旨の通知(サーバ装置10Aのリクエストを処理する機能が停止した旨の通知)として、URI251およびアクション253を受け付けたか否かを判定する(ステップS201)。URI251およびアクション253を受け付けていない場合には(ステップS201で「No」)、受け付けるまでステップS201を繰り返す。URI251およびアクション253を受け付けた場合には(ステップS201で「Yes」)、監視サーバ処理部320Bは、監視サーバ処理部320Aから受け付けたURI251およびアクション253をモジュール部330Bに出力する(ステップS202)。   Whether the monitoring server processing unit 320B has received the URI 251 and the action 253 as a notification from the monitoring server processing unit 320A that the application server processing unit 310A is down (notification that the function of processing the request of the server device 10A has stopped) It is determined whether or not (step S201). If the URI 251 and the action 253 are not received (“No” in step S201), step S201 is repeated until it is received. When the URI 251 and the action 253 are received (“Yes” in step S201), the monitoring server processing unit 320B outputs the URI 251 and the action 253 received from the monitoring server processing unit 320A to the module unit 330B (step S202).

モジュール部330Bは、監視サーバ処理部320Bから入力されたURI251およびアクション253を、モジュールカウンタテーブル260に登録する(ステップS203)。登録の方法については、ステップS108(図6参照)と同様である。モジュール部330Bは、Webサーバ処理部340Bを再起動する(ステップS204)。再起動の方法については、ステップS109と同様である。その後、ステップS201に戻る。   The module unit 330B registers the URI 251 and the action 253 input from the monitoring server processing unit 320B in the module counter table 260 (step S203). The registration method is the same as step S108 (see FIG. 6). The module unit 330B restarts the web server processing unit 340B (step S204). The restart method is the same as in step S109. Thereafter, the process returns to step S201.

図8は、本実施形態におけるモジュール部によるリクエスト受信時の処理の流れを示すフローチャートである。図8を参照して(適宜図1ないし図5参照)、サーバ装置10のモジュール部330がWebサーバ処理部340からリクエストを受信する処理および受信した際に実行する処理の流れを説明する。   FIG. 8 is a flowchart showing the flow of processing when a request is received by the module unit in the present embodiment. With reference to FIG. 8 (refer to FIG. 1 to FIG. 5 as appropriate), the module unit 330 of the server device 10 receives a request from the Web server processing unit 340 and the flow of processing executed when the request is received.

モジュール部330は、Webサーバ処理部340からリクエストを受信したか否かを判定する(ステップS301)。リクエストを受信していない場合には(ステップS301で「No」)、受信するまでステップS301を繰り返す。リクエストを受信した場合には(ステップS301で「Yes」)、アプリケーションサーバ処理部310がダウンしているか否かの判定を行う(ステップS302)。アプリケーション処理部310がダウンしている場合には(ステップS302で「Yes」)、他のアプリケーションサーバ処理部310にリクエストを転送して(ステップS303)、ステップS301に戻る。この転送は、Webサーバ処理部340を介して行われる。また、ここでは、ステップS103(図6参照)のアプリケーションサーバ処理部310の再起動の処理が未完了の場合などに、アプリケーションサーバ処理部310がダウンしている可能性がある。   The module unit 330 determines whether a request has been received from the web server processing unit 340 (step S301). If a request has not been received (“No” in step S301), step S301 is repeated until it is received. When the request is received (“Yes” in step S301), it is determined whether or not the application server processing unit 310 is down (step S302). If the application processing unit 310 is down (“Yes” in step S302), the request is transferred to another application server processing unit 310 (step S303), and the process returns to step S301. This transfer is performed via the Web server processing unit 340. Here, there is a possibility that the application server processing unit 310 is down, for example, when the restart processing of the application server processing unit 310 in step S103 (see FIG. 6) is not completed.

アプリケーション処理部310がダウンしていない場合(ステップS302で「No」)、モジュール部330は、受信したリクエストによって指定されるURIが、モジュールカウンタテーブル260に登録されているか否かを判定する(ステップS304)。登録されていないと判定した場合には(ステップS304で「No」)、アプリケーションサーバ処理部310にリクエストを出力し(ステップS305)、ステップS301に戻る。登録されていると判定した場合には(ステップS304で「Yes」)、モジュールカウンタテーブル260の上限値262が「0」であるか否かを判定する(ステップS306)。ここでの上限値262は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。   When the application processing unit 310 is not down (“No” in step S302), the module unit 330 determines whether or not the URI specified by the received request is registered in the module counter table 260 (step). S304). If it is determined that it is not registered (“No” in step S304), a request is output to the application server processing unit 310 (step S305), and the process returns to step S301. If it is determined that it is registered (“Yes” in step S304), it is determined whether or not the upper limit value 262 of the module counter table 260 is “0” (step S306). The upper limit value 262 here corresponds to a result obtained by searching the module counter table 260 with the URI specified by the request received by the module unit 330.

上限値262が「0」の場合(ステップS306で「Yes」)、Webサーバ処理部340にエラーを出力し(ステップS307)、ステップS301に戻る。上限値が「0」ではなかった場合(ステップS306で「No」)、上限値262がリクエストカウンタ263よりも大きいか否かを判定する(ステップS308)。ここでの上限値262およびリクエストカウンタ263は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。なお、ステップS308で使用する上限値262およびリクエストカウンタ263は、ステップS306の判定を行う際に取得してもよい。   If the upper limit value 262 is “0” (“Yes” in step S306), an error is output to the web server processing unit 340 (step S307), and the process returns to step S301. When the upper limit value is not “0” (“No” in step S306), it is determined whether or not the upper limit value 262 is larger than the request counter 263 (step S308). The upper limit value 262 and the request counter 263 here correspond to those obtained by searching the module counter table 260 with the URI specified by the request received by the module unit 330. Note that the upper limit value 262 and the request counter 263 used in step S308 may be acquired when the determination in step S306 is performed.

上限値262がリクエストカウンタ263以下の場合(上限値262がリクエストカウンタ263より大きくない場合)(ステップS308で「No」)、キューサイズ264がキューカウンタよりも大きいか否かを判定する(ステップS309)。ここでのキューサイズ264およびキューカウンタ265は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。なお、ステップS309で使用するキューサイズ264およびキューカウンタ265は、ステップS306の判定を行う際に取得してもよい。   When the upper limit value 262 is equal to or smaller than the request counter 263 (when the upper limit value 262 is not larger than the request counter 263) (“No” in step S308), it is determined whether or not the queue size 264 is larger than the queue counter (step S309). ). The queue size 264 and the queue counter 265 here correspond to those obtained by searching the module counter table 260 with the URI specified by the request received by the module unit 330. Note that the queue size 264 and the queue counter 265 used in step S309 may be acquired when the determination in step S306 is performed.

キューサイズ264がキューカウンタ265以下の場合(キューサイズ264がキューカウンタ265より大きくない場合)(ステップS309で「No」)、Webサーバ処理部340にエラーを出力し(ステップS310)、ステップS301に戻る。   When the queue size 264 is equal to or smaller than the queue counter 265 (when the queue size 264 is not larger than the queue counter 265) (“No” in step S309), an error is output to the web server processing unit 340 (step S310), and the process proceeds to step S301. Return.

キューサイズ264がキューカウンタ265よりも大きい場合(ステップS309で「Yes」)、キューカウンタ265に「1」を加算し(ステップS311)、リクエスト処理待ちの処理を行い(ステップS312)、ステップS301に戻る。ここで「1」が加算されるキューカウンタ265は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。リクエスト処理待ちの処理とは、リクエストをキューに格納して、アプリケーションサーバ処理部310にリクエストを転送するのを保留することである。また、キューにリクエストを格納するとともに、その格納順番を、「1」を加算した後のキューカウンタ265の値とする。   If the queue size 264 is larger than the queue counter 265 (“Yes” in step S309), “1” is added to the queue counter 265 (step S311), a request processing waiting process is performed (step S312), and the process proceeds to step S301. Return. Here, the queue counter 265 to which “1” is added corresponds to the queue counter 265 searched by the URI specified by the request received by the module unit 330. The process waiting for request processing means storing the request in a queue and deferring the transfer of the request to the application server processing unit 310. Further, the request is stored in the queue, and the storage order is set to the value of the queue counter 265 after adding “1”.

上限値262がリクエストカウンタ263より大きい場合(ステップS308で「Yes」)、リクエストカウンタ263に「1」を加算し(ステップS313)、アプリケーションサーバ処理部310にリクエストを出力して(ステップS314)、ステップS301に戻る。ここで「1」が加算されるリクエストカウンタ263は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。   When the upper limit value 262 is larger than the request counter 263 (“Yes” in step S308), “1” is added to the request counter 263 (step S313), and the request is output to the application server processing unit 310 (step S314). The process returns to step S301. Here, the request counter 263 to which “1” is added corresponds to the request by searching the module counter table 260 with the URI specified by the request received by the module unit 330.

図9は、本実施形態におけるモジュール部によるレスポンス受信時の処理の流れを示すフローチャートである。図9を参照して(適宜図1ないし図5参照)、サーバ装置10のモジュール部330がアプリケーションサーバ処理部310からレスポンスを受信する処理および受信した際に実行する処理の流れを説明する。   FIG. 9 is a flowchart showing the flow of processing when a response is received by the module unit in the present embodiment. With reference to FIG. 9 (refer to FIGS. 1 to 5 as appropriate), the module unit 330 of the server device 10 receives a response from the application server processing unit 310 and the flow of processing executed when the response is received.

モジュール部330は、アプリケーションサーバ処理部310からレスポンスを受信したか否かを判定する(ステップS401)。レスポンスを受信していない場合には(ステップS401で「No」)、受信するまでステップS401を繰り返す。レスポンスを受信した場合には(ステップS401で「Yes」)、Webサーバ処理部340から受信したリクエストによって指定されるURIが、モジュールカウンタテーブル260に登録されているか否かを判定する(ステップS402)。登録されていないと判定した場合には(ステップS402で「No」)、Webサーバ処理部340にレスポンスを出力し(ステップS403)、ステップS401に戻る。登録されていると判定した場合には(ステップS402で「Yes」)、リクエストカウンタ263から「1」を減算し(ステップS404)、Webサーバ処理部340にレスポンスを出力する(ステップS405)。ここで「1」が減算されるリクエストカウンタ263は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。   The module unit 330 determines whether a response is received from the application server processing unit 310 (step S401). If no response has been received (“No” in step S401), step S401 is repeated until it is received. When a response is received (“Yes” in step S401), it is determined whether or not the URI specified by the request received from the Web server processing unit 340 is registered in the module counter table 260 (step S402). . If it is determined that it is not registered (“No” in step S402), a response is output to the web server processing unit 340 (step S403), and the process returns to step S401. If it is determined that it is registered (“Yes” in step S402), “1” is subtracted from the request counter 263 (step S404), and a response is output to the web server processing unit 340 (step S405). Here, the request counter 263 to which “1” is subtracted corresponds to the module counter table 260 searched by the URI specified by the request received by the module unit 330.

続いて、モジュール部330は、キュー待ちのリクエストが存在するか否かを判定する(ステップS406)。キュー待ちのリクエストが存在しない場合には(ステップS406で「No」)、ステップS401に戻る。キュー待ちのリクエストが存在する場合には(ステップS406で「Yes」)、格納順番が1(最初)のリクエストをアプリケーションサーバ処理部310に出力し(ステップS407)、キューに格納されている各リクエストの格納順番から「1」を減算し(ステップS408)、リクエストカウンタ263に「1」を加算し(ステップS409)、キューカウンタ265から「1」を減算して(ステップS410)、ステップS401に戻る。ここで「1」が加算されるリクエストカウンタ263および「1」を減算されるキューカウンタ265は、モジュール部330が受信したリクエストによって指定されるURIでモジュールカウンタテーブル260を検索して、該当したものである。   Subsequently, the module unit 330 determines whether there is a queue waiting request (step S406). If there is no queue-waiting request (“No” in step S406), the process returns to step S401. If there is a queue-waiting request (“Yes” in step S406), the request with the storage order 1 (first) is output to the application server processing unit 310 (step S407), and each request stored in the queue "1" is subtracted from the storage order (step S408), "1" is added to the request counter 263 (step S409), "1" is subtracted from the queue counter 265 (step S410), and the process returns to step S401. . Here, the request counter 263 to which “1” is added and the queue counter 265 to which “1” is subtracted are searched by searching the module counter table 260 with the URI specified by the request received by the module unit 330. It is.

以上において説明したように、本実施形態におけるリクエスト処理システム1は、ネットワーク30を介してクライアント装置20から受け付けたリクエストを処理する複数のサーバ装置10が、相互通信可能に構成されている。サーバ装置10Aは、クライアント装置20からのリクエストによって指定されるリソースの識別子(例えば、URI251)と、リクエストに対する処理の制御が実行されるための条件252と、制御の処理内容であるアクション253と、リクエストの受け付け状況に関する情報276(例えば、時間272、カウンタ273、1秒あたりのリクエスト数274および平均レスポンスタイム275)とを対応させた情報をメモリ200に記憶している。そして、サーバ装置10Aの監視サーバ処理部320Aは、アプリケーションサーバ処理部310Aのプロセスのダウン(自己のリクエストを処理する機能の停止)を検知すると、リクエストの受け付け状況に関する情報276が、対応する条件252を満たす場合に、メモリ200からURI251およびアクション253を取得して他のサーバ装置10Bの監視サーバ処理部320Bに通知する。これによって、クライアント装置20から受け付けたリクエストを処理する機能がサーバ装置10Aで停止しても、URI251およびアクション253を通知されたサーバ装置10Bにおいて、通知されたURI251を指定するリクエストに対する処理を、通知されたアクション253が示すように制御できるため、リクエストを処理する機能が停止することを防止することができる。つまり、複数のサーバ装置において、リクエストを処理する機能が連続的に停止することを防止することができる。   As described above, the request processing system 1 according to the present embodiment is configured such that a plurality of server apparatuses 10 that process requests received from the client apparatus 20 via the network 30 can communicate with each other. The server device 10A includes an identifier (for example, URI 251) of a resource designated by a request from the client device 20, a condition 252 for executing control of processing for the request, an action 253 that is control processing content, Information that associates information 276 (for example, time 272, counter 273, number of requests 274 per second, and average response time 275) with respect to the request acceptance status is stored in the memory 200. Then, when the monitoring server processing unit 320A of the server apparatus 10A detects that the process of the application server processing unit 310A is down (stop of the function of processing its own request), the information 276 regarding the request reception status indicates the corresponding condition 252. If the condition is satisfied, the URI 251 and the action 253 are acquired from the memory 200 and notified to the monitoring server processing unit 320B of the other server apparatus 10B. As a result, even if the function of processing the request received from the client device 20 is stopped in the server device 10A, the server device 10B notified of the URI 251 and the action 253 notifies the processing for the request specifying the notified URI 251. Since the action can be controlled as indicated by the action 253, the function of processing the request can be prevented from stopping. That is, in a plurality of server devices, it is possible to prevent the function for processing requests from stopping continuously.

本実施形態におけるサーバ装置が複数接続されたリクエスト処理システムの構成を示す図である。It is a figure which shows the structure of the request processing system with which the server apparatus in this embodiment was connected two or more. 本実施形態におけるリクエスト処理システムが2台のサーバ装置を含む場合の処理の流れを示す図である。It is a figure which shows the flow of a process in case the request processing system in this embodiment contains two server apparatuses. 本実施形態におけるWebサーバリクエスト受付統計情報の構成を示す図である。It is a figure which shows the structure of the web server request reception statistical information in this embodiment. 本実施形態における監視サーバ定義ファイルの構成を示す図である。It is a figure which shows the structure of the monitoring server definition file in this embodiment. 本実施形態におけるモジュールカウンタテーブルの構成を示す図である。It is a figure which shows the structure of the module counter table in this embodiment. 本実施形態におけるサーバ装置によるリクエスト処理の機能停止時の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process at the time of the function stop of the request process by the server apparatus in this embodiment. 本実施形態におけるリクエスト処理の機能停止の通知を受けたサーバ装置によって実行される処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process performed by the server apparatus which received the notification of the function stop of the request process in this embodiment. 本実施形態におけるモジュール部によるリクエスト受信時の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process at the time of the request reception by the module part in this embodiment. 本実施形態におけるモジュール部によるレスポンス受信時の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process at the time of the response reception by the module part in this embodiment.

符号の説明Explanation of symbols

1 リクエスト処理システム
10(10A,10B) サーバ装置
20 クライアント装置
30 ネットワーク
100 CPU
200 メモリ
210 アプリケーションサーバ処理プログラム
220 監視サーバ処理プログラム
230 モジュールプログラム
240 Webサーバ処理プログラム
250 監視サーバ定義ファイル
251 URI(リソースの識別子)
252 条件
253 アクション
260 モジュールカウンタテーブル
261 URI
262 上限値
263 リクエストカウンタ
264 キューサイズ
265 キューカウンタ
270 Webサーバリクエスト受付統計情報
271 URI(リソースの識別子)
272 時間(リクエストの受け付け状況に関する情報)
273 カウンタ(リクエストの受け付け状況に関する情報)
274 1秒あたりのリクエスト数(リクエストの受け付け状況に関する情報)
275 平均レスポンスタイム(リクエストの受け付け状況に関する情報)
DESCRIPTION OF SYMBOLS 1 Request processing system 10 (10A, 10B) Server apparatus 20 Client apparatus 30 Network 100 CPU
200 Memory 210 Application Server Processing Program 220 Monitoring Server Processing Program 230 Module Program 240 Web Server Processing Program 250 Monitoring Server Definition File 251 URI (Resource Identifier)
252 Condition 253 Action 260 Module counter table 261 URI
262 Upper limit value 263 Request counter 264 Queue size 265 Queue counter 270 Web server request reception statistical information 271 URI (resource identifier)
272 hours (information about the request acceptance status)
273 Counter (Information about the request acceptance status)
274 Number of requests per second (information about the request acceptance status)
275 Average response time (information about the request acceptance status)

Claims (5)

ネットワークを介してクライアント装置からのリクエストを受け付け、当該リクエストを処理する複数のサーバ装置が、相互通信可能に構成されたシステムにおけるサーバ装置であって、
前記クライアント装置からのリクエストによって指定されるリソースの識別子と、前記リクエストに対する処理の制御が実行されるための条件と、前記制御の処理内容であるアクションと、前記リクエストの受け付け状況に関する情報とを対応させた情報を記憶する記憶部と、
前記リクエストを処理する機能の停止を検知すると、前記リクエストの受け付け状況に関する情報が、当該情報に対応する前記条件を満たす場合に、前記記憶部から前記リソースの識別子および前記アクションを取得し、
取得した前記リソースの識別子および前記アクションを他のサーバ装置に通知する処理部と
を備えることを特徴とするサーバ装置。
A plurality of server devices that accept requests from client devices via a network and process the requests are server devices in a system configured to be capable of mutual communication,
Corresponds to the identifier of the resource specified by the request from the client device, the condition for executing the control of the processing for the request, the action that is the processing content of the control, and the information about the reception status of the request A storage unit for storing the information,
When detecting the stop of the function of processing the request, when the information regarding the reception status of the request satisfies the condition corresponding to the information, the identifier of the resource and the action are acquired from the storage unit,
A server device comprising: a processing unit that notifies the acquired identifier of the resource and the action to another server device.
ネットワークを介してクライアント装置からのリクエストを受け付け、当該リクエストを処理する複数のサーバ装置が、相互通信可能に構成されたシステムにおけるサーバ装置によるリクエスト処理制御方法であって、
前記クライアント装置からのリクエストによって指定されるリソースの識別子と、前記リクエストに対する処理の制御が実行されるための条件と、前記制御の処理内容であるアクションと、前記リクエストの受け付け状況に関する情報とを対応させた情報を記憶する記憶部と、情報を処理する処理部と
を備え、
前記処理部は、
前記リクエストを処理する機能の停止を検知すると、前記リクエストの受け付け状況に関する情報が、当該情報に対応する前記条件を満たす場合に、前記記憶部から前記リソースの識別子および前記アクションを取得し、
取得した前記リソースの識別子および前記アクションを他のサーバ装置に通知する
ことを特徴とするリクエスト処理制御方法。
A request processing control method by a server device in a system in which a plurality of server devices that accept a request from a client device via a network and process the request are configured to be capable of mutual communication,
Corresponds to the identifier of the resource specified by the request from the client device, the condition for executing the control of the processing for the request, the action that is the processing content of the control, and the information about the reception status of the request A storage unit for storing the processed information, and a processing unit for processing the information,
The processor is
When detecting the stop of the function of processing the request, when the information regarding the reception status of the request satisfies the condition corresponding to the information, the identifier of the resource and the action are acquired from the storage unit,
A request processing control method, comprising: notifying another server device of the acquired identifier of the resource and the action.
前記処理部は、
前記リクエストの受け付け状況に関する情報を所定の時間ごとに更新し、
前記リクエストの受け付け状況に関する情報は、
単位時間当たりに受け付けたリクエスト数、単位時間当たりに処理を失敗したリクエスト数および平均レスポンスタイムのうち、すくなくとも1つを含む
ことを特徴とする請求項2に記載のリクエスト処理制御方法。
The processor is
Update the information regarding the acceptance status of the request every predetermined time,
Information about the acceptance status of the request
The request processing control method according to claim 2, comprising at least one of the number of requests accepted per unit time, the number of requests failed in processing per unit time, and the average response time.
前記処理部は、
他のサーバ装置から前記リソースの識別子および前記アクションを受信すると、
前記アクションに従って、前記リソースの識別子を指定するリクエストに対する処理の制御を実行する
ことを特徴とする請求項2または請求項3に記載のリクエスト処理制御方法。
The processor is
When the resource identifier and the action are received from another server device,
4. The request processing control method according to claim 2, wherein control of processing for a request designating an identifier of the resource is executed according to the action. 5.
請求項2ないし請求項4のいずれか1項に記載のリクエスト処理制御方法をコンピュータに実行させるためのリクエスト処理制御プログラム。   A request processing control program for causing a computer to execute the request processing control method according to any one of claims 2 to 4.
JP2006292084A 2006-10-27 2006-10-27 Server device, request processing control method, and program thereof Pending JP2008108163A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006292084A JP2008108163A (en) 2006-10-27 2006-10-27 Server device, request processing control method, and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006292084A JP2008108163A (en) 2006-10-27 2006-10-27 Server device, request processing control method, and program thereof

Publications (1)

Publication Number Publication Date
JP2008108163A true JP2008108163A (en) 2008-05-08

Family

ID=39441449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006292084A Pending JP2008108163A (en) 2006-10-27 2006-10-27 Server device, request processing control method, and program thereof

Country Status (1)

Country Link
JP (1) JP2008108163A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010017765A1 (en) * 2008-08-12 2010-02-18 华为技术有限公司 User reporting method, apparatus and system
JP2017129935A (en) * 2016-01-18 2017-07-27 キヤノン株式会社 Server system, and method and program for controlling server system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010017765A1 (en) * 2008-08-12 2010-02-18 华为技术有限公司 User reporting method, apparatus and system
JP2017129935A (en) * 2016-01-18 2017-07-27 キヤノン株式会社 Server system, and method and program for controlling server system

Similar Documents

Publication Publication Date Title
US8010840B2 (en) Generation of problem tickets for a computer system
CN111176873B (en) Automatic micro-service offline method and device, computer equipment and storage medium
US10127028B2 (en) Cancel and rollback update stack requests
US9594619B2 (en) Robust hardware fault management system, method and framework for enterprise devices
US9720776B2 (en) Server system, method for controlling the same, and program for executing parallel distributed processing
JP2003022258A (en) Backup system for server
CN108200132B (en) Resource acquisition method, device, equipment and computer readable storage medium
CN111343168A (en) Identity authentication method and device, computer equipment and readable storage medium
CN113076112A (en) Database deployment method and device and electronic equipment
CN107025129B (en) Data processing method and device
CN114285844B (en) Method and device for intelligently fusing server interface, electronic equipment and storage medium
JP4796086B2 (en) Cluster system and method for selecting master node in the same system
US20050114867A1 (en) Program reactivation using triggering
CN112055041B (en) information processing system
JP2008108163A (en) Server device, request processing control method, and program thereof
US9648111B2 (en) Communication system and method of controlling the same
JP2003108252A (en) License managing method, license managing server, license managing program, and recording media
CN113542424B (en) Data processing method, device, equipment and readable storage medium
CN107800754B (en) Data transmission task processing method and device, and data transmission task monitoring method and device
US20220276901A1 (en) Batch processing management
CN115296979A (en) Fault processing method, device, equipment and storage medium
KR100683901B1 (en) Monitoring method of an web contents, computer readable medium storing the same, and monitoring system for the performing the same
CN110597682B (en) Application deployment method and device, computer equipment and storage medium
CN114035948A (en) Distributed task scheduling method and system
CN113515403B (en) Micro-service state checking method, computer device and storage medium