2017-12-01 8 views
-1

私は問題があり、私の仕事はそれに依存しています。Linux環境でjmvスタックをデバッグする方法とramdonlyでクラッシュするJavaアプリケーションを使用するTomcat?

TomcatにLinuxでクラッシュしているramアプリケーションがいくつかあります(アプリケーションは私のものではなく、変更も不可能です)。 毎朝、一部のアプリが壊れています。 私はJVMのメッセージ(outofmemory、nullpointerなど)を見て、アプリケーションをクラッシュしたときに、Javaスタックを見たいと思っています。私は問題を解決するためのアドバイスを見ることができます。

私はこれについて何も知らない。

私はインターネットのvisualvmとjconsoleでこれを探しました。私は何をしたいのですか? クラッシュしたときだけJVMのJavaスタックのメッセージを見たいと思います。

私は助けが必要です。どうもありがとうございました。

+0

あなたのキットのデモ版を添付して、見つかったものを見ることもできます。さらに、使用可能なダンプを有効にします。たとえば、oome(google)にヒープダンプを作成します。Tomcatログにも重要な情報が含まれているはずです。 – Marged

+0

jconsoleとvisualvmを使用してjvmスタックを表示することはできません。 – user3765208

+0

正確に私は知りたいと思います: visualVMをJVMクラッシュを検出したときにダンプし、JVMのエラーを表示するように設定できますか?(それはoutmemoryerrorかJVMの他のメッセージです)??? もしそうなら、どうすればいいのですか? – user3765208

答えて

1

あなたはメモリリークの問題を抱えているようですが、特定の期間再起動してもアプリは動作しますか? Javaヒープ内で何が起こっているのかを知りたい場合は、ヒープダンプを取ることができます。これにはjcmdユーティリティを使用してください。このユーティリティは、サーバーにインストールされているJDK内で見つけることができます。

jcmd <process id/main class> GC.heap_dump filename=filename 

注:これは実行するたびにGCを実行します。

これをスケジュールするには、cronジョブを設定する必要があります。

また、アプリケーションの実行中に-XX:+HeapDumpOnOutOfMemoryErrorコマンドラインオプションを指定すると、OutOfMemoryError例外がスローされると、JVMは(ログに)ヒープダンプを生成します。

これが役に立ちます。 :)

+0

ありがとうございます。そして、私はコマンドXX:+ HeapDumpOnOutOfMemoryError?をどのように置くのですか? IsbitはJvmのディレクティブですか?どのファイルに追加すればいいですか?そして、ダンプファイル(パス)がどこにあるのか?そのダンプ私はそれを私はvisualvmで読むことができることを読んだ。 – user3765208

関連する問題