(57)【特許請求の範囲】
【請求項１】
トランザクション要求を受け付けてトランザクションを実行するトランザクション装置であって、
トランザクションの実行を制御すると共に少なくともその実行時間を算出する情報を含む制御情報を出力するトランザクション制御手段と、
該トランザクション制御手段から制御情報を取得してトランザクションの実行時間及び実行回数を記憶保持する実行時間管理手段と、
該実行時間管理手段にて記憶保持されたトランザクションの実行時間及び実行回数に基づいて、直近の単位時間に実行されたトランザクションの集合における直近平均推定値最小値とそれ以前に実行されたトランザクション全体の集合における全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する遅延障害検出手段とを有し、
前記遅延障害検出手段は、標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより前記直近平均推定最小値を算出し、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより前記全体平均推定値最大値を算出するトランザクション装置。
【請求項２】
請求項１に記載のトランザクション装置において、
前記遅延障害検出手段は、
直近平均推定値最小値＝実行時間平均値（直近）−１．９６×（標準偏差÷√実行回数（直近））
によって前記直近平均推定最小値を算出することを特徴とするトランザクション装置。
【請求項３】
請求項１に記載のトランザクション装置において、
前記遅延障害検出手段は、
全体平均推定値最大値＝実行時間平均値（全体）＋１．９６×（標準偏差÷√実行回数（全体））
によって前記全体平均推定値最大値を算出することを特徴とするトランザクション装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のトランザクション装置において、
前記実行時間管理手段は、入力されるリセット操作に基づいて、前記記憶保持されている実行時間及び実行回数を消去することを特徴とするトランザクション装置。
【請求項５】
トランザクション要求を受け付けてトランザクションを実行するトランザクション装置にて単位時間に実行されたトランザクションの遅延障害を検出する遅延障害検出装置であって、
トランザクションの実行を制御すると共に少なくともその実行時間を算出する情報を含む制御情報を出力するトランザクション制御手段と、
該トランザクション制御手段から制御情報を取得してトランザクションの実行時間及び実行回数を記憶保持する実行時間管理手段と、
該実行時間管理手段にて記憶保持されたトランザクションの実行時間及び実行回数に基づいて、直近の単位時間に実行されたトランザクションの集合における直近平均推定値最小値とそれ以前に実行されたトランザクション全体の集合における全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する遅延障害検出手段とを有し、
前記遅延障害検出手段は、標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより前記直近平均推定最小値を算出し、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより前記全体平均推定値最大値を算出する遅延障害検出装置。
【請求項６】
請求項５に記載の遅延障害検出装置において、
前記遅延障害検出手段は、
直近平均推定値最小値＝実行時間平均値（直近）−１．９６×（標準偏差÷√実行回数（直近））
によって前記直近平均推定最小値を算出することを特徴とする遅延障害検出装置。
【請求項７】
請求項５に記載の遅延障害検出装置において、
前記遅延障害検出手段は、
全体平均推定値最大値＝実行時間平均値（全体）＋１．９６×（標準偏差÷√実行回数（全体））
によって前記全体平均推定値最大値を算出することを特徴とする遅延障害検出装置。
【請求項８】
トランザクション要求を受け付けてトランザクションを実行するトランザクション装置にてトランザクションの処理が遅延したことを検出する遅延障害検出方法であって、
トランザクションの実行時間及び実行回数を記憶保持する処理と、
該実行時間管理手段にて記憶保持されたトランザクションの実行時間及び実行回数に基づいて、直近の単位時間に実行されたトランザクションの集合における直近平均推定値最小値とそれ以前に実行されたトランザクション全体の集合における全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する処理とを有し、
標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより前記直近平均推定最小値を算出し、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより前記全体平均推定値最大値を算出する遅延障害検出方法。
【請求項９】
請求項８に記載の遅延障害検出方法において、
直近平均推定値最小値＝実行時間平均値（直近）−１．９６×（標準偏差÷√実行回数（直近））
によって前記直近平均推定最小値を算出することを特徴とする遅延障害検出方法。
【請求項１０】
請求項８に記載の遅延障害検出方法において、
全体平均推定値最大値＝実行時間平均値（全体）＋１．９６×（標準偏差÷√実行回数（全体））
によって前記全体平均推定値最大値を算出することを特徴とする遅延障害検出方法。
【請求項１１】
トランザクション要求を受け付けてトランザクションを実行するトランザクション装置にてトランザクションの処理が遅延したことを検出するためのプログラムであって、
コンピュータに、
トランザクションの実行を制御すると共に少なくともその実行時間を算出する情報を含む制御情報を出力する手順と、
前記制御情報を取得してトランザクションの実行時間及び実行回数を記憶保持する手順と、
該記憶保持されたトランザクションの実行時間及び実行回数に基づいて、標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより、直近の単位時間に実行されたトランザクションの集合における直近平均推定最小値を算出する手順と、
該記憶保持されたトランザクションの実行時間及び実行回数に基づいて、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより、前記それ以前に実行されたトランザクション全体の集合における全体平均推定値最大値を算出する手順と、
前記直近平均推定最小値と前記全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する手順とを実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムにおいて、
コンピュータに、
直近平均推定値最小値＝実行時間平均値（直近）−１．９６×（標準偏差÷√実行回数（直近））
によって前記直近平均推定最小値を算出する手順を実行させるためのプログラム。
【請求項１３】
請求項１１に記載のプログラムにおいて、
コンピュータに、
全体平均推定値最大値＝実行時間平均値（全体）＋１．９６×（標準偏差÷√実行回数（全体））
によって前記全体平均推定値最大値を算出する手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクション装置に関し、特に、トランザクションの処理遅延を検出するトランザクション装置に関する。
【背景技術】
【０００２】
トランザクション処理は、いわゆるオンラインリアルタイム処理であり、与えられた情報を即時に処理し、その結果を必要な場所で受け取ることを可能にするコンピュータシステムである。そして、処理を要求する側をクライアント、要求された処理を実行して結果を返す側をサーバと呼び、一般的には、端末装置側にクライアントアプリケーション（クライアントアプリケーションプログラムの略）が設けられ、端末装置と通信回線を介して接続されたホストコンピュータ側にサーバアプリケーション（サーバアプリケーションプログラムの略）が設けられる。
【０００３】
従来のトランザクション処理においては、トランザクション種別ごとに閾値となる時間を設定し、それを超えるトランザクションを一つでも検出した場合に、該当トランザクションで遅延障害が発生したと捕えられ、運用管理者に通知するなどしている。
【０００４】
ここでいう遅延障害とは、「通常運用時と比較して明らかに遅い」状態に陥ることを指す。
【０００５】
そして、トランザクションの遅延障害を検出する方法が特許文献１や特許文献２に開示されている。
【特許文献１】特開２００５−３２７１３７号公報
【特許文献２】特開２００２−３２４０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したようなトランザクションの遅延障害を検出する方法においては、以下に示すような問題点がある。
【０００７】
（１）１回のトランザクションの実行時間が閾値を超えただけで遅延障害と判断しているが、この方法では遅延障害を正しく検出できない。例えば、トランザクションの処理内容や環境によっては、正常状態においても何回かの呼び出しは遅くなることがありえる。もし閾値を、この正常状態であるトランザクションがとり得る範囲内に指定した場合、正常状態であるトランザクションを遅延障害と誤認してしまう。
【０００８】
一方、正常状態であるトランザクションのとりうる実行時間の範囲であっても、総体として従来と比べて著しく処理が遅延していれば、それは遅延障害である。閾値を正常状態であるトランザクションがとり得る範囲より大きい値に指定した場合、このような遅延障害を検出することができずに正常状態と誤認してしまう。
【０００９】
以上のように、従来の一回のトランザクションの実行時間が閾値を超えるかどうかで判断する手法では、トランザクションの遅延障害を正しく検出できない。
【００１０】
（２）トランザクションごとの最適な閾値を設定しなければならず、運用管理者に強いる運用コストが大きい。閾値はトランザクションごとに異なる必要があり、例えば１万種類を超えるようなトランザクションを持つシステムになると、閾値設定のコストがあまりに大きく、各トランザクションに最適な値を設定することは現実的でない。
【００１１】
（３）正しく遅延障害を検出できるか否かは運用管理者の設定する閾値の的確さに依存してしまう。運用管理者の設定が不適切であればこの方法は機能しない。
【００１２】
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、運用管理者の介入を必要とせずにトランザクションの遅延障害を的確に検出することができるトランザクション装置、遅延障害検出装置、方法及びプログラムを手依拠することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明は、
トランザクション要求を受け付けてトランザクションを実行するトランザクション装置であって、
トランザクションの実行を制御すると共に少なくともその実行時間を算出する情報を含む制御情報を出力するトランザクション制御手段と、
該トランザクション制御手段から制御情報を取得してトランザクションの実行時間及び実行回数を記憶保持する実行時間管理手段と、
該実行時間管理手段にて記憶保持されたトランザクションの実行時間及び実行回数に基づいて、直近の単位時間に実行されたトランザクションの集合における直近平均推定値最小値とそれ以前に実行されたトランザクション全体の集合における全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する遅延障害検出手段とを有し、
前記遅延障害検出手段は、標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより前記直近平均推定最小値を算出し、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより前記全体平均推定値最大値を算出する。
【００１６】
また、前記遅延障害検出手段は、
直近平均推定値最小値＝実行時間平均値（直近）−１．９６×（標準偏差÷√実行回数（直近））
によって前記直近平均推定最小値を算出することを特徴とする。
【００１８】
また、前記遅延障害検出手段は、
全体平均推定値最大値＝実行時間平均値（全体）＋１．９６×（標準偏差÷√実行回数（全体））
によって前記全体平均推定値最大値を算出することを特徴とする。
【００１９】
上記発明によると、まず、トランザクションが実行されると、常時、トランザクションの実行時間が計測されて、その回数と共に記憶保持される。そして、一定の時間間隔ごとに、この記憶された全体の実行時間と実行回数と前回比較時からその時点までに実行されたトランザクションの実行時間と実行回数が比較され遅延障害検出が行われる。その算出手順は、まず、前回比較時からその時点までに実行されたトランザクションの実行時間の平均値と標準偏差が算出される。続いて、この平均値に、補正値が減算されて直近平均推定値最小値が算出される。具体的には、下記（式１）によって算出される。
【００２０】
直近平均推定値最小値＝実行時間平均値（直近）−１．９６×（標準偏差÷√実行回数（直近））・・・（式１）
続いて、上記直近平均推定値最小値と後述する方法で求められる全体平均推定値最大値とが比較され、直近平均推定値最小値が全体平均推定値最大値を上回る場合に、遅延障害として検出し、運用管理者への通知などの任意の処理を行う。
【００２１】
全体の集合のとり得る最大の平均値より、直近の集合のとり得る平均の最小値が大きくなるということは、これら２つの集合の平均値は全く異なるものであり、かつ全体の集合の平均値より直近の集合の平均値のほうが大きいということである。これにより直近に実行されたトランザクション群がそれ以前に実行されたトランザクション群より明確に遅くなったということができ、遅延障害を適切に検出することができる。
【００２２】
上記比較後に、次回の比較に利用される全体平均推定値最大値を算出する。その算出手順は、まず、その時点までに実行された全てのトランザクションの実行時間の平均値と標準偏差が算出される。続いて、この平均値に、補正値が加算されて全体平均推定値最大値が算出される。具体的には、下記（式２）によって算出される。
【００２３】
全体平均推定値最大値＝実行時間平均値（全体）＋１．９６×（標準偏差÷√実行回数（全体））・・・（式２）
以上より、実行時間の平均値にそのばらつきを考慮した補正値が加算され、かかる値に基づいて決定されるため、計測回数が少ない場合であっても、不適切な遅延障害検出がなされることを抑制することができ、信頼性の高いスローダウン障害検出を行うことができる。
【００２４】
さらには、中心極限定理より直近平均推定値最小値及び全体平均推定値最大値を決定していることから、いかなるトランザクションにも対応することができ、汎用性を有する。
【００２５】
また、前記実行時間管理手段は、入力されるリセット操作に基づいて、前記記憶保持されている実行時間及び実行回数を消去することを特徴とする。
【００２６】
これにより、その後は新たな実行時間等が記憶され、これらに基づいて上述したように新たに遅延障害検出が行われる。従って、新しい環境のトランザクションに適した遅延障害検出を行うことができる。
【００２７】
また、上記構成に加えて、遅延障害が検出された後に、該当トランザクションが遅延状態でないと判断された場合、つまり上記直近平均推定値最小値が全体平均推定値最大値を下回る場合に遅延障害回復として検出し、通知などの任意の処理を行うことができる。
【００２８】
また、トランザクション要求を受け付けてトランザクションを実行するトランザクション装置にて単位時間に実行されたトランザクションの遅延障害を検出する遅延障害検出装置であって、
トランザクションの実行を制御すると共に少なくともその実行時間を算出する情報を含む制御情報を出力するトランザクション制御手段と、
該トランザクション制御手段から制御情報を取得してトランザクションの実行時間及び実行回数を記憶保持する実行時間管理手段と、
該実行時間管理手段にて記憶保持されたトランザクションの実行時間及び実行回数に基づいて、直近の単位時間に実行されたトランザクションの集合における直近平均推定値最小値とそれ以前に実行されたトランザクション全体の集合における全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する遅延障害検出手段とを有し、
前記遅延障害検出手段は、標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより前記直近平均推定最小値を算出し、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより前記全体平均推定値最大値を算出する。
【００３１】
また、前記遅延障害検出手段は、上記（式１）によって前記直近平均推定最小値を算出することを特徴とする。
【００３３】
また、前記遅延障害検出手段は、上記（式２）によって前記全体平均推定値最大値を算出することを特徴とする。
【００３４】
また、トランザクション要求を受け付けてトランザクションを実行するトランザクション装置にてトランザクションの処理が遅延したことを検出する遅延障害検出方法であって、
トランザクションの実行時間及び実行回数を記憶保持する処理と、
該実行時間管理手段にて記憶保持されたトランザクションの実行時間及び実行回数に基づいて、直近の単位時間に実行されたトランザクションの集合における直近平均推定値最小値とそれ以前に実行されたトランザクション全体の集合における全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する処理とを有し、
標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより前記直近平均推定最小値を算出し、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより前記全体平均推定値最大値を算出する。
【００３７】
また、上記（式１）によって前記直近平均推定最小値を算出することを特徴とする。
【００３９】
また、上記（式２）によって前記全体平均推定値最大値を算出することを特徴とする。
【００４０】
また、トランザクション要求を受け付けてトランザクションを実行するトランザクション装置にてトランザクションの処理が遅延したことを検出するためのプログラムであって、
コンピュータに、
トランザクションの実行を制御すると共に少なくともその実行時間を算出する情報を含む制御情報を出力する手順と、
前記制御情報を取得してトランザクションの実行時間及び実行回数を記憶保持する手順と、
該記憶保持されたトランザクションの実行時間及び実行回数に基づいて、標準偏差を直近の単位時間にトランザクションが実行された実行回数に基づく値にて除算した値に所定の係数をかけた値を直近の単位時間に実行されたトランザクションの集合における実行時間平均値から減算することにより、直近の単位時間に実行されたトランザクションの集合における直近平均推定最小値を算出する手順と、
該記憶保持されたトランザクションの実行時間及び実行回数に基づいて、標準偏差を前記実行回数に基づく値にて除算した値に所定の係数をかけた値をそれ以前に実行されたトランザクション全体の集合における実行時間平均値に加算することにより、前記それ以前に実行されたトランザクション全体の集合における全体平均推定値最大値を算出する手順と、
前記直近平均推定最小値と前記全体平均推定値最大値とを比較し、前記トランザクション装置の遅延障害を検出する手順とを実行させる。
【００４３】
また、コンピュータに、
上記（式１）によって前記直近平均推定最小値を算出する手順を実行させる。
【００４５】
また、コンピュータに、
上記（式２）によって前記全体平均推定値最大値を算出する手順を実行させるプログラム。
【００４６】
上述した遅延障害検出装置、方法、さらにはプログラムであっても、上記トランザクション装置と同様に作用するため、上述した本発明の目的を達成することができる。
【００４７】
本発明は、以上のように構成されて機能するので、これによると、実行時間の平均値にそのばらつきを考慮した補正値が加算され、全体の実行時間データの集合と直近の実行時間データの集合とを比較し遅延障害検出を行うため、計測回数が少ない場合であっても、信頼性の高い遅延障害検出を行うことができ、そして、実行時間のばらつきが大きく閾値設定が困難なトランザクションに対しても、遅延障害検出を行うことができ、そして、運用管理者の介入を必要とせずに遅延障害を検出できるという従来にない優れた効果を有する。
【発明の効果】
【００４８】
以上説明したように本発明においては、トランザクションの実行時間のばらつきを考慮し、全体の集合と直近の集合を比較することより遅延障害が検出される。従って、従来の方法では難しい実行時間にばらつきがあるトランザクションに対しても、精度の高い遅延障害検出を行うことができるという効果を有する。
【００４９】
また、本発明では、全体の集合と直近の集合を比較することより遅延障害が検出されるため、正常状態から遅延状態への変化を即時に検出できるという効果を有する。
【００５０】
また、本発明では、トランザクションの実行時間の信頼度を考慮し、遅延障害が検出される。従って、正常状態を遅延状態と誤認する危険を軽減するという効果を有する。
【００５１】
また、本発明では、自動的に採取した情報をもとに遅延障害検出を行うため、システムの運用管理者は、遅延障害検出のための設定をするための運用管理者の負担がなくなるという効果を有する。
【００５２】
また、本発明では、自動的に採取した情報をもとに遅延障害検出を行うため、システムの運用管理者の設定の的確さに、遅延障害検出の精度が依存しないという効果を有する。
【００５３】
また、本発明では、スローダウン障害を行う際に、本発明の機能により蓄積されたトランザクション実行時間データを用いているため、時が経過するにつれて、より精度の高い遅延障害検出を行うという学習効果を有する。
【００５４】
また、本発明では、環境の変化に対応することが可能である。つまり、突発的な変化に対して、蓄積しているデータをリセットする機能を有している。
【００５５】
さらに、本発明では、特定のトランザクション実行時間分布を仮定していないため、いかなるトランザクションにも対応することができ、汎用性を有する。
【発明を実施するための最良の形態】
【００５６】
以下に、本発明の実施の形態について図面を参照して説明する。
【００５７】
図１は、本発明のトランザクション装置を有するトランザクションシステムの全体構成例を示すブロック図であり、図２は、図１に示したサーバコンピュータ１の構成を示す機能ブロック図である。図３は、図１及び図２に示したサーバコンピュータ１に記憶される情報を示す説明図である。図４及び図５は、図１及び図２に示したサーバコンピュータ１における動作を示すシーケンス図である。
【００５８】
図１に示すように、本形態におけるトランザクションシステムは、トランザクションを実行するトランザクション装置となるサーバコンピュータ１と、これにネットワークＮを介して接続された複数のクライアント端末２と運用管理端末３とから構成されている。そして、クライアント端末２からのトランザクション要求をサーバコンピュータ１が受け付けて、トランザクションを実行し、その応答をクライアント端末２に送信するというシステムである。運用管理端末３とサーバコンピュータ１との間でネットワークＮを介して任意の情報を送信することもできる。
【００５９】
但し、本発明であるトランザクション装置は、図１に示すシステム形態に限定されない。所定の処理要求を受け付けて実行し、応答するよう作動するトランザクション装置であればよい。
【００６０】
次に、サーバコンピュータ１について、図２及び図３を参照して説明する。図２に示すように、トランザクション装置であるサーバコンピュータ１は、基本的なコンピュータの構成であるＣＰＵなどの演算装置１Ａと、ハードディスクなどの記憶装置１Ｂとを備えている。そして、演算装置１Ａには、トランザクション用プログラムが組み込まれることにより、トランザクション制御手段となるトランザクション制御部１１と、サーバアプリケーション部１２と、実行時間管理部１３と、遅延障害検出手段となる障害検出部１４と、障害対応部１５とが構築される。また、記憶装置１Ｂには、管理表記憶部１６が形成されている。なお、演算装置１Ａには、トランザクションを実行するために必要な他の機能や一般的なサーバコンピュータが備える他の機能なども構築されており、記憶装置１Ｂにも他の必要な情報が記憶されているが、かかる説明は省略する。上記各構成についてさらに詳述する。
【００６１】
トランザクション制御部１１は、クライアント端末２からネットワークＮを介して送信されたトランザクション要求を受け付け、サーバアプリケーション部１２に、要求を受けたトランザクションを開始させる。つまり、トランザクションの実行を制御する機能を有する。また、トランザクション制御部１１は、サーバアプリケーション部１２からのトランザクション実行後の応答を受け取り、クライアント端末２に返送する。
【００６２】
また、トランザクション制御部１１は、トランザクションの実行時間を計測する機能を有する。具体的には、トランザクションを開始させると同時に、その開始した時刻を内部で保持し、トランザクション処理が終了すると、内部で保持していたトランザクション開始時刻から終了時刻を減算し、トランザクション実行時間を算出する。そして、算出した時間と共に、要求され実行されたトランザクションを特定するトランザクション識別子を実行時間管理部１３に通知し、トランザクション実行時間管理表の更新を指示する。但し、トランザクション制御部１１は、必ずしも実行時間を計測することに限定されず、トランザクションの実行の開始時刻及び終了時刻といった、実行時間を計測するための情報を実行時間管理部１３に通知してもよい。
【００６３】
サーバアプリケーション部１２は、上述したように、クライアント端末２から要求されたトランザクションを処理する。
【００６４】
実行時間管理部１３は、管理表記憶部１７と協働して実行時間管理手段として機能し、要求されたトランザクションごとのトランザクション実行時間に関するデータを、管理表記憶部１７内に形成されたトランザクション実行時間管理表に記憶保持して管理する。具体的には、図３に示すトランザクション実行時間管理表に、トランザクションごとのトランザクション識別子１０１、トランザクション実行回数（全体）１０２、トランザクション実行時間（全体）合計１０３、トランザクション実行時間平方和（全体）１０４、トランザクション実行回数（直近）１０５、トランザクション実行時間合計（直近）１０６を管理する。さらに詳述すると、実行時間管理部１３は、トランザクション制御部１１から受け取ったトランザクション識別子及び実行時間から、対応する識別子１０１を検索し、あるいは、かかる識別子１０１の行を生成し、トランザクション実行回数（直近）１０５に「１」を加算する。また、トランザクション実行時間合計（直近）１０６については、通知を受けた実行時間を加算する。あるいは、トランザクション制御部１１にて実行時間が算出されずに終了時刻と開始時刻の通知を受けた場合には、その差分を算出して実行時間として加算する。また、トランザクション実行時間平方和（全体）１０４については、トランザクション実行時間の平方を算出して加算する。
【００６５】
また、実行時間管理部１３は、運用管理者から入力されるリセット操作を認識し、かかるリセット指示に応じて、管理表記億部１７内のトランザクション実行時間管理表をリセットする。つまり、上述したように加算した実行時間等を消去する。なお、運用管理者からリセット操作が入力される場合とは、例えば、サーバアプリケーションが稼動する環境の明示的な変化があった場合である。このような状況下においてトランザクション実行時間管理表がリセットされることにより、新しい環境に即した処理遅延検出を行うことができる。なお、トランザクション実行時間管理表をリセットする際は、トランザクション実行時間管理表の全体をリセットしてもよいし、リセット操作時に特定のトランザクションを指定し、トランザクション実行時間管理表の指定されたトランザクション識別子の行のみをリセットしてもよい。
【００６６】
障害検出部１４は、上記トランザクション実行時間管理表に記憶されたデータに基づいて、遅延障害が発生していないか調べ、遅延障害を検出した場合は、障害対応部１５に通知する。その後、トランザクション時間管理表を更新する。この遅延障害の検出処理、トランザクション時間管理表更新処理は、一定の時間間隔ごとに定期的に実行され、次の手順で実行される。なお、この時間間隔は可変でよい。
【００６７】
まず、トランザクション実行時間管理表の各行について、トランザクション識別子１０１、トランザクション実行回数（全体）１０２、トランザクション実行時間合計（全体）１０３、トランザクション実行時間平方和（全体）１０４、トランザクション実行回数（直近）１０５、トランザクション実行時間合計（直近）１０６をそれぞれ読み出す。
【００６８】
続いて、下記の（式３）によって、トランザクション実行時間平均値（全体）を求める。
【００６９】
トランザクション実行時間平均値（全体）＝トランザクション実行時間合計（全体）÷トランザクション実行回数（全体）・・・（式３）
続いて、下記の（式４）によって、トランザクション実行時間標準偏差（全体）を求める。この値は、トランザクション実行時間のばらつきを示す指標として用いられる。
【００７０】
トランザクション実行時間標準偏差（全体）＝√（トランザクション実行時間平方和（全体）÷トランザクション実行回数（全体）−トランザクション実行時間平均（全体）2）・・・（式４）
ここで、上記（式３）で得られた標本トランザクション実行時間平均値（全体）は、得られた値から直接算出された値であり、長時間運用した際に得られる真のトランザクション実行時間平均値よりも大きい、もしくは小さいかもしれない。運用開始時にたまたま短い実行時間のトランザクションが連続した場合などに、標本トランザクション実行時間平均値（全体）が、長時間運用した際に得られる真のトランザクション実行時間平均値より下回る可能性がある。
【００７１】
そこで、さらに、下記（式５）により、データの信頼性を挙げるための補正を行い、トランザクション実行時間平均推定値最大値（全体）を算出する。
【００７２】
トランザクション実行時間平均推定値最大値（全体）＝トランザクション実行時間平均（全体）＋１．９６×（トランザクション実行時間標準偏差（全体）÷√トランザクション実行回数（全体））・・・（式５）
（式５）の係数１．９６は可変でよい。
【００７３】
なお、統計学の見地から、トランザクション実行回数が３０以上であるとき、長時間運用した場合に得られる真のトランザクション実行時間平均値は、９５％の確率で以下の（式６）に示す不等式を満たす。この範囲は、特定のデータ分布を仮定しない。
【００７４】
トランザクション実行時間平均−１．９６×（トランザクション実行時間標準偏差÷√トランザクション実行回数）＜トランザクション実行時間平均推定値最大値＜トランザクション実行時間平均＋１．９６×（トランザクション実行時間標準偏差÷√トランザクション実行回数）・・・（式６）
つまり、長時間運用した場合に得られる真のトランザクション実行時間平均値は、９７．５％の確率でトランザクション実行時間平均推定値最大値を下回ることとなる。なお、「１．９６」という係数は、可変でもよい。
【００７５】
ここで、トランザクション実行回数が３０を下回る場合は、誤認の危険を回避するため、スローダウン検出を行わなくてもよい。但し、３０という閾値は可変でもよい。また、トランザクション実行時間の分布が正規分布と仮定できるならば、トランザクション実行回数が３０または設定した閾値を下回っても、ｔ分布を利用することによりトランザクション実行時間平均推定値最大値を算出することもできる。しかし、トランザクション実行時間の分布が正規分布であるという仮定を行うことは非常に困難であるがゆえ、本発明では、以下に説明するように、いかなるトランザクション実行時間の分布をとるサーバアプリケーション部１２であっても対応できる汎用的な装置を例示している。
【００７６】
続いて、下記の（式７）にて、トランザクション実行時間平均値（直近）を求める。
【００７７】
トランザクション実行時間平均値（直近）＝トランザクション実行時間合計（直近）÷トランザクション実行回数（直近）・・・（式７）
ここで、上記（式７）で得られた標本トランザクション実行時間平均値（直近）は、得られた値から直接算出された値であり、真のトランザクション実行時間平均値よりも大きい、もしくは小さいかもしれない。たまたま長い実行時間のトランザクションが連続した場合などに、標本トランザクション実行時間平均値（直近）が、真のトランザクション実行時間平均値より上回る可能性がある。
【００７８】
そこで、さらに、以下に示す（式８）により、データの信頼性を挙げるための補正を行い、トランザクション実行時間平均推定値最小値（直近）を算出する。
【００７９】
トランザクション実行時間平均推定値最小値（直近）＝トランザクション実行時間平均（直近）−１．９６×（トランザクション実行時間標準偏差÷√トランザクション実行回数（直近））・・・（式８）
なお、統計学の見地から、トランザクション実行回数が３０以上であるとき、真のトランザクション実行時間平均値は、９５％の確率で以下の数６式に示す不等式を満たす。この範囲は、特定のデータ分布を仮定しない。
【００８０】
つまり、真のトランザクション実行時間平均値は、９７．５％の確率でトランザクション実行時間平均推定値最小値（直近）を上回ることとなる。なお、「１．９６」という係数は、可変でもよい。
【００８１】
ここで、トランザクション実行回数が３０を下回る場合は、誤認の危険を回避するため、スローダウン検出を行わなくてもよい。但し、３０という閾値は可変でもよい。
【００８２】
そして、以下の（式９）に示す不等式を満たす場合に、該当トランザクションをスローダウンと判断する。
【００８３】
トランザクション実行時間平均推定値最大値（全体）＜トランザクション実行時間平均推定値最小値（直近）・・・（式９）
全体のとり得る最大のトランザクション実行時間平均値より、直近に実行されたトランザクションのとり得る最小の実行時間平均値が大きいということは、これら２つの集合は別の集合であり、かつ全体のトランザクション実行時間平均値より直近のトランザクション実行時間平均値のほうが大きいということができる。つまり、全体にくらべて直近に実行されたトランザクションが遅くなっていると判断できる。
【００８４】
障害対応部１５は、障害検出部１４から通知された、障害情報に基づいて運用管理端末３に通知する、サーバアプリケーション１２の遅延障害を復旧させるなどの任意の処理を行うことができる。
【００８５】
ここで、上記サーバコンピュータ１は、複数台のコンピュータにて構成されていてもよい。例えば、障害検出部１４がサーバコンピュータ１に接続された他のコンピュータにて構成され、障害検出装置として作動し、スローダウン障害の検出結果をサーバコンピュータ１の障害対応部１５に通知してもよい。同様に、他の各部（障害対応部１５など）も他のコンピュータにて構成されていてもよい。
【００８６】
以下に、上記のように構成されたトランザクション装置１の動作を、図３のトランザクション実行時間管理表及び図４及び図５のシーケンス図を参照して説明する。
【００８７】
まず、図４に示すように、クライアント端末２から、トランザクション識別子ＡＡにて特定されるトランザクションがサーバコンピュータ１に要求された場合を考える（ステップＳ１）。トランザクション制御部１１は、要求を受け付け、サーバアプリケーション部１２にトランザクションＡＡを開始させる（ステップＳ２）と同時に、トランザクションＡＡを開始した時刻を内部で保持する。
【００８８】
続いて、サーバアプリケーション部１２でトランザクションＡＡが実行され（ステップＳ４）、終了すると、トランザクション制御部１１に実行結果の応答を行う（ステップＳ５）。そして、トランザクション制御部１１は、クライアント端末２に応答を返す（ステップＳ６）と同時に、内部で保持していたトランザクション開始時間からトランザクションＡＡの終了時刻を減算し、トランザクション実行時間を算出する（ステップＳ７）。この例では、図３に示すように、トランザクション実行時間は「２０」とする。
【００８９】
そして、トランザクション制御部１１は、終了したトランザクションのトランザクション識別子（ＡＡ）とトランザクション実行時間（２０）を実行時間管理部１３に伝える（ステップＳ８）。すると、実行時間管理部１３は、管理表記憶部１７内のトランザクション実行時間管理表の中から、通知を受けたトランザクション識別子（ＡＡ）と等しいトランザクション識別子の行を探索し、該当する行のトランザクション実行回数（直近）１０５に「１」を加算する。また、トランザクション制御１１より得られたトランザクション実行時間（２０）を、トランザクション実行時間合計（直近）１０６に加算する。さらに、トランザクション実行時間平方和１０４についても、トランザクション制御部１１より得られたトランザクション実行時間（２０）の平方を算出して加算する。なお、トランザクション実行時間管理表の中から、通知を受けたトランザクション識別子と等しい行が見つからなかった場合は、空行を確保し、上記と同様の処理を行う。つまり、トランザクション識別子１０１に「ＡＡ」、トランザクション実行回数（直近）１０５に「１」、トランザクション実行時間合計（直近）１０６に「２０」、トランザクション実行時間平方和１０４に「４００」がそれぞれ設定され、図３に示すように記録される（ステップＳ９）。
【００９０】
続いて、障害検出部１４による一定時間毎の動作について、図３に示すトランザクションＢＢを例にとり、図５のシーケンス図を参照して説明する。まず、トランザクション実行時間管理表より、トランザクション識別子１０１が「ＢＢ」である行のトランザクション実行回数（全体）１０２、トランザクション実行時間合計（全体）１０３、トランザクション実行時間平方和（全体）１０４、トランザクション実行回数（直近）１０５、トランザクション実行時間合計（直近）１０６を読み出し、それぞれの値、「１００」、「３００」、「１３００」、「１０」、「３５」を取得する（ステップＳ１１，Ｓ１２）。
【００９１】
トランザクション実行時間平均値＝トランザクション実行時間合計÷トランザクション実行回数・・・（式１０）
そして、上述した（式１０）に代入し、下記の（式１１）、（式１２）のようにして、直近、全体それぞれに対してトランザクション実行時間平均値を求める（ステップＳ１３）。
【００９２】
トランザクション実行時間平均値（全体）＝トランザクション実行時間合計（全体）１０３「３００」÷トランザクション実行回数（全体）１０２「１００」＝３・・・（式１１）
トランザクション実行時間平均値（直近）＝トランザクション実行時間合計（直近）１０６「１０５」÷トランザクション実行回数（直近）１０５「３０」＝３．５・・・（式１２）
トランザクション実行時間標準偏差＝√（トランザクション実行時間平方和÷トランザクション実行回数−トランザクション実行時間平均2）・・・（式１３）
続いて、上述した（式１３）より、下記の（式１４）のようにして、トランザクション実行時間標準偏差（標準偏差）を求める（ステップＳ１３）。
【００９３】
トランザクション実行時間標準偏差（全体）＝√（トランザクション実行時間平方和（全体）１０４「１３００」÷トランザクション実行回数（全体）１０２「１００」−トランザクション実行時間平均（全体）「３」2）＝２・・・（式１４）
トランザクション実行時間平均推定値最大値＝トランザクション実行時間平均＋１．９６×（トランザクション実行時間標準偏差÷√トランザクション実行回数）・・・（式１５）
次に、上述した（式１５）より、下記の（式１６）のようにして、トランザクション実行時間平均推定値最大値（全体）を求める（ステップＳ１４）。
【００９４】
トランザクション実行時間平均推定値最大値（全体）＝トランザクション実行時間平均（全体）「３」+１．９６×（トランザクション実行時間標準偏差（全体）「１」÷√トランザクション実行回数（全体）１０２「１００」＝３．１９６・・・（式１６）
トランザクション実行時間平均推定値最小値＝トランザクション実行時間平均−１．９６×（トランザクション実行時間標準偏差÷√トランザクション実行回数）・・・（式１７）
次に、上述した（式１７）より、下記の（式１８）のようにして、トランザクション実行時間平均推定値最小値（直近）を求める（ステップＳ１４）。
【００９５】
トランザクション実行時間平均推定値最小値（直近）＝トランザクション実行時間平均（直近）「３.５」−１．９６×（トランザクション実行時間標準偏差（全体）「１」÷√トランザクション実行回数（直近）１０５「３０」＝３．１４２・・・（式１８）
そして、トランザクション実行時間平均推定値最大値（全体）とトランザクション実行時間平均推定値最小値（直近）を比較し、スローダウンか否か判定する（ステップＳ１５）。
【００９６】
この場合は、
トランザクション実行時間平均推定値最大値（全体）＞トランザクション実行時間平均推定値最小値（直近）
であるため、スローダウンではないと判定される。もし、スローダウンと検出された場合は障害対応部１５に伝えられ運用管理者への通知などの障害対応処理を行う（ステップ１８）。
【００９７】
図５のステップ１６、ステップ１７について同様にトランザクションＢＢを例に図３と図５を用いて説明する。
【００９８】
スローダウン検出処理の後、トランザクション実行回数（全体）１０２「１００」にトランザクション実行回数（直近）１０５「３０」を加算し、１０５を「０」にクリアする。この結果、トランザクション実行回数（全体）１０２は「１３０」にトランザクション実行回数（直近）１０５は０となる。
【００９９】
さらに、トランザクション実行時間合計（全体）１０３「３００」にトランザクション実行時間合計（直近）１０６「１０５」を加算し、トランザクション実行時間合計（直近） １０６は「０」にクリアする。この結果、トランザクション実行時間合計（全体）１０３は「４０５」に、トランザクション実行時間合計（直近）１０６は「０」になる。
【産業上の利用可能性】
【０１００】
本発明のトランザクション装置は、あらゆるトランザクションを実行するコンピュータに実装することが可能である。
【図面の簡単な説明】
【０１０１】
【図１】本発明のトランザクション装置を有するトランザクションシステムの全体構成例を示すブロック図である。
【図２】図１に示したサーバコンピュータの構成を示す機能ブロック図である。
【図３】図１及び図２に示したサーバコンピュータに記憶される情報を示す説明図である。
【図４】図１及び図２に示したサーバコンピュータ１における動作を示すシーケンス図である。
【図５】図１及び図２に示したサーバコンピュータ１における動作を示すシーケンス図である。
【符号の説明】
【０１０２】
１    サーバコンピュータ
１Ａ    演算装置
１Ｂ    記憶装置
２    クライアント端末
３    運用管理端末
１１    トランザクション制御部
１２    サーバアプリケーション部
１３    実行時間管理部
１４    障害検出部
１５    障害対応部
１６    管理表記憶部
【図１】
0004449929.tif 000002
【図２】
0004449929.tif 000003
【図３】
0004449929.tif 000004
【図４】
0004449929.tif 000005
【図５】
0004449929.tif 000006