2011-12-27 11 views
1

Javaアプリケーションの負荷テストを実行しています.Noコネクタを使用してTomcat 7で実行しています。1000人のユーザーがsimultaniousに動作しているシミュレーションを実行しています。状態では、アプリケーションの異なるクラス(MVCコントローラなど)に対して、ステータス500のユーザーエラーとNoClassDefFoundErrorを与えます。NoClassDefFoundError負荷が高い状態でのWebアプリケーション

何らかの理由で何らかの理由でtomcat "undeploys"のように見えます。

問題の修正方法や問題の原因は何ですか?

答えて

1

このエラーは、クラスを先にロードできなかったことが原因です。真のエラーはもっと情報的なものになる可能性があります。

0

負荷を取ることができない可能性があります...同時ユーザーを減らそうとしましたか?別のコネクタajpとhttpを試してみますか?ニオ/バイオ?テストにはioの操作が含まれていますか?

3

(これはピーターLawreyの答え上の精緻化である)

NoClassDefFoundError例外の一般的な原因の1つは、以前にクラスのロードに失敗したクラスをロードしようとしている、またはそのが以前持っていたクラスのに依存クラスの読み込みに失敗しました。

これが起こっている場合、後でNoClassDefFoundError例外のスタックトレースは情報に欠ける傾向があります。問題の実際の原因は、通常、以前のログイベントで検出されることです。


私はTomcatが自動的に物事をアンデプロイするのではないかと疑います。もしそうなら、私は別の症状を期待します。 (たとえTomcatが何かをアンデプロイしても、JVMは到達できなくなったクラスのみをアンロードします。アンロードされたクラスに依存する他のクラスをロードしようとすると、新しいコピーがクラスパスからロードされます)

問題の原因については、アプリケーションの静的初期化で問題が発生する可能性があります。いくつかのサーブレットの遅延読み込みを行うようにwebappを設定しましたか?

関連する問題