5

UNIX上で実行されているWebSphereサーバーにデプロイされたアプリケーションがあり、2つの問題が発生しています。

  1. 数分後に回復するシステムハング-調査するには、スレッドダンプ(javacore)が必要になります。
  2. システムがハングし、回復せず、WebSphereを再起動する必要があります。調査するには、スレッドダンプとヒープダンプが必要になります。

問題は、システムハングが発生したときに、それが問題1か2かがわからないことです。

理想的には、最初に手動でスレッドダンプを生成し、システムが回復するかどうかを確認するのを待ちます。そうでない場合は、WebSphereを再始動する前に、スレッド・ダンプとヒープ・ダンプを生成します。

kill -3(またはkill -QUIT)コマンドについて知っています。このコマンドは、スレッドダンプのみ(パラメーターの場合IBM_HEAPDUMP=false)、またはスレッドダンプとヒープダンプ(の場合IBM_HEAPDUMP=true)を生成します。ただし、IBM_HEAPDUMPWebSphereを開始する前に設定する必要があり、WebSphereの実行中に変更することはできません。

IBM_HEAPDUMPパラメータとkill -3コマンドに関して、私の理解は正しいですか?

また、私が説明した方法でログを取得することは可能ですか?(つまり、JVM診断を生成するときに、ヒープダンプを生成するかどうかをオンザフライで選択します)

4

1 に答える 1

2

あなたの理解は私が読んだすべてのものと一致しています。

ただし、 wsadminスクリプトを使用することで、目的を達成できると思います。この記事では、kill -3が使用できないWindowsプラットフォームでjavacoresとheapdumpsを強制する方法について説明しますが、同じコマンドを任意のWebSphereシステムで実行できます。

wsadminまたはwsadminスクリプト内から、以下を実行します。

set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]​
$AdminControl invoke $jvm generateHeapDump​
$AdminControl invoke $jvm dumpThreads​
于 2012-05-16T15:22:58.893 に答える