0

Tomcat6 を実行している Ubuntu LAMJ サーバーがあります。

私の JSP アプリケーションの 1 つが数日おきにフリーズし、その理由がわかりません。Tomcat を再起動して、その 1 つのアプリを再起動する必要があります。そのアプリの自分の log4j ログには何も表示されず、Catalina.out にも何も表示されません。

このアプリケーションは、server.xml ファイルのコンテキスト要素を介して、javax.sql.DataSource リソースを別のリソースと共有します。これが問題の原因だとは思いませんが、言及することもできます。

この断続的な問題の原因を見つけるために、誰かが私を正しい方向に向けることができますか?

前もって感謝します、

クリスティー

4

1 に答える 1

0

実行中のサーバーのスレッド ダンプを取得する 2 つのオプションがあります

VisualVM を使用する

%java_home%/bin フォルダに jvisualvm というファイルがあります。これを実行して、Tomcat サーバーに接続します。[スレッド] タブをクリックし、[スレッド ダンプ] をクリックします。

コマンドラインから手動で

コマンドラインを開き、Tomcat のプロセス ID を見つけます

ps -ef | grep java

実行中の tomcat インスタンスのプロセス ID を特定したら、

kill -3 <pid>

ここでプロセス ID を置き換えます。これにより、スレッド ダンプが tomcat の stdout に送信されます。おそらく catalina.out ファイルです。

編集- 以下のマークのコメントによると:

通常、3 つのスレッド ダンプを 10 秒程度間隔で取得して比較します。どのスレッドが「スタック」しているか、どのスレッドが動いているかを簡単に確認できます


スレッド ダンプを取得したら、スタック スレッドを分析できます。スタック スレッドが問題ではないかもしれませんが、少なくともサーバー内で何が起こっているかを確認して、問題をさらに分析することができます。

于 2012-04-11T12:40:23.913 に答える