1134643 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

Quitada ブログ RX

PR

キーワードサーチ

▼キーワード検索

プロフィール


quitada 2.0

カレンダー

フリーページ

カテゴリ

(282)

SEO

(144)

金持ち父さん

(640)

生活

(215)

パソコン弄り

(136)

友人

(63)

IT

(160)

飲食

(134)

書評

(14)

My ブログ

(297)

BBC

(7)

健康

(7)

お気に入りブログ

コメント新着

quitada 2.0@ Re:PC のキーボード壊れてた!!(04/03) FKB91JP ですが、その後すぐに上カーソル…
quitada 2.0@ Re:Windows で java スレッドダンプ取得 - 原点回帰編(05/28) .Net で Java でいうところのスレッドダン…
quitada 2.0@ Re:見積もり間違い(11/14) 資産運用はまだするな!お金で失敗しない…
2006年05月28日
XML
カテゴリ:IT
検討編で、Windows にてコマンドプロンプトがでていない状態でスレッドダンプを取得する方法を色々と検討しましたが、どれも一長一短があることが露呈してしまったわけです。

もっとジェネラルな方法はないでしょうか。ということで、原点に立ち返って検討してみます。

そもそも、キーボードから Ctrl + Break を押下すると、所謂 Ctrl-Break シグナルが送信されるわけです。それをうけとった JVM プロセスは、スレッドダンプをはくようになっているわけです。UNIX 系でいうところの SIGQUIT 送信ですね。UNIX 系の場合は、

  kill -QUIT <所定のプロセス ID>

でこれを実現できるので、java アプリケーションを起動したコマンドプロンプト等がなくてもコマンドレベルでスレッドダンプが取得できるわけですね。

つまり、kill -QUIT のような動きを実現するようなコマンドが Windows にあれば、問題提起編検討編でぶちあたった様々な問題が解決するわけで。

ということでありました!

  SendSignal

というツールです。使い方は、

  SendSignal <所定の JVM プロセス ID>

です。これで、指定した JVM プロセスに Ctrl-Break シグナルを送信できて、スレッドダンプをはくわけですね。もちろん、事前に標準出力をファイルにリダイレクトしておく必要がありますが。exe ファイルなので、ダウンロードして PATH の通っているフォルダにおいておくといいですね。

あー、すっきり!






最終更新日  2012年11月02日 06時36分13秒
コメント(6) | コメントを書く
[IT] カテゴリの最新記事

■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。


ちなみに…   quitada 2.0 さん
Windows でプロセス ID を取得するには、tasklist とうコマンドが便利。
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/tasklist.shtml
(2006年06月08日 03時18分57秒)

ナイスサイト!   quitada 2.0 さん
Windows サービス起動でスレッドダンプをとる方法について、グラフィカルでナイスなサイトはこちら。
http://yusuke.homeip.net/diary/2006/09/24/1159032652540.html
(2006年09月26日 00時46分27秒)

Re:Windows で java スレッドダンプ取得 - 原点回帰編(05/28)   ksan さん
プロセスを落とそうとすると下記のメッセージがでます。
Access denied; retrying with increased privileges.
権限ってなにを変更すればよいのですかね?? (2007年02月26日 19時19分11秒)

Re[1]:Windows で java スレッドダンプ取得 - 原点回帰編(05/28)   quitada 2.0 さん
ksanさん
>プロセスを落とそうとすると下記のメッセージがでます。
>Access denied; retrying with increased privileges.
>権限ってなにを変更すればよいのですかね??
-----

JVM プロセスを起動している Windows のユーザーで SendSignal を実行すればいいと思います。

JVM プロセスをサービス起動している場合は、おそらく管理者権限をもつユーザーでログインして、SendSignal を実行すればよいかと思われます。
(2007年02月26日 19時34分14秒)

WLST を使ったスクリプト   quitada 2.0 さん
WebLogic Server でスレッドダンプを採取するスクリプト
http://d.hatena.ne.jp/hnamaizawa/20120422/p1
(2012年04月22日 22時28分46秒)

Re:Windows で java スレッドダンプ取得 - 原点回帰編(05/28)   quitada 2.0 さん
.Net で Java でいうところのスレッドダンプ的なものを取得するツール?C# あたりで役に立ちそう-> Managed Stack Explorer
https://mse.codeplex.com
(2016年03月31日 09時58分23秒)


Copyright (c) 1997-2019 Rakuten, Inc. All Rights Reserved.