web-dev-qa-db-ja.com

Jetty(JavaのHTTPサーブレットサーバー)が予期せずシャットダウンする

Jettyアプリケーションは私のサーバーにデプロイされていますが、終了し続けており、その理由についてはほとんど理解できません。これを解決するための助けをいただければ幸いです。

詳細:

OS:

  Slackware Linux 13.1
  Linux 2.6.32.16 running as Xen guest OS

Java info:

  Java version "1.6.0_20"
  Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
  Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

nginx 0.7.67 config (only pertinent items):

    location /app {
      proxy_pass              http://localhost:50013;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        Host $http_Host;
    }

Jettyアプリは、daemontoolsを介して以下を含む実行ファイルで起動されます。

#!/bin/sh
cd /path/to/app
exec setuidgid userXYZ /usr/lib/Java/bin/Java -server -verbose -jar ./app.jar

散発的にシャットダウンする理由についての証拠はログにありません(その後、daemontoolsが再び起動します)。

明らかに、メモリ内セッションを使用する場合、ユーザーのセッションが終了するため、これは理想的ではありません。

そのため、daemontoolsを使用せずにstraceを使用してアプリを実行しました。出力は、次の場所にあります。

http://Pastebin.com/ZKCMWVQM

ありがとうデール

2
Dale

まず、システムのどこかに「core」という名前のファイルがありますか?これは、Jettyがクラッシュしたときに生成された可能性があります。

ここにいくつかの可能性があります:

ガベージコレクションが頻繁に発生するため、JVMがスラッシングしている可能性があります。 VisualVMなどのツールを使用してこれをテストできます。そのGUIがオプションでない場合は、JVMスイッチを使用してGC統計をログファイルに出力できます。

JVMのヒープスペースが不足している可能性があります。 GC分析も、この可能性に光を当てます。ヒープサイズを増やすとどうなりますか?

私の理解では、J2EEサーバーを調整できるように、Jettyを実際に調整することはできないので、おそらく問題ありません。

アプリケーションに問題があるという最後の可能性。次のチュートリアルを使用して、Jettyで実行されているアプリケーションをデバッグできます: http://sujitpal.sys-con.com/node/508048/mobile

幸運を!

2
Tom Purl