JP2009187189A - Stall detection device, stall detection method and stall detection program - Google Patents

Stall detection device, stall detection method and stall detection program Download PDF

Info

Publication number
JP2009187189A
JP2009187189A JP2008025202A JP2008025202A JP2009187189A JP 2009187189 A JP2009187189 A JP 2009187189A JP 2008025202 A JP2008025202 A JP 2008025202A JP 2008025202 A JP2008025202 A JP 2008025202A JP 2009187189 A JP2009187189 A JP 2009187189A
Authority
JP
Japan
Prior art keywords
stall
stack
execution time
stack information
memory
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.)
Granted
Application number
JP2008025202A
Other languages
Japanese (ja)
Other versions
JP4968092B2 (en
Inventor
Hideaki Sasakura
秀昭 笹倉
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008025202A priority Critical patent/JP4968092B2/en
Publication of JP2009187189A publication Critical patent/JP2009187189A/en
Application granted granted Critical
Publication of JP4968092B2 publication Critical patent/JP4968092B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a stall detection device, method and program for quickly detecting a stall after stall occurs, and for quickly restoring a system, and for automatically sampling log capable of specifying a detail failure factor. <P>SOLUTION: The stall detection device for detecting stall which has occurred in an application includes: a stack information recording means for recording the stack information of the application with prescribed stack sampling intervals in a memory; a stall detection means for analyzing the recorded stack information, and for detecting the stall from the user business performance time or stack output frequency of each method; and a log output means to output the stack information recorded in the memory to the log when the stall is detected. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、アプリケーションサーバ等のコンピュータにおいて発生するストールを検出するための技術分野に関する。   The present invention relates to a technical field for detecting a stall occurring in a computer such as an application server.

従来、ストールとみなすユーザ業務実行時間の設定が行われていない場合、ストール障害と判定するためにはログ採取を行い、ログを解析しなければストール障害が発生しているか判断ができなかった。障害が発生してからストールしているかをログ解析し、ストールしている場合は、スタックトレースを採取し、ストールしているプロセスを再起動するという手順が復旧及び障害原因特定のために必要であり、障害発生時から復旧まで時間がかかり、かつ手間のかかる作業であった。また、スタックトレースを採取しないで障害を復旧させた場合、障害原因が特定できず、障害再現待ちにしなければならないこともあった。   Conventionally, when the user job execution time that is regarded as a stall is not set, log collection is performed to determine a stall failure, and it is impossible to determine whether a stall failure has occurred unless the log is analyzed. Analyzing whether a stall has occurred since a failure occurred. If stalled, collect the stack trace and restart the stalled process to recover and identify the cause of the failure. It was a time-consuming and time-consuming work from the time of failure to recovery. Also, when a failure was recovered without collecting the stack trace, the cause of the failure could not be identified and it was necessary to wait for a failure to be reproduced.

一方、ストールとみなすユーザ業務実行時間の設定を行い、その設定時間を超えた場合にアプリケーションサーバがストールと判断してプロセスを自動再起動して復旧などの方法が知られている。例えば、特許文献1には、メソッドの実行時間を算出し、当該実行時間が当該メソッドの最大実行時間を超えると、タイムアウトとし(ストール検出)、スタック情報をログファイルに書き出す技術が開示されている。また、特許文献2には、アプリケーションプログラムの業務処理実行時刻を記憶しておき、一定周期を行われるストール監視動作の際に、ストール監視動作開始時刻を読み込むと共に前記記憶された業務処理実行時刻を読み込み、当該ストール監視動作開始時刻及び業務処理実行時刻間の時間が予め設定されたストール状態判断時間を超過していた場合に、ストール状態と判断する技術が開示されている。また、特許文献3には、テスト段階においてプログラムの実行時間の最大値を求める旨が記載されている。
特開2006−146678号公報 特開2002−7172号公報 特開昭62−256050号公報
On the other hand, a method is known in which a user job execution time that is regarded as a stall is set, and when the set time is exceeded, the application server determines that the stall has occurred and automatically restarts the process to recover. For example, Patent Literature 1 discloses a technique for calculating a method execution time, setting a timeout (stall detection) when the execution time exceeds the maximum execution time of the method, and writing stack information to a log file. . Further, Patent Document 2 stores the business process execution time of the application program, reads the stall monitoring operation start time and performs the stored business process execution time when the stall monitoring operation is performed at a fixed period. A technique for determining a stall state when the time between reading, the stall monitoring operation start time and the business process execution time exceeds a preset stall state determination time is disclosed. Further, Patent Document 3 describes that the maximum value of the program execution time is obtained in the test stage.
JP 2006-146678 A JP 2002-7172 A JP-A-62-256050

しかしながら、従来の技術のように、最大実行時間を超えるとストールと判定する方法では、迅速なストール検出は困難という問題がある。   However, there is a problem that it is difficult to quickly detect a stall in the method of determining a stall when the maximum execution time is exceeded as in the conventional technique.

また、従来の技術では、きめ細かなストール判定を行うことが困難であり、またストールと判定する時間の設定もオペレーションごとの大きめの値を設定しなければならなかったため、ストールを検出するまで時間がかかるという問題がある。例えば、ストール検出時にどのオペレーションでストールが発生したのかを特定することが可能であったが、どのメソッドのソースの何行目でストールしているかなどの詳細な情報がわからなかった。   In addition, with the conventional technology, it is difficult to make a detailed stall determination, and the time for determining the stall must be set to a larger value for each operation. There is a problem that it takes. For example, it was possible to specify which operation caused the stall when the stall was detected, but did not know detailed information such as which line of the source of which method was stalled.

さらに、従来の技術では、ストールとみなす時間を最小の時間に設定することが難しく、ストールとみなして復旧させるまでに時間がかかるという問題がある。   Further, in the conventional technology, it is difficult to set the time considered as a stall to the minimum time, and there is a problem that it takes a long time to restore it as a stall.

本発明は、以上の問題等に鑑みてなされたものであり、ストール発生後、迅速にストールを検出し、迅速にシステムを復旧させ、かつ詳細な障害原因を特定可能なログを自動で採取することが可能なストール検出装置、ストール検出方法、及びストール検出プログラムを提供することを課題とする。   The present invention has been made in view of the above problems and the like, and after a stall occurs, the stall is quickly detected, the system is quickly restored, and a log that can identify the detailed cause of failure is automatically collected. It is an object to provide a stall detection device, a stall detection method, and a stall detection program.

上記課題を解決するため、請求項1に記載の発明は、アプリケーションで発生したストールを検出するストール検出装置であって、アプリケーションのスタック情報を所定のスタック採取間隔でメモリに記録するスタック情報記録手段と、前記記録されたスタック情報を解析し、メソッド毎のユーザ業務実行時間又はスタック出力回数からストールを検出するストール検出手段と、前記ストールが検出された場合、メモリに記録されているスタック情報をログに出力するログ出力手段と、を備えることを特徴とする。   In order to solve the above-mentioned problem, the invention according to claim 1 is a stall detection device for detecting a stall generated in an application, and stack information recording means for recording stack information of an application in a memory at a predetermined stack collection interval. Analyzing the recorded stack information and detecting a stall from the user job execution time or stack output count for each method, and when the stall is detected, the stack information recorded in the memory Log output means for outputting to a log.

請求項2に記載の発明は、請求項1に記載のストール検出装置において、前記ストール検出手段は、メソッド毎のユーザ業務実行時間からストールを検出する場合において、新しいスタックと古いスタックの比較を行い、スタックに変化があるときには、そのスタック情報から得られたメソッドに対してユーザ業務実行時間を計算し、当該ユーザ業務実行時間が、ユーザ業務の平均実行時間の所定値倍以上である場合に前記ストールを検出することを特徴とする。   According to a second aspect of the present invention, in the stall detection device according to the first aspect, the stall detection means compares the new stack with the old stack when detecting the stall from the user job execution time for each method. When there is a change in the stack, the user job execution time is calculated for the method obtained from the stack information. It is characterized by detecting a stall.

請求項3に記載の発明は、請求項1に記載のストール検出装置において、前記ストール検出手段は、スタック出力回数からストールを検出する場合において、スタック情報に変化がない回数が所定回数を超えた場合に前記ストールを検出することを特徴とする。   According to a third aspect of the present invention, in the stall detection device according to the first aspect, when the stall detection means detects a stall from the number of stack outputs, the number of times the stack information has not changed exceeds a predetermined number. In this case, the stall is detected.

請求項4に記載の発明は、アプリケーションで発生したストールを検出するストール検出方法であって、アプリケーションのスタック情報を所定のスタック採取間隔でメモリに記録するステップと、前記記録されたスタック情報を解析し、メソッド毎のユーザ業務実行時間又はスタック出力回数からストールを検出するステップと、前記ストールが検出された場合、メモリに記録されているスタック情報をログに出力するステップと、を備えることを特徴とする。   According to a fourth aspect of the present invention, there is provided a stall detection method for detecting a stall occurring in an application, wherein the stack information of the application is recorded in a memory at a predetermined stack collection interval, and the recorded stack information is analyzed. And a step of detecting a stall from the user job execution time or the number of stack outputs for each method, and a step of outputting the stack information recorded in the memory to the log when the stall is detected. And

請求項5に記載のストール検出プログラムの発明は、アプリケーションで発生したストールを検出するコンピュータを、アプリケーションのスタック情報を所定のスタック採取間隔でメモリに記録するスタック情報記録手段、前記記録されたスタック情報を解析し、メソッド毎のユーザ業務実行時間又はスタック出力回数からストールを検出するストール検出手段、及び、前記ストールが検出された場合、メモリに記録されているスタック情報をログに出力するログ出力手段として機能させることを特徴とする。   According to a fifth aspect of the present invention, there is provided a stack detection recording means for recording a stack information of an application in a memory at a predetermined stack collection interval, a computer for detecting a stall occurring in the application, and the recorded stack information. And detecting a stall from the user job execution time or stack output count for each method, and a log output unit for outputting the stack information recorded in the memory to the log when the stall is detected It is made to function as.

本発明によれば、ユーザが設定や作業を行う事無く、ストール発生後、迅速にストールを検出し、迅速にシステムを復旧させ、かつ詳細な障害原因を特定可能なログを自動で採取することができる。   According to the present invention, after a stall occurs, the user can quickly detect the stall, quickly recover the system, and automatically collect a log that can identify the detailed cause of failure without any setting or operation by the user. Can do.

以下、図面を参照して本発明の最良の実施形態について詳細に説明する。   Hereinafter, the best embodiment of the present invention will be described in detail with reference to the drawings.

本発明は、サーバアプリケーションでストールが発生した場合にユーザが特別な設定をする事無く自動でスタック情報をもとにしてストールを検出する等を特徴としている。   The present invention is characterized in that when a stall occurs in a server application, the stall is automatically detected based on stack information without any special setting by the user.

先ず、図1を参照して、本発明の一実施形態に係るアプリケーションサーバの構成及び機能について説明する。   First, the configuration and function of an application server according to an embodiment of the present invention will be described with reference to FIG.

図1は、アプリケーションサーバの概要構成の一例を示すブロック図である。   FIG. 1 is a block diagram illustrating an example of a schematic configuration of an application server.

図1に示すように、アプリケーションサーバ80は、サーバアプリケーション30と、スタック採取要求用プロセス40と、メモリ50と、ユーザ業務実行時間解析用プロセス60と、ログ70を有している。なお、アプリケーションサーバ80は、例えばサーバコンピュータからなり、これに搭載されているCPUが記憶部に記憶されたプログラム(本発明のストール検出プログラムを含む)を読み出し実行することにより、サーバアプリケーション30、スタック採取要求用プロセス40、及びユーザ業務実行時間解析用プロセス60として機能するようになっている。   As shown in FIG. 1, the application server 80 includes a server application 30, a stack collection request process 40, a memory 50, a user job execution time analysis process 60, and a log 70. Note that the application server 80 is composed of, for example, a server computer, and the CPU mounted on the application server 80 reads out and executes a program (including the stall detection program of the present invention) stored in the storage unit, whereby the server application 30, the stack It functions as a collection request process 40 and a user job execution time analysis process 60.

サーバアプリケーション30は、クライアント10からのリクエストをネットワークを介して受信する機能を有している。   The server application 30 has a function of receiving a request from the client 10 via the network.

スタック採取用プロセス40(本発明におけるスタック情報記録手段の一例)は、オペレータ20からスタック採取間隔(オペレータ20はスタック採取間隔を設定可能)の設定要求を受ける機能を有し、スタック採取要求をサーバアプリケーション30に送信してメモリ50にスタック情報を記録する機能を有している。   The stack collection process 40 (an example of the stack information recording means in the present invention) has a function of receiving a setting request for a stack collection interval (the operator 20 can set the stack collection interval) from the operator 20, and sends the stack collection request to the server. It has a function of sending the application 30 and recording the stack information in the memory 50.

ユーザ業務実行時間解析用プロセス60(本発明におけるストール検出手段及びログ出力手段の一例)は、メモリ50に記録されたスタック情報を取得し、ユーザ業務実行時間を解析してメモリ50に記録する機能を有している。また、ユーザ業務実行時間からストールしていると判定(ストールの検出)した場合はメモリ50に記録されたスタック情報をログ70に出力させる機能を有している。さらに、通常運用時のユーザ業務実行時間を計算してメモリ50の記録を更新する機能や、古いユーザ業務実行時間の情報を削除する機能も有している。   The user job execution time analysis process 60 (an example of a stall detection unit and a log output unit in the present invention) acquires stack information recorded in the memory 50, analyzes the user job execution time, and records it in the memory 50 have. In addition, it has a function of outputting the stack information recorded in the memory 50 to the log 70 when it is determined that the stall has occurred from the user task execution time (stall detection). Further, it has a function of calculating the user job execution time during normal operation and updating the record in the memory 50, and a function of deleting old user job execution time information.

次に、本発明の実施例の動作について、図1を用いて例をあげて説明する。   Next, the operation of the embodiment of the present invention will be described with reference to FIG.

なお、スタック採取要求用プロセス 40 のフローチャートを図2に示し、ユーザ業務実行時間解析用プロセス 60のフローチャートを図3に示し、メモリ50に記録されたスタック情報を図4に示し、メモリ50に記録されたメモリ50に記録された実行時間情報を図5に示し、ストール判定方法の概要を図6に示している。   The flowchart of the stack collection request process 40 is shown in FIG. 2, the flowchart of the user job execution time analysis process 60 is shown in FIG. 3, the stack information recorded in the memory 50 is shown in FIG. The execution time information recorded in the recorded memory 50 is shown in FIG. 5, and an outline of the stall determination method is shown in FIG.

図1において、クライアント10からサーバアプリケーション30へリクエストが送信されると、サーバアプリケーション30ではユーザ業務の実行を行う。   In FIG. 1, when a request is transmitted from the client 10 to the server application 30, the server application 30 executes a user task.

スタック採取要求用プロセス40は、図2に示すように、スタック採取間隔(スタック出力間隔)を取得可能になっており(ステップS1)、オペレータ20が当該スタック採取間隔を設定した場合(ステップS2:YES)、これを取得し当該スタック採取間隔を反映する(ステップS3)。なお、オペレータ20がスタック採取間隔を設定していない場合は、アプリケーションサーバ80で設定された既定値で動作する。   As shown in FIG. 2, the stack collection requesting process 40 can acquire the stack collection interval (stack output interval) (step S1), and the operator 20 sets the stack collection interval (step S2: YES), this is acquired and the stack collection interval is reflected (step S3). When the operator 20 has not set the stack collection interval, the operation is performed with the default value set by the application server 80.

また、図2に示すように、スタック採取要求用プロセス40は、ユーザ業務実行状況を把握するため、正常動作時に、定期的に(設定されたスタック採取間隔で)スタック採取要求をサーバアプリケーション30に送信し、メモリ50にサーバアプリケーション30のスタック情報を記録する(ステップS4〜S5)。スタック情報は、例えば、図4に示すように、スレッド番号毎にスタックを管理し、スタック出力時間とスタックを記録している。   In addition, as shown in FIG. 2, the stack collection request process 40 periodically sends a stack collection request to the server application 30 during normal operation (at a set stack collection interval) to grasp the user job execution status. The stack information of the server application 30 is recorded in the memory 50 (steps S4 to S5). For example, as shown in FIG. 4, the stack information manages the stack for each thread number, and records the stack output time and the stack.

次に、図3に示すように、ユーザ業務実行時間解析用プロセス60は、メモリ50に記録された図4のスタック情報を定期的に取得し(ステップS11)、当該スタック情報を解析し、メソッド毎の実行時間を測定する(ステップS12)。そして、ユーザ業務実行時間解析用プロセス60は、当該測定した実行時間からストールしているか否かを判定する(ステップS13)。ストールの判定方法としては、例えば、ユーザ業務実行時間解析用プロセス60は、図6(1)に示すように、例えば、スレッド毎に最新のスタック(新しいスタック)と過去のスタック(古いスタック)の比較を行い、スタックに変化があればそのスタック情報から得られたメソッドに対してユーザ業務実行時間(例えば、図6(1)に示す(時刻B−時刻A)を計算し、メモリ50に記録する。   Next, as shown in FIG. 3, the user job execution time analysis process 60 periodically acquires the stack information of FIG. 4 recorded in the memory 50 (step S11), analyzes the stack information, Each execution time is measured (step S12). Then, the user job execution time analysis process 60 determines whether or not a stall has occurred from the measured execution time (step S13). As a method for determining a stall, for example, the user job execution time analysis process 60, as shown in FIG. 6 (1), for example, the latest stack (new stack) and the past stack (old stack) for each thread. If the stack is changed, the user task execution time (for example, (time B-time A shown in FIG. 6A) is calculated for the method obtained from the stack information, and is recorded in the memory 50. To do.

一方、スタックに変化がない場合はそのメソッドの実行が継続されているのか、または新規に同じメソッドが実行されているのかが別途測定しているメソッド開始時刻から判断される。メソッドの実行が継続されていると判断された場合、メモリ50のユーザ業務実行時間を暫定で更新しておく。   On the other hand, when there is no change in the stack, it is determined from the method start time that is separately measured whether the execution of the method is continued or the same method is newly executed. When it is determined that the execution of the method is continued, the user task execution time in the memory 50 is provisionally updated.

そして、ユーザ業務実行時間解析用プロセス60は、図6(1)に示すように、ユーザ業務実行時間が平均実行時間を大幅に超えたと実行時間の分散などの統計学的見地から判断した場合(平均実行時間の所定値倍以上である場合の一例)、ストールが発生していると判定(ストールの検出)する(ステップS14:YES)。   Then, as shown in FIG. 6 (1), the user job execution time analysis process 60 determines that the user job execution time has greatly exceeded the average execution time from a statistical point of view such as dispersion of execution time ( An example in which the average execution time is equal to or greater than a predetermined value times), it is determined that a stall has occurred (stall detection) (step S14: YES).

なお、ストール判定は、ユーザ業務実行時間からではなく、図6(2)に示すように、スタック情報を解析しスタック出力回数から行うようにすることも可能である。例えば、スタック情報に変化がない回数からストールの発生が判断される(スタック情報に変化がない回数が所定回数を超えた場合、ストールが発生していると判定(ストールの検出)される)。例えば、図4に示すスタック情報からスタックに変化がない状態が何回続くかわかるため、正常動作時と比較してスタックに変化がない状態がいつまでも続けばストールと判定する。   The stall determination can be performed not from the user job execution time but from the stack output count by analyzing the stack information as shown in FIG. For example, the occurrence of a stall is determined from the number of times the stack information has not changed (when the number of times the stack information has not changed exceeds a predetermined number, it is determined that a stall has occurred (stall detection)). For example, since the stack information shown in FIG. 4 indicates how many times the state in which the stack does not change continues, the stall is determined if the state in which the stack does not change continues indefinitely compared to the normal operation.

そして、ユーザ業務実行時間解析用プロセス60は、ストールと判定、つまり、ストールを検出した場合、メモリ50に記録されているスタック情報をログ70に出力させる(ステップS15)。   When the user job execution time analysis process 60 determines that a stall has occurred, that is, when a stall is detected, the stack information recorded in the memory 50 is output to the log 70 (step S15).

また、例えば、図3に示すように、ユーザ業務実行時間解析用プロセス60は、メモリ50に実行時間が指定回数分記録されたと判断した場合(ステップS16:YES)、平均実行時間を再計算し、メモリ50の記録を更新する(ステップS17)。つまり、ユーザ業務の平均実行時間は、定期的に計算され、メモリ50の平均実行時間が更新される。   Also, for example, as shown in FIG. 3, when the user job execution time analysis process 60 determines that the execution time has been recorded in the memory 50 for the specified number of times (step S16: YES), it recalculates the average execution time. The record in the memory 50 is updated (step S17). That is, the average execution time of the user job is periodically calculated and the average execution time of the memory 50 is updated.

また、ユーザ業務実行時間解析用プロセス60は、過去の実行時間とスタックを削除する(ステップS18)。つまり、メモリ50では最新の一定時間分のスタック情報を記録し、メモリ節約のため古いスタック情報やユーザ業務実行時間はユーザ業務実行時間解析用プロセス60により削除される。   Further, the user job execution time analysis process 60 deletes the past execution time and stack (step S18). That is, the latest stack information for a certain period of time is recorded in the memory 50, and the old stack information and user job execution time are deleted by the user job execution time analysis process 60 in order to save memory.

また、ユーザ業務の平均実行時間を初期化したい場合はオペレータがアプリケーションサーバ80に初期化要求を出し、アプリケーションサーバ80がユーザ業務実行時間監視用プロセス60に初期化命令を出すことにより、ユーザ業務実行時間監視用プロセス60がメモリ50に記録されたユーザ業務の平均実行時間を初期化する。   If the operator wants to initialize the average execution time of the user job, the operator issues an initialization request to the application server 80, and the application server 80 issues an initialization command to the user job execution time monitoring process 60 to execute the user job execution. The time monitoring process 60 initializes the average execution time of user tasks recorded in the memory 50.

そして、ストール発生と判定した時点でアプリケーションサーバ80は、サーバアプリケーション30のストールしているプロセスを自動で再起動し、復旧させる。サーバアプリケーション30のストールしているプロセスが再起動されると、クライアント10にはエラーが返却される。エラーのマイナー番号からクライアント10はサーバアプリケーション30でストールが発生したことを確認できるので、ログ70に出力されたスタックを確認し、ストール箇所を特定する。   When it is determined that a stall has occurred, the application server 80 automatically restarts and restores the stalled process of the server application 30. When the stalled process of the server application 30 is restarted, an error is returned to the client 10. Since the client 10 can confirm that the stall has occurred in the server application 30 from the minor number of the error, the stack output to the log 70 is confirmed to identify the stall location.

なお、クライアントに返却されたエラーからストールしていることが判明した場合、サーバアプリケーションの不具合をログから確認し、ユーザアプリケーションを修正すればよい。   If it is found that the error is stalled from the error returned to the client, the server application can be confirmed from the log and the user application can be corrected.

次に、本発明の他の実施例について図1を用いて説明する。   Next, another embodiment of the present invention will be described with reference to FIG.

上記実施例では、サーバアプリケーション30でストールが発生した場合、メモリ50に記録しているスタック情報をログ70に記録し、クライアント10がログ70を確認する方法としているが、ストールが発生した時点でログ70に出力された情報をクライアント10へ通知することも可能である。   In the above embodiment, when a stall occurs in the server application 30, the stack information recorded in the memory 50 is recorded in the log 70 and the client 10 confirms the log 70. However, when the stall occurs, Information output to the log 70 can be notified to the client 10.

また、上記実施例では、ストール発生時について記述しているが、ストール障害ではなくスローダウン障害が発生した場合にログ70にスローダウン情報を出力し、クライアント10に通知することも可能である。スローダウン障害とはマシン負荷などにより通常のユーザ業務実行時間より時間がかかってしまう障害のことである。これはユーザ業務実行時間解析用プロセス60がユーザ業務実行時間をメソッド単位でメモリ50に記録しているため、実現可能である。   Further, in the above-described embodiment, the case where a stall occurs is described, but it is also possible to output slowdown information to the log 70 and notify the client 10 when a slowdown failure occurs instead of a stall failure. A slowdown failure is a failure that takes longer than normal user task execution time due to machine load or the like. This can be realized because the user job execution time analysis process 60 records the user job execution time in the memory 50 in units of methods.

以上説明したように上記実施形態によれば、ストール発生後、迅速にストールを検出し、迅速にシステムを復旧させ、かつ詳細な障害原因を特定可能なログを自動で採取することができる。   As described above, according to the above-described embodiment, it is possible to automatically collect a log that can quickly detect a stall, quickly restore the system, and identify a detailed cause of failure after the stall has occurred.

ストール判定に関して、ユーザが設定や作業を行う事無く、アプリケーションサーバが自動かつ最小限の時間で行うことができる。つまり、ストールとみなすユーザ業務実行時間の設定が行われていない場合、従来はストールしているかを判断するため、ログ採取を行い、ログからストールしているかを確認するしか方法がなかったが、本実施形態によれば、定期的にユーザアプリケーションのスタック情報をメモリに統計情報として記録しているため、ストールとみなす時間が設定されていなくてもアプリケーションサーバがユーザ業務実行時間からストールを検出し、自動でプロセスを再起動して復旧させることができる。   The stall determination can be performed automatically and in a minimum time by the application server without any setting or operation by the user. In other words, if the user job execution time that is considered to be a stall has not been set, conventionally there was only a way to check whether it was stalled from the log in order to determine whether it was stalled, According to the present embodiment, since the stack information of the user application is periodically recorded as statistical information in the memory, the application server detects the stall from the user job execution time even if the time for considering the stall is not set. The process can be automatically restarted and recovered.

また、上記実施形態によれば、正常運用時のスタックをメモリに記録し、ユーザ業務実行時間をメソッド単位で記録しているため、ストールが発生した場合はどのオペレーションのどのロジックでストールしているかをアプリケーションサーバが瞬時に判断可能である。ストール判定のためのログ採取の必要がなくなり、迅速にストール障害を復旧することができる。   In addition, according to the above embodiment, the stack during normal operation is recorded in the memory, and the user job execution time is recorded in units of methods. Therefore, when a stall occurs, which logic of which operation is stalled Can be instantly determined by the application server. There is no need to collect logs for stall determination, and a stall failure can be recovered quickly.

また、上記実施形態によれば、ストールが発生した場合に自動でスタックトレースを採取し、ストール箇所をソースの行レベルで確認することができる。従来はストールが発生していることを確認後に、ユーザが手動でスタックトレースを採取するなどしないと詳細な情報を得ることができなかったが、上記実施形態では、ストール発生時に自動でスタックをログに出力するためユーザが設定や作業を行う必要がなく手間がかからない。さらに、ストール検出時にユーザアプリケーションのスタック情報をログに出力するため、どのメソッドのソースの何行目でストールしているかがなど、詳細な情報が取得できる。   Further, according to the above-described embodiment, when a stall occurs, a stack trace is automatically collected, and the stall location can be confirmed at the source line level. Conventionally, after confirming that a stall has occurred, detailed information could not be obtained unless the user manually collected a stack trace. However, in the above embodiment, the stack is automatically logged when a stall occurs. The user does not need to perform setting and work because it is output to, and it does not take time. Furthermore, since the stack information of the user application is output to the log when a stall is detected, it is possible to acquire detailed information such as which line of the source of which method is stalled.

また、ストール判定をスタック情報から行うため、ユーザ業務実行時間をメソッド単位で測定することが可能であり、従来と比べて細かい単位でストール判定が可能である。これによりストールとみなす時間をメソッド単位で設定することができ、ストール発生後迅速に復旧できる。   Further, since the stall determination is performed from the stack information, the user job execution time can be measured in units of methods, and the stall determination can be performed in a smaller unit than in the past. As a result, the time to be regarded as a stall can be set for each method, and can be quickly recovered after a stall occurs.

また、スタックトレースを採取する前にストール障害を復旧し、障害原因が特定できなくなることも無くなる。   In addition, it is possible to recover from a stall failure before collecting the stack trace and not to identify the cause of the failure.

なお、本発明はアプリケーションサーバでJava(登録商標)アプリケーションを使用している場合を想定して記述しているが、スタック情報が採取可能なあらゆるシステムで実装することが可能である。   Although the present invention is described assuming that a Java (registered trademark) application is used in the application server, it can be implemented in any system capable of collecting stack information.

アプリケーションサーバの概要構成の一例を示すブロック図である。It is a block diagram which shows an example of schematic structure of an application server. スタック採取要求用プロセス 40 のフローチャートを示す図である。FIG. 10 is a flowchart of a stack collection request process 40. ユーザ業務実行時間解析用プロセス 60のフローチャートを示す図である。FIG. 6 is a flowchart of a user job execution time analysis process 60. メモリ50に記録されたスタック情報を示す図である。4 is a diagram showing stack information recorded in a memory 50. FIG. メモリ50に記録されたメモリ50に記録された実行時間情報を示す図である。4 is a diagram showing execution time information recorded in the memory 50 recorded in the memory 50. FIG. ストール判定方法の概要を示す図である。It is a figure which shows the outline | summary of a stall determination method.

符号の説明Explanation of symbols

80 アプリケーションサーバ
30 サーバアプリケーション
40 スタック採取要求用プロセス
50 メモリ
60 ユーザ業務実行時間解析用プロセス
70 ログ
80 Application server
30 server applications
40 Stack collection request process
50 memory
60 User job execution time analysis process
70 logs

Claims (5)

アプリケーションで発生したストールを検出するストール検出装置であって、
アプリケーションのスタック情報を所定のスタック採取間隔でメモリに記録するスタック情報記録手段と、
前記記録されたスタック情報を解析し、メソッド毎のユーザ業務実行時間又はスタック出力回数からストールを検出するストール検出手段と、
前記ストールが検出された場合、メモリに記録されているスタック情報をログに出力するログ出力手段と、
を備えることを特徴とするストール検出装置。
A stall detection device for detecting a stall occurring in an application,
Stack information recording means for recording application stack information in a memory at a predetermined stack collection interval;
Analyzing the recorded stack information and detecting a stall from the user job execution time or stack output count for each method;
Log output means for outputting the stack information recorded in the memory to a log when the stall is detected;
A stall detection device comprising:
前記ストール検出手段は、メソッド毎のユーザ業務実行時間からストールを検出する場合において、新しいスタックと古いスタックの比較を行い、スタックに変化があるときには、そのスタック情報から得られたメソッドに対してユーザ業務実行時間を計算し、当該ユーザ業務実行時間が、ユーザ業務の平均実行時間の所定値倍以上である場合に前記ストールを検出することを特徴とする請求項1に記載のストール検出装置。 The stall detection means compares a new stack with an old stack when detecting a stall from the user job execution time for each method. When there is a change in the stack, the stall detection means performs a user operation on the method obtained from the stack information. 2. The stall detection device according to claim 1, wherein a business execution time is calculated, and the stall is detected when the user business execution time is equal to or greater than a predetermined value times the average execution time of the user business. 前記ストール検出手段は、スタック出力回数からストールを検出する場合において、スタック情報に変化がない回数が所定回数を超えた場合に前記ストールを検出することを特徴とする請求項1に記載のストール検出装置。 2. The stall detection according to claim 1, wherein, when detecting the stall from the stack output count, the stall detection unit detects the stall when the number of times the stack information does not change exceeds a predetermined count. apparatus. アプリケーションで発生したストールを検出するストール検出方法であって、
アプリケーションのスタック情報を所定のスタック採取間隔でメモリに記録するステップと、
前記記録されたスタック情報を解析し、メソッド毎のユーザ業務実行時間又はスタック出力回数からストールを検出するステップと、
前記ストールが検出された場合、メモリに記録されているスタック情報をログに出力するステップと、
を備えることを特徴とするストール検出方法。
A stall detection method for detecting a stall occurring in an application,
Recording the stack information of the application in memory at a predetermined stack collection interval;
Analyzing the recorded stack information and detecting a stall from the user job execution time or stack output count for each method;
If the stall is detected, outputting the stack information recorded in the memory to a log;
A stall detection method comprising:
アプリケーションで発生したストールを検出するコンピュータを、
アプリケーションのスタック情報を所定のスタック採取間隔でメモリに記録するスタック情報記録手段、
前記記録されたスタック情報を解析し、メソッド毎のユーザ業務実行時間又はスタック出力回数からストールを検出するストール検出手段、及び、
前記ストールが検出された場合、メモリに記録されているスタック情報をログに出力するログ出力手段として機能させることを特徴とするストール検出プログラム。
A computer that detects stalls that occur in the application,
Stack information recording means for recording application stack information in a memory at a predetermined stack collection interval;
Analyzing the recorded stack information, and detecting a stall from the user job execution time or stack output count for each method; and
A stall detection program that functions as a log output unit that outputs stack information recorded in a memory to a log when the stall is detected.
JP2008025202A 2008-02-05 2008-02-05 Stall detection device, stall detection method, and stall detection program Expired - Fee Related JP4968092B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008025202A JP4968092B2 (en) 2008-02-05 2008-02-05 Stall detection device, stall detection method, and stall detection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008025202A JP4968092B2 (en) 2008-02-05 2008-02-05 Stall detection device, stall detection method, and stall detection program

Publications (2)

Publication Number Publication Date
JP2009187189A true JP2009187189A (en) 2009-08-20
JP4968092B2 JP4968092B2 (en) 2012-07-04

Family

ID=41070376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008025202A Expired - Fee Related JP4968092B2 (en) 2008-02-05 2008-02-05 Stall detection device, stall detection method, and stall detection program

Country Status (1)

Country Link
JP (1) JP4968092B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014052939A (en) * 2012-09-10 2014-03-20 Nec Corp Application execution device, method ad program
JP7433173B2 (en) 2020-09-11 2024-02-19 三菱電機株式会社 supervisory control system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245443A (en) * 1986-04-18 1987-10-26 Mitsubishi Electric Corp Measuring method for execution time of program
JPS6341955A (en) * 1986-08-08 1988-02-23 Nec Corp Executing time tracing system
JPH01180647A (en) * 1988-01-12 1989-07-18 Hitachi Ltd Debugging device
JPH05108418A (en) * 1991-10-21 1993-04-30 Toshiba Corp Detection system for program abnormality
JPH05197593A (en) * 1992-01-22 1993-08-06 Nec Corp Loop/stall monitor device for application program
JPH0816430A (en) * 1994-06-27 1996-01-19 Mitsubishi Electric Corp Parallel program tracing device
JPH08263325A (en) * 1995-03-20 1996-10-11 Fujitsu Ltd Server processor and intra-server fault detection device and method
JP2002007172A (en) * 2000-06-16 2002-01-11 Nec Software Shikoku Ltd Stall monitoring device, stall monitoring method and recording medium recorded with stall monitor program
JP2003288237A (en) * 2002-03-27 2003-10-10 Hitachi Ltd Device and method for measuring execution time in controller

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245443A (en) * 1986-04-18 1987-10-26 Mitsubishi Electric Corp Measuring method for execution time of program
JPS6341955A (en) * 1986-08-08 1988-02-23 Nec Corp Executing time tracing system
JPH01180647A (en) * 1988-01-12 1989-07-18 Hitachi Ltd Debugging device
JPH05108418A (en) * 1991-10-21 1993-04-30 Toshiba Corp Detection system for program abnormality
JPH05197593A (en) * 1992-01-22 1993-08-06 Nec Corp Loop/stall monitor device for application program
JPH0816430A (en) * 1994-06-27 1996-01-19 Mitsubishi Electric Corp Parallel program tracing device
JPH08263325A (en) * 1995-03-20 1996-10-11 Fujitsu Ltd Server processor and intra-server fault detection device and method
JP2002007172A (en) * 2000-06-16 2002-01-11 Nec Software Shikoku Ltd Stall monitoring device, stall monitoring method and recording medium recorded with stall monitor program
JP2003288237A (en) * 2002-03-27 2003-10-10 Hitachi Ltd Device and method for measuring execution time in controller

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014052939A (en) * 2012-09-10 2014-03-20 Nec Corp Application execution device, method ad program
JP7433173B2 (en) 2020-09-11 2024-02-19 三菱電機株式会社 supervisory control system

Also Published As

Publication number Publication date
JP4968092B2 (en) 2012-07-04

Similar Documents

Publication Publication Date Title
JP6333410B2 (en) Fault processing method, related apparatus, and computer
JP4458493B2 (en) Log notification condition definition support apparatus, log monitoring system, program, and log notification condition definition support method
CN100432949C (en) Method and device for storing user data on computer when software crashing
JP5686020B2 (en) Monitoring system
JP4466615B2 (en) Operation management system, monitoring device, monitored device, operation management method and program
WO2017148271A1 (en) Linux system reset processing method and device, and computer storage medium
JP2008090504A (en) Computer maintenance support system and analysis server
JP2011145824A (en) Information processing apparatus, fault analysis method, and fault analysis program
JP5623557B2 (en) Method, apparatus, and computer program in a multi-threaded computing environment for collecting diagnostic data
JP6238221B2 (en) Apparatus, method and program for monitoring execution of software
JP4968092B2 (en) Stall detection device, stall detection method, and stall detection program
JP5503177B2 (en) Fault information collection device
JP6880961B2 (en) Information processing device and log recording method
JP2014225179A (en) Log acquisition device, log acquisition method, and log acquisition program
JP6216621B2 (en) Plant monitoring and control system
JP2010066801A (en) Log recording system, module monitoring means, trace log managing means, recording method, program, and storage medium
CN112948156A (en) Memory exhaustion diagnosis method, device, system and storage medium
JP4575020B2 (en) Failure analysis device
JP4795388B2 (en) Electronic computer apparatus and data storage method when detecting software processing delay
JP6476978B2 (en) Log information collection program, log information collection device, and log information collection method
JP5467936B2 (en) Fault monitoring apparatus, method and program for distributed / parallel processing system
JP4627275B2 (en) Monitoring program, monitoring method, and monitoring apparatus
JP2018022402A (en) Information processor, information processing system, control method of information processor and control program information processor
JP4021874B2 (en) Fault management device
JP5417893B2 (en) Monitoring target device, monitoring target control method, monitoring target device program, and recording medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111027

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120213

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120217

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: 20120306

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: 20120319

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

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