内容

概要

前提条件

要件

使用するコンポーネント

表記法

問題

解決方法

関連情報

概要

このドキュメントでは、Java の jstack コマンドを使用して Java のスタック ダンプを取得する方法について説明します。このプロセスは、Windows、Linux、およびUNIXで有効であり、Oracleを使用してどのTidalシステムでも1.6+日にJavaバージョンをSun。

前提条件

要件

シスコはJavaが実行されているオペレーティング システムのJavaの知識と知識があることが推奨されます。また、Java Java Development Kit （JDK）バージョン1.6+は、システムにインストールされている必要があります。

使用するコンポーネント

- SUN Java JRE 1.6+

- Sun Java JDK 1.6+

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

問題

ときどき、マスター ログにない低レベルのスレッド データ キャプチャをサポートする必要があります。

解決方法

jstackツールを使用したJavaスタック ダンプのキャプチャは、OracleのSunによって、次のステップを提供します。

注： jstackコマンドを実行するには、JavaプロセスがSun Java 1.6+を実行している必要があり、システムにJDKがインストールされている必要があります。Oracle Sun JDKをダウンロードします 。

1. Javaプロセスを実行しているマシンのプロセスID番号を確認します。

- Windowsマシンで、プロセスID番号を見つけるためにタスク マネージャを使用できます。

具体的には、PIDはプロセスID番号です。この列が表示される[View >列>PID （プロセスID）をクリックして追加します。

- OSで、EF ps -発行できます | grep UnixMasterコマンドを発行して、プロセスIDを取得します。

root@sunts06:/# ps -ef | grep UnixMaster

root 5452 5423 0 14:43:21 pts/14 0:00 grep UnixMaster

root 1868    1 0   Jun 09 ?     31:49 /usr/bin/java -DN=UnixMaster -DTI

DAL_HOME=/opt/TIDAL/master/bin/.. -Xms256m -Xm

root@sunts06:/#

2. 、Sun JDKがインストールされているbinディレクトリを必要とし、移動プロセスID番号があればPID {}プロセスID番号を持つjstack PID {}コマンドを発行します。これは画面にJavaスタック情報が表示されます。

C:\Program Files\Java\jdk1.6.0_25\bin>jstack 3724

2011-06-30 20:07:37

Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode):

"Swing-Shell" daemon prio=6 tid=0x0000000006cce800 nid=0x1bd8 waiting on conditi

on [0x000000000843f000]

java.lang.Thread.State:WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

- parking to wait for  <0x00000000fb38ace8> (a java.util.concurrent.lock

s.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(Unknown Source)

at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject

.await(Unknown Source)

at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)

at java.util.concurrent.ThreadPoolExecuter.getTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecuter$Worker.run(Unknown Source)

at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown

Source)

at java.lang.Thread.run(Unknown Source)

"Thread-2" prio=6 tid=0x0000000006cd0800 nid=0xe6c waiting on condition [0x00000

0000833f000]

java.lang.Thread.State: TIMED_WAITING (sleeping)

at java.lang.Thread.sleep(Native Method)

3. ファイルにスタック情報をリダイレクトするには、WindowsおよびLinux/UNIXの両方で機能するファイルの作成オプションの同じコマンドを実行する:

jstack {PID} > [filename.out]

関連情報

- テクニカル サポートとドキュメント – Cisco Systems