WebSphere 管理者は、スレッド ダンプの取得とそれを分析するためのツールに注意する必要があります。
スレッド ダンプは、Java スレッドのデッドロック、スレッドのハング、ボトルネックなどのアプリケーションのパフォーマンスの問題を診断するために必要になることがよくあります。

WebSphere でのスレッド ダンプの取得
5 ~ 8 秒以内に複数のスレッド ダンプを取得することをお勧めします。次のいずれかの方法を使用して生成できます。
1. wsadmin.sh の使用
- WASサーバーにログインする
- プロファイルとbinフォルダーに移動します
- wsadmin.shファイルを実行する
[root@localhost bin]# ./wsadmin.sh
WASX7209I: Connected to process "dmgr" on node localhostCellManager01 using SOAP connector; The type of process is: DeploymentManager
WASX7029I: For help, enter: "$Help help"
wsadmin>
- JVM名を変数に設定する
set jvm [$AdminControl completeObjectName type=JVM,process= server1 ,*]
注: たとえば、 server1 はサーバー 1 です。これを実際の JVM 名に変更します。
wsadmin> set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
WebSphere:name=JVM,process=server1,platform=proxy,node=localhostNode01,j2eeType=JVM,J2EEServer=server1,version=8.5.5.0,type=JVM,mbeanIdentifier=JVM,cell=localhostCell01,spec=1.0
wsadmin>$AdminControl invoke $jvm dumpThreads
これによりスレッド ダンプが生成され、プロファイル パスで利用できるようになります。
2. kill の使用
- ps コマンドを使用して JVM プロセス ID を検索します。
- kill を実行 -3 $PID
# kill -3 $PID
ダンプはプロファイル パスにあります。
3. WebSphere 管理コンソールの使用
- DMGRコンソールにログインします
- 左側の「トラブルシューティング」に移動します
- JVM を選択し、「Java コア」をクリックします。
スレッド ダンプを取得したら、次のツールを使用してスレッド ダンプを分析できます。
WebSphere スレッド ダンプの分析
ダンプの分析は常に困難ですが、次の無料ツールが役に立ちます。
IBM スレッド ダンプ アナライザー (TDA)
IBM TDA を使用すると、Java スレッドのハング、デッドロック、ボトルネックを特定できます。
IBM TDA はここから ダウンロードできます。これは単なる jar ファイルであり、ダウンロードしたら、次のコマンドを実行して GUI を起動できます。
java -jar jca457.jar
- [ファイル] >> [スレッド ダンプを開く] をクリックします。
- フォルダーを参照し、分析したいダンプを選択します
数秒かかります。これで次の分析を行う準備が完了します。
- CPU使用率
- メモリセグメント
- ユーザープロセスのリソース制限
- コマンドライン引数
- 環境変数
- 共有クラスキャッシュ
- ネイティブメモリ
- スレッドのステータス
- 方法
すべては「 分析 」メニューから利用できます。スレッドステータス分析の概要
IBM TDA を使って、探している分析を楽しんでください。
これで、アプリケーションのトラブルシューティングのためにスレッド ダンプを生成および分析できるようになりました。ここではさらに詳しいアナライザーについて説明します。