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

Quitada ブログ RX

Quitada ブログ RX

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

キーワードサーチ

▼キーワード検索

プロフィール

quitada 2.0

quitada 2.0

カレンダー

フリーページ

カテゴリ

(284)

SEO

(144)

金持ち父さん

(640)

生活

(215)

パソコン弄り

(136)

友人

(63)

IT

(160)

飲食

(134)

書評

(14)

My ブログ

(297)

BBC

(7)

健康

(7)

お気に入りブログ

古い屋外用照明器具… New! doziさん

🌷新作「三姉妹 (34)… New! 神風スズキさん

3年で3億円にする… genkiman21さん
人生は”心の旅” DORAMUSUKOさん

コメント新着

quitada 2.0@ Re[1]:トラックボールの新顔 - SlimBlade Trackball(03/27) 壊れた SlimBlade だけど、右ボタンのスイ…
quitada 2.0@ Re:トラックボールの新顔 - SlimBlade Trackball(03/27) SlimBladeが発売されてから10年以上たつけ…
quitada 2.0@ Re:トラックボールの新顔 - SlimBlade Trackball(03/27) 2010 年 12 月 16 日に結局 quitada もこ…
quitada 2.0@ Re:デスクトップ PC の無線 LAN 化(07/13) ZOTAC の ZTGTX740-2GD3R01 はヤフオクに…
2006年05月27日
XML
カテゴリ:IT
問題提起編で、Windows で java アプリをサービス起動した際に、スレッドダンプをどうやって取得するか?というテーマをうちたてました。

スレッドダンプを取得するため Ctrl + Break が押せないのなら、何らかのツールでスレッドダンプをとればいいわけです。ということで、様々なツールを検討してみましょう。

<サーバサイドアプリケーションインフラ付属ツール>
スレッドダンプはどういときとりたいかというと、java で動いているサーバサイドアプリケーションでハングとかスローダウンが発生し、原因を究明したいときです。で、サーバサイドアプリケーションを動かすインフラといえば、Java2 EE/Java EE系のミドルウェアですね。例えば、IBM の WebSphere Application Server とか BEA の WebLogic Server、オープンソース系だと JBoss とか Tomcat とか。そういうのには、スレッドダンプを取得するツールが付属していることがあります。そういった java 系ミドルウェアを使っているのなら、そういったツールを使うといいでしょう。ベンダ製であれば、サポートしてくれるし。

でも、それ以外の用途では使えないのがデメリットとしてあげられますね。つまり、Java EE 系のミドルウェアを使わずに、自分で作った java アプリケーションではそれらのツールを使ってスレッドダンプ取得といったことができないわけです。

<Java 仮想マシン付属ツール>
Java アプリケーションを動かすには、現状 java 仮想マシン(以後、JVM)が必要ですが、JVM をふくむ開発キット(以後、JDK)にスレッドダンプを取得可能なツールがついていることがあります。

JDK でもっとも有名でかつ事実上の標準となっているのは、Sun 社のものですね(以下、Sun JDK)。GUI 系だと jconsole でスレッドダンプがとれますね(こんなイメージ)。CUI 系だと、jstack を使うとそれっぽいのが取得できます。でも、jconsole は J2SE 5.0 から、jstack の Windows 版は JSE 6.0 でないと使えないです。

スレッドダンプを取得して解析が必要な java アプリケーションといえば、多くはハングとかスローダウンが直接影響する企業向けアプリケーションです。この分野では、実際のところ J2SE 1.4.2 が未だに主流であり、ようやく J2SE 5.0 が使われだしてきたところです(2006 年 5 月現在)。JSE 6.0 はそもそもまだβの段階なので実用段階にもないです(2006 年秋正式リリース予定)。そういった意味では jconsole や jstack は、実際のところ使えないということになりますね。

Sun JDK 以外で、J2SE 1.4.2 ベースの JDK でスレッドダンプが取得できるツールを提供しているものもありますが(例えば、BEA JRockitjrcmdコマンドリファレンス)とか JRockit 管理コンソールとか)、その JDK でしか使えないというデメリットがありますね。

#ま、jconsole とか jstack も Sun JDK でしか使えないですが。

  *  *  *

なんだか、どれも一長一短という感じですねぇ。もっとジェネラルな方法はないのか?ということで、次回最終回「Windows で java スレッドダンプ取得 - 原点回帰編」で最終結論に至る!?





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2006年05月27日 18時27分16秒
コメント(0) | コメントを書く
[IT] カテゴリの最新記事



© Rakuten Group, Inc.