JP2007241426A - アプリケーションの障害原因の特定作業支援システム - Google Patents
アプリケーションの障害原因の特定作業支援システム Download PDFInfo
- Publication number
- JP2007241426A JP2007241426A JP2006059682A JP2006059682A JP2007241426A JP 2007241426 A JP2007241426 A JP 2007241426A JP 2006059682 A JP2006059682 A JP 2006059682A JP 2006059682 A JP2006059682 A JP 2006059682A JP 2007241426 A JP2007241426 A JP 2007241426A
- Authority
- JP
- Japan
- Prior art keywords
- log data
- log
- comparison
- data
- 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.)
- Granted
Links
Images
Abstract
【解決手段】 対象となるアプリケーションに追跡ログを出力するための処理を実装し、エラー発生時にアプリケーションが出力した追跡ログをログ分析手段で読み込み、そのエラーが発生するに至った処理経路を示すログと、同様の処理経路を示しているエラー発生時点以前のログとを比較し、呼び出し関係が異なる処理部分を抽出して出力する。
【選択図】 図1
Description
アプリケーションの障害の原因を突き止めるための効果的な手段の1つとして、アプリケーションにログを出力する処理を実装する方法がある。この方法によれば、アプリケーション管理者は、アプリケーションが出力するログを監視することでアプリケーションに障害が発生したことを検知できる。また、ログには障害の直接の原因となった処理を行っている箇所(ソースコードの行番号)の情報が記録されているため、アプリケーション管理者はログを確認し、ログとアプリケーションのソースコードを比較することで、ソースコード中から障害の直接の原因箇所を突き止めることが可能となる。
特許文献1では、保守用端末が計算機から受け取ったメッセージのログと、保守用端末が計算機へ送信したメッセージのログがあり、一方のログを閲覧する際、もう一方のログも同時に表示し、さらに一方のログに含まれる時刻情報から、近い時間帯に出力されたもう一方のログのメッセージを追従して表示している。同時間帯に出力された複数のログ同士の関係を即座に把握することができるため、障害追跡の支援に有効である。
すなわち、多くのアプリケーションでは、障害の直接の原因となった処理を行っている一箇所のみを修正するだけで障害が解決するようなケースは稀である。障害の直接の原因となった処理を行っている箇所以外に、その障害の根本的な原因となる処理を行っている箇所が別に存在し、その部分を修正して初めて障害が完全に解決する、といったケースが多々見られる。
上述のツールでは、障害発生を示すログと、そのログが出力される直前のログを見ることで、根本的な原因を大まかに突き止めることは可能であるが、これは比較的困難な作業である。また、特許文献1においても、この問題は解決できていない。
前記ログ分析手段が、
前記処理単位毎のログデータから前記アプリケーションを構成する各処理単位の呼び出し関係を示すコールフローグラフを作成し、コールフローグラフ記憶手段に記憶させるコールフローグラフ作成手段と、前記コールフローグラフ作成手段が作成したコールフローグラフを表示し、当該コールフローグラフ中において前記アプリケーションの障害原因の一要因となる処理単位のログデータを比較元ログデータとしてユーザ選択操作によって受け付けるコールフローグラフ表示手段と、ユーザ操作によって選択された比較元ログデータの処理単位と同一処理単位を含む他の処理単位群のログデータを前記コールフローグラフ記憶手段から取得し、当該他の処理単位群のログデータを比較先ログデータリストとして生成する比較ログデータリスト生成手段と、前記比較元ログデータと前記比較先ログデータリスト内の各ログデータとを比較し、処理単位の呼び出し関係が異なるログデータを抽出して出力するログデータ比較手段とを備えることを特徴とする。
また、前記アプリケーションが処理単位毎に出力したログデータには当該処理単位のソースコード中の行番号を含み、前記ログデータ比較手段は前記比較元ログデータと前記比較先ログデータリスト内の各ログデータとの比較により、処理単位の呼び出し関係が異なるログデータを抽出すると共に、同一処理が異なるソースコード行に存在することを抽出して出力することを特徴とする。
また、前記対象となるアプリケーションのソースコードを記憶したソースコード記憶手段と、前記ログデータ比較手段が出力した処理単位の呼び出し関係が異なるログデータ及び同一処理が異なるソースコード行に存在する処理単位のログデータの行番号により、前記ソースコード記憶手段から該当する行のソースコードを取得し、表示画面に予め設定した表示形式で強調表示出力する出力手段をさらに備えることを特徴とする。
(1)アプリケーションに障害が発生した場合、アプリケーションが出力するログを分析することで、障害の根本的な原因を突き止める作業を容易なものにし、作業の負担を大幅に軽減することができる。
図1は、本発明に係るアプリケーションの障害原因の特定作業支援システムの全体構成図である。
本実施形態のシステムは、障害原因の特定対象となるアプリケーション(101)にログ出力処理を実装し、ログ出力処理実装済みアプリケーション(103)を作成するログ出力処理実装装置(102)と、対象アプリケーション(101)が出力したログファイルを格納するログファイル格納部(104)と、ログファイル格納部(104)に格納されているログを読み込み、分析し、対象アプリケーション(101)の障害の根本的な原因箇所を特定するためのログ分析装置(105)と、対象アプリケーション(101)のソースコードを格納した対象アプリケーションソースコード格納部(118)とから構成される。
また、ログ分析装置(105)は具体的にはコンピュータで構成され、各要素のうち記憶部以外の要素は、コンピュータプログラムによって構成されるものである。
本実施形態では、例えばバイトコード操作ライブラリであるJavassistを使用し、追跡ログ出力処理の実装を行っている。これにより、対象アプリケーション(101)を構成するクラスのソースコードには一切変更を加えることなく、追跡ログ出力処理を実装することが可能となる。
ログ出力処理実装装置(102)は、ソースコード上の全ての行に対応する処理の直前に、追跡ログ出力処理を実装する(ただし、空行、コメント行や、クラスの動作とは直接対応しない行に対しては、同処理は実装されない)。例えば、図2のSampleクラスに追跡ログ出力処理を実装した場合は、ソースコード上の2,3,5,6,7,9行目に対応する処理の直前に追跡ログ出力処理が実装される。4,8行目はクラスの動作には直接対応していない行であり、追跡ログ出力処理は実装されない。
追跡ログファイルは各項目がカンマで区切られたテキストファイルであり、追跡ログファイル中の1行が、1件の追跡ログに対応する。
スレッドID(301)には、この追跡ログの出力処理が実行されたスレッドの識別子(スレッドID)が出力される。スレッドさえ識別できれば、この項目はどのような形式であってもよい。本実施形態では3桁の整数値をスレッドIDとして使用している。
ファイル名(302)は、この追跡ログ出力処理が実装されたクラスに紐づくソースコードのファイル名が出力される。
同様に、行番号(303)には、この追跡ログ出力処理が実装されたソースコード上の行番号が出力される。
分類(304)は、この追跡ログの出力処理が設定された箇所の種類を示す文字列が出力される。この追跡ログがメソッドの開始時に出力されるよう実装されていれば、“ENTRY”、メソッドの終了時に出力されるよう実装されていれば“EXIT”、例外オブジェクトのキャッチ時に出力されるよう実装されていれば、“CATCH”が出力され、それら以外は“-”が出力される。
クラス名(305)、メソッド名(306)は、この追跡ログの出力処理が実装されたクラス名とメソッド名を示す。
最後に、エラー情報(307)は、分類(304)が“CATCH”の時にだけ出力される項目であり、キャッチした例外オブジェクトのエラー情報(エラーメッセージやスタックトレース情報)を出力する。このフォーマットにしたがって出力された追跡ログは、図2の(202)に示すようなものとなる。
ログ読み込み部(106)は、出力された追跡ログ(202)を1行ずつ読み込み、各項目をカンマごとに区切り、各項目の値を抽出し、それらの値からログデータ(401)を生成し、ログデータ記憶部(107)に格納する。
ログデータ(401)は、追跡ログ(202)と同じようなデータをもつデータ構造であり、スレッドID、ファイル名、行番号、分類、クラス名、メソッド名、エラー情報をデータとして保持する。
上記のログ読み込み処理を繰り返し、全ての追跡ログ(202)をログデータとしてログデータ記憶部(107)に格納する。
分類済みログデータのデータ構造は、図6に示すように、スレッドID(601)と、ログデータのリスト(602)を保持する。
例えば、図5では分類済みログデータ(501)は、“スレッドID”として“001”を保持しており、そのログデータのリストには、ログデータ記憶部(107)に格納されているログデータのうち、“スレッドID”データが“001”であるもののみを格納している。
コールグラフデータ(702)はツリー構造のデータであり、ツリーの頂点に「ルート」オブジェクト(7021)があり、その子要素として「スレッド」オブジェクト(7022)が複数結合している。さらに、「スレッド」オブジェクト(7022)の子要素としてログデータ(7023)が複数結合している)。
ログデータ同士の間にも、メソッドを呼び出した側/呼び出された側の関係に対応したツリーの親子関係が存在する。生成したコールグラフデータ(702)は、コールグラフデータ記憶部(111)に格納される。
「ルート」オブジェクト(7021)は内部にデータを持たないオブジェクトであり、「スレッド」オブジェクト(7022)はスレッドID(70221)を保持するオブジェクトである。
まず、コールグラフデータ構築部(110)は「ルート」オブジェクトを1つ作成する(ステップ901)。
次に、分類済みログデータ記憶部(109)から分類済みログデータ(701)を1件取得する(ステップ902)。
次に、取得した分類済みログデータ(702)が保持する“スレッドID”を取得し、その値を使用して「スレッド」オブジェクトを作成し、ステップ901で作成した「ルート」オブジェクトの子要素として設定する(ステップ903)。
次に、一時変数“直前の要素”にステップ903で作成した「スレッド」オブジェクトを設定する(ステップ904)。これはコールグラフデータのツリー構造を構築するために使用する一時的な変数である。
次に、ステップ902で取得した分類済みログデータ(701)が保持するログデータを1件取得する(ステップ905)。
次に、取得したログデータ(701)の“分類”の値を取得し、この値を評価する(ステップ906)。
“分類”が“EXIT”である場合は、ステップ905で取得したログデータを、一時変数“親要素”に設定されている要素の子要素として設定する(ステップ908)。そして、一時変数“親要素”に、一時変数“親要素”に設定されている要素の親要素を設定する(ステップ909)。
“分類”が“EXIT”“ENTRY”以外である場合は、ステップ905で取得したログデータを、一時変数“親要素”に設定されている要素の子要素として設定する(ステップ910)。
以上の処理が完成したならば、次に、一時変数“直前の要素”に、ステップ905で取得したログデータを設定する(ステップ911)。
以上、ステップ902で取得した分類済みログデータ(701)が保持する全てのログデータに関して、ステップ905からステップ911までの処理を繰り返し行う(ステップ912)。
また、分類済みログデータ記憶部(109)に記憶されている全ての分類済みログデータ(701)に関して、ステップ902からステップ912までの処理を繰り返し行う(ステップ913)。
以上で、コールグラフデータの構築処理は完了である。
コールグラフデータはツリー構造をもつデータであるため、コールグラフ表示装置(112)はツリー構造をそのままツリー形式で表示している。
図10では、はじめに「スレッド[001]」(1002)、「スレッド[002](1003)、「スレッド[003](1004)のノードが表示されており、そのうち「スレッド[001]」(1002)のツリーノードを展開すると、スレッドIDが001であるスレッド上で実行された処理に関する全てのログ(1005)が表示される。
このツリーを見れば、アプリケーションの実行経路を用意に把握することができ、また、メソッドの呼び出し関係がツリー構造で表現されているため、例えば、あるメソッドが、どのメソッドから呼び出されたものであるか、などといった関係を容易に把握することができる。
コールグラフ表示装置(112)は、ログデータの“分類”データの値が“CATCH”であるものは、コールグラフを表示する際に、そのログデータにエラーが発生したことを示すマーク(1101)を表示する。
このように表示することにより、多数の追跡ログの中からエラーの発生を示すログを探し易くなる。この場合、エラーが発生したことを示すマーク(1101)はログデータ「Sample.run(String):21」(1103)に表示されているため、当該Sampleクラス(1103)のソースコード(1104)上の21行目(1105)で例外オブジェクトをキャッチしていることがわかり、このログデータの1つ前のログデータ「Sample.run(String):20」(1102)を参照すると、Sampleクラス(1103)のソースコード(1104)上の20行目(1106)に記述されている処理の実行中にエラーが発生したことが推測できる。
次に、一時変数“対象データ”に選択されたログデータを設定する(ステップ1302)。
次に、一時変数“対象データ”に設定されているデータが「スレッド」オブジェクトであるかどうかを評価する(ステップ1303)。
「スレッド」オブジェクトでない場合は、一時変数“対象データ”に設定されているログデータを、対象ログデータリストに追加する(ステップ1304)。対象ログデータリストはリスト構造をもつ一時データである。
次に、一時変数“対象データ”に、“対象データ”に設定されているデータの親要素のデータを設定する(ステップ1305)。そして、一時変数“対象データ”に設定されているデータが「スレッド」オブジェクトになるまで、ステップ1303からステップ1305の処理を繰り返し、ステップ1303の判定処理において、対象データが「スレッド」オブジェクトであると評価された場合は、対象ログデータリストに格納されたログデータを、「比較範囲設定」ダイアログ上にツリー形式で表示する(ステップ1306)。
すると、「比較範囲設定」ダイアログ(1401)が図14のように表示される。
このダイアログ(1401)では、図12のコールグラフでユーザが選択指定したエラーログが出力されるまでに、どのようなメソッドの呼び出し経路を辿ったかを示している。
例えば、図14の例では、まずSampleクラスのmain(String[])メソッド内の処理中(ソースコードの300行目に記述されている処理)でservice()メソッドが呼び出され、呼び出されたservice()メソッドはさらにメソッド内の処理中(ソースコードの250行目に記述されている処理)で、action()メソッドを呼び出し、さらにaction()メソッドの処理中(ソースコードの16行目に記述されている処理)で、run(String)メソッドを呼び出し、run(String)メソッド内の処理(ソースコードの21行目に記述されている処理)で、例外が発生したことを示している。
この状態で「比較開始」ボタン(1406)を押す操作を行う。
すると、比較ログデータリスト生成部(114)は、図15のフロ−チャ−トに示す処理を行い、比較先ログデータリストを作成する。
次に、取得した比較範囲データ(1601)から、葉のデータ(つまりツリー構造のデータの末端に存在するデータ)を取得する(ステップ1502)。図16の例では、ログデータ(1604)が、葉のデータに該当する。
次に、コールグラフデータ記憶部(111)からコールグラフデータを1件ずつ取得する(ステップ1503)。
次に、取得したコールグラフデータが保持するログデータを1件ずつ取得する(ステップ1504)。
次に、ステップ1504で取得したログデータの“分類”データが“ENTRY”であり、かつ“クラス名”“メソッド名”データが、ステップ1502で取得した葉データの“クラス名”“メソッド名”データと一致するかどうか、評価する(ステップ1505)。
ステップ1505の評価結果が“真”であれば、次にステップ1504で取得したログデータの親ノードの構造と、ステップ1502で取得した葉データの親ノードの構造が一致しているかどうかを評価する(ステップ1506)。
一致している場合は、一致している部分の最上位の親ノードが示すメソッドの、開始時を示すログデータから、ステップ1504で取得したログデータが示すメソッドの終了時を示すログデータまでの一連のログデータ(一致ログデータ)を、一致ログデータリストに追加する(ステップ1507)。
なお、一致ログデータリストとは、一致ログデータを格納するリストである。
例えば、図16では、(1601)に示す比較範囲データがある。これは、(行番号=“40”、分類=”-“、クラス名=“C”、メソッド名=“c()”」というデータを持つ葉ログデータ(1604)があり、その親ノードとして(行番号=“30”、種別=”-“、クラス名=“B”、メソッド名=“b()”」というデータをもつログデータ(1603)が存在し、さらにその親ノードとして、(行番号=“20”、種別=”-“、クラス名=“A”、メソッド名=“a()”」というデータをもつログデータ(1602)が存在する、という構造を持つ比較範囲データである。
ログデータ(1701)の親ノードを見てみると、その親ノードは、(行番号=“30”、分類=”-“、クラス名=“B”、メソッド名=“b()”」というデータをもつログデータ(1702)であり、さらにその親ノードは(行番号=“20”、分類=”-“、クラス名=“A”、メソッド名=“a()”」というデータを持つログデータ(1703)であるため、比較範囲データの葉ノード(1604)と、ログデータ(1701)の親ノードの構造は一致しているといえる。
これにより、(1707)が示す範囲の一連のログデータが一致ログデータとして抽出される。この一致ログデータは、一致ログデータリストに格納される。
コールグラフデータ記憶部(111)が保持する全てのコールグラフデータを取得し、さらにそのコールグラフデータが保持する全てのログデータに関して、ステップ1503からステップ1509までの処理を繰り返し、全て完了したら、比較先ログデータリストの作成に関する処理は全て終了である。
そのため、図15に示す処理の完了後に、一致ログデータリストから、比較元の一連のログデータを分離する必要がある。この処理は、一致ログデータリストに格納されている一致ログデータの中から、比較範囲データが保持する各ログデータを構成要素としている一致ログデータを探し出すことにより実現できる。
以降、一致ログデータリスト(1812)から取り出した一致ログデータ(1813)を、“比較元ログデータ”(1814)、そして比較元ログデータを取り除いた状態の一致ログデータリストを“比較先ログデータリスト”(1815)と称する。
比較処理部(115)は、diffプログラムと同等機能のプログラムである。diffプログラムとは2つのデータの相違点を取得するためのプログラムであり、有名なものとしてはUNIX(登録商標)のdiffコマンドなどが挙げられる。diffプログラムは通常2つのテキストファイルに対し、それぞれの各行の文字列を比較の対象とし、その相違を取得するが、比較処理部(115)は比較元ログデータ(1903)と比較先ログデータリスト(1904)に格納されるログデータのデータの相違を取得する。なお、diffプログラムの比較アルゴリズムに関しては、公知の技術であるため説明を省略する。
図20では、比較処理部(115)が、比較元ログデータ(1903)のログデータ(2003)と、比較先ログデータ(1)(2002)のログデータ(2004)とが“衝突”していることを検知している様子を示している。“衝突”とは、同様の行に存在するデータが異なっている状態を示す。この例では比較元のログデータ(2003)の行番号データは“8”であるのに対し、比較先のログデータ(2004)の行番号データは“10”であるため、衝突が発生している。この場合、比較処理部(115)、比較情報データ(2006)を作成し、比較情報データリスト(2005)に追加する。比較情報データリスト(2005)は、ログデータを比較した結果に関する情報を格納するためのデータリストであり、“相違の種類”(2007)、“比較元の相違開始インデックス”(2008)、“比較元の相違終了インデックス”(2009)、“比較先の相違開始インデックス”(2010)、“比較先の相違終了インデックス”(2011)というデータを保持する。
“比較元の相違開始インデックス”、“比較元の相違終了インデックス”、“比較先の相違開始インデックス”、“比較先の相違終了インデックス”データには、相違箇所を特定するためのインデックス情報が格納される。なお、比較元ログデータ、比較先ログデータはリスト構造を持ったデータであり、要素の位置を示すためのインデックス情報を持っている。
図20の場合は、“相違の種類”データ(2007)には“衝突”を格納し、また比較元ログデータのインデックス2〜3の間のログデータと、比較先ログデータのインデックス2〜3の間のログデータに関して衝突が発生しているため、“比較元の相違開始インデックス”(2008)には“2”を、“比較元の相違終了インデックス”(2009)には“3”を、“比較先の相違開始インデックス”(2010)には“2”を、“比較先の相違終了インデックス”(2011)には“3”を格納している。
“挿入”とは、ある箇所において、比較元ログデータ(1903)には存在せず、比較先のログデータ(1)(2002)には存在するログデータがある状態を示す。
図21の例では、比較元ログデータ(1903)の(2101)の位置(インデックス5の位置)にはログデータは存在しないが、比較先ログデータ(2002)の同じ位置には(2102)に示すログデータが存在するため、挿入が発生していることがわかる。このような場合、比較処理部(115)は比較情報データ(2103)を、比較情報データリスト(2005)に追加する。
“削除”とは、ある箇所において、比較元ログデータ(1903)には存在しているが、比較先のログデータ(2002)には存在しないログデータがある状態を示す。
図22の例では、比較元ログデータ(1903)の(2201)の位置(インデックス8〜10の間)には存在するが、比較先ログデータ(2002)の(2202)の位置(インデックス9の位置)には存在しないログデータがあるため、削除が発生していることがわかる。このような場合、比較処理部(115)は比較情報データ(2203)を比較情報データリスト(2005)に追加する。
比較処理部(115)は、上記と同様の手順で全ての比較先ログデータ(1904)と、比較元ログデータ(1903)に関して比較処理を行い、それぞれの比較先ログデータに対応する比較情報データ(2303)を作成する。そして、図23に示すように、比較情報データ(2303)はフラット化前の比較先ログデータ(1815)と紐付け、フラット化前の比較元ログデータ(1814)と共に比較結果記憶部(115M)に保存する。
比較元ログデータと、比較先データリスト、そしてそれに紐づく比較情報データ、それぞれが作成できたならば、最後にこれらのデータをログ比較結果表示装置(116)に渡し、ディスプレイ(117)に表示する。
タブ(2404)を切り替えることにより、それぞれの比較先ログデータを見ることができる。また、比較情報データを元に、各ビュー内のログデータをハイライト表示することで、“衝突”、“挿入”、“削除”の状況が容易に把握できる。なお、“衝突”の箇所は黄色(2405)、“挿入”の箇所は青色(2406)、“削除”の箇所は赤色(2407)で表示される。
また、この状態でソースコードエディタを用いてソースコード記憶部118から対象アプリケーション(101)のソースコードを読み出し、ログ比較結果表示装置(116)に渡すと、ログ比較結果表示装置(116)はハイライト表示されているログデータが示すソースコード行を図25に示すようにハイライト表示して明示する。
ここでは、図24でハイライト表示されているログデータが示す行(8,10,14,21,22行目)が(2502)、(2503)、(2504)、(2505)で示すように同色でハイライト表示される。また、図24におけるタブ(2404)を切り替えることにより、別の比較先ログデータとの比較結果が同じようにハイライト表示される。
図25の例では21,22行目がハイライト表示されているため、この行で例外をキャッチしたことがエラーの直接の原因である、ということが即座に把握できる。
さらに、なぜ例外が発生したのか、すなわちこのエラーの根本的な原因は何なのかを調査する場合は、その他のハイライト表示箇所が根本的な原因を特定する手がかりとなる。
図25のソースコードを見ると、8、10行目に黄色のハイライト表示(2502)、(2503)があり、言い換えると、以前にこのメソッドが実行した際は10行目が実行されたが、今回(エラーが発生時)は、8行目が実行されていた、ということがわかる。そこで、アプリケーション開発者は8,10行目の処理を中心にソースコードを精査することで、エラーの根本的な原因を突き止めることができる。
また、比較結果については、ディスプレイ画面に出力しているが、印刷装置で印刷出力する構成にすることができることは言うまでもない。
Claims (3)
- 対象となるアプリケーションに処理単位毎のログ出力処理を実装するログ出力処理実装手段と、前記対象となるアプリケーションが処理単位毎に出力したログデータを読み込み、そのログデータを分析するログ分析手段とから構成され、
前記ログ分析手段が、
前記処理単位毎のログデータから前記アプリケーションを構成する各処理単位の呼び出し関係を示すコールフローグラフを作成し、コールフローグラフ記憶手段に記憶させるコールフローグラフ作成手段と、
前記コールフローグラフ作成手段が作成したコールフローグラフを表示し、当該コールフローグラフ中において前記アプリケーションの障害原因の一要因となる処理単位のログデータを比較元ログデータとしてユーザ選択操作によって受け付けるコールフローグラフ表示手段と、
ユーザ操作によって選択された比較元ログデータの処理単位と同一処理単位を含む他の処理単位群のログデータを前記コールフローグラフ記憶手段から取得し、当該他の処理単位群のログデータを比較先ログデータリストとして生成する比較ログデータリスト生成手段と、
前記比較元ログデータと前記比較先ログデータリスト内の各ログデータとを比較し、処理単位の呼び出し関係が異なるログデータを抽出して出力するログデータ比較手段と
を備えることを特徴とするアプリケーションの障害原因の特定作業支援システム。 - 前記アプリケーションが処理単位毎に出力したログデータには当該処理単位のソースコード中の行番号を含み、前記ログデータ比較手段は前記比較元ログデータと前記比較先ログデータリスト内の各ログデータとの比較により、処理単位の呼び出し関係が異なるログデータを抽出すると共に、同一処理が異なるソースコード行に存在することを抽出して出力することを特徴とする請求項1に記載のアプリケーションの障害原因の特定作業支援システム。
- 前記対象となるアプリケーションのソースコードを記憶したソースコード記憶手段と、前記ログデータ比較手段が出力した処理単位の呼び出し関係が異なるログデータ及び同一処理が異なるソースコード行に存在する処理単位のログデータの行番号により、前記ソースコード記憶手段から該当する行のソースコードを取得し、表示画面に予め設定した表示形式で強調表示出力する出力手段をさらに備えることを特徴とする請求項2に記載のアプリケーションの障害原因の特定作業支援システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006059682A JP4737624B2 (ja) | 2006-03-06 | 2006-03-06 | アプリケーションの障害原因の特定作業支援システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006059682A JP4737624B2 (ja) | 2006-03-06 | 2006-03-06 | アプリケーションの障害原因の特定作業支援システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007241426A true JP2007241426A (ja) | 2007-09-20 |
JP4737624B2 JP4737624B2 (ja) | 2011-08-03 |
Family
ID=38586942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006059682A Expired - Fee Related JP4737624B2 (ja) | 2006-03-06 | 2006-03-06 | アプリケーションの障害原因の特定作業支援システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4737624B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010191527A (ja) * | 2009-02-16 | 2010-09-02 | Nec Corp | プログラム修正システム、端末装置、サーバ装置、プログラム修正方法、エラー検出プログラム及び管理プログラム |
JP2010287142A (ja) * | 2009-06-15 | 2010-12-24 | Hitachi Ltd | フォールトトレラントコンピュータシステムおよびフォールトトレラントコンピュータシステムにおける方法 |
JP2011076482A (ja) * | 2009-09-30 | 2011-04-14 | Fujitsu Ltd | データ収集装置 |
WO2013108730A1 (ja) * | 2012-01-20 | 2013-07-25 | 日立オートモティブシステムズ株式会社 | ソフトウェア検証支援装置、ソフトウェア検証支援方法、ソフトウェア検証支援プログラム |
JP2014235518A (ja) * | 2013-05-31 | 2014-12-15 | 富士電機株式会社 | 情報処理装置及びプログラム |
JP2015207079A (ja) * | 2014-04-18 | 2015-11-19 | 富士通株式会社 | 分析方法、分析装置、及び分析プログラム |
US10250471B2 (en) | 2015-09-30 | 2019-04-02 | Fujitsu Limited | Apparatus and method for collecting and analyzing logs to obtain information about program components used by applications |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07262044A (ja) * | 1994-03-25 | 1995-10-13 | Hitachi Ltd | イベントトレース解析方法 |
JPH1124901A (ja) * | 1997-06-27 | 1999-01-29 | Internatl Business Mach Corp <Ibm> | プログラム情報の解析・表示方法およびシステム |
WO2002046921A1 (fr) * | 2000-12-08 | 2002-06-13 | Fujitsu Limited | Procede et dispositif pour l'analyse de sequences |
JP2003140928A (ja) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | 仮想マシン内部情報自動取得システム |
JP2004272505A (ja) * | 2003-03-07 | 2004-09-30 | Nippon Telegr & Teleph Corp <Ntt> | ソフトウェア・コンポーネント間の呼出関係トレース方法及びシステム |
JP2005327036A (ja) * | 2004-05-13 | 2005-11-24 | Sony Corp | 情報処理装置および方法、記録媒体、並びにプログラム |
-
2006
- 2006-03-06 JP JP2006059682A patent/JP4737624B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07262044A (ja) * | 1994-03-25 | 1995-10-13 | Hitachi Ltd | イベントトレース解析方法 |
JPH1124901A (ja) * | 1997-06-27 | 1999-01-29 | Internatl Business Mach Corp <Ibm> | プログラム情報の解析・表示方法およびシステム |
WO2002046921A1 (fr) * | 2000-12-08 | 2002-06-13 | Fujitsu Limited | Procede et dispositif pour l'analyse de sequences |
JP2003140928A (ja) * | 2001-11-02 | 2003-05-16 | Fujitsu Ltd | 仮想マシン内部情報自動取得システム |
JP2004272505A (ja) * | 2003-03-07 | 2004-09-30 | Nippon Telegr & Teleph Corp <Ntt> | ソフトウェア・コンポーネント間の呼出関係トレース方法及びシステム |
JP2005327036A (ja) * | 2004-05-13 | 2005-11-24 | Sony Corp | 情報処理装置および方法、記録媒体、並びにプログラム |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010191527A (ja) * | 2009-02-16 | 2010-09-02 | Nec Corp | プログラム修正システム、端末装置、サーバ装置、プログラム修正方法、エラー検出プログラム及び管理プログラム |
JP2010287142A (ja) * | 2009-06-15 | 2010-12-24 | Hitachi Ltd | フォールトトレラントコンピュータシステムおよびフォールトトレラントコンピュータシステムにおける方法 |
JP2011076482A (ja) * | 2009-09-30 | 2011-04-14 | Fujitsu Ltd | データ収集装置 |
US8769069B2 (en) | 2009-09-30 | 2014-07-01 | Fujitsu Limited | Data collection apparatus and method thereof |
WO2013108730A1 (ja) * | 2012-01-20 | 2013-07-25 | 日立オートモティブシステムズ株式会社 | ソフトウェア検証支援装置、ソフトウェア検証支援方法、ソフトウェア検証支援プログラム |
JP2014235518A (ja) * | 2013-05-31 | 2014-12-15 | 富士電機株式会社 | 情報処理装置及びプログラム |
JP2015207079A (ja) * | 2014-04-18 | 2015-11-19 | 富士通株式会社 | 分析方法、分析装置、及び分析プログラム |
US10250471B2 (en) | 2015-09-30 | 2019-04-02 | Fujitsu Limited | Apparatus and method for collecting and analyzing logs to obtain information about program components used by applications |
Also Published As
Publication number | Publication date |
---|---|
JP4737624B2 (ja) | 2011-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4737624B2 (ja) | アプリケーションの障害原因の特定作業支援システム | |
CN107193739B (zh) | 一种黑盒回归测试方法 | |
CN110928772B (zh) | 一种测试方法及装置 | |
US9747190B2 (en) | Analysis system, analysis method, and computer program product | |
US7810079B2 (en) | System and method for determining execution path difference in program | |
US5862382A (en) | Program analysis system and program analysis method | |
EP2932393B1 (en) | Automated correlation and analysis of callstack and context data | |
JP2008191963A (ja) | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム | |
US20150286555A1 (en) | System and method for converting the business processes to test-centric activity diagrams | |
JP2010033543A (ja) | ソフトウエア動作監視システム、そのクライアントコンピュータおよびサーバコンピュータ、並びに、そのプログラム | |
WO2017164856A1 (en) | Comparable user interface object identifications | |
JP2012503808A (ja) | ラスターイメージプロセッサの自動テスト方法およびシステム | |
Winzinger et al. | Model-based analysis of serverless applications | |
Liu et al. | A Framework to Support Behavioral Design Pattern Detection from Software Execution Data. | |
CN106294109B (zh) | 获取缺陷代码的方法及装置 | |
Tsai et al. | Scenario-based test case generation for state-based embedded systems | |
Koutsopoulos et al. | Advancing data race investigation and classification through visualization | |
JP2008282174A (ja) | 情報処理装置、情報処理方法、および情報処理プログラム | |
US20070112816A1 (en) | Information processing apparatus, information processing method and program | |
CN113326193A (zh) | 一种小程序测试方法及装置 | |
US10762211B2 (en) | Source code diagnostic instrument | |
JP5772233B2 (ja) | プログラム実行トレース情報集約プログラム、装置、及び方法 | |
Sahu et al. | Computing dynamic slices of feature--oriented programs using execution trace file | |
JP2009205242A (ja) | 検証用プログラム自動生成装置、その方法及びプログラム | |
CN109408391A (zh) | 基于持续集成技术的软件集成测试系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080708 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100622 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110421 |
|
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: 20110421 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140513 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |