WebLogic Server でスレッドダンプを採取するスクリプト


(2012/4/25追記) HotSpot 環境で以下の手順によりスレッドダンプを採取しても 侍 や ThreadLogic では解析できない出力形式となるため、この手順は JRockit 環境でご利用ください。


必要に迫られて WebLogic Server でスレッドダンプを採取するスクリプトを作成してみました。利用手順は以下の通りです。


1. 以下のような内容で threadDump.py と言う名称の WLST(WebLogic Scripting Tool) のスクリプトファイルを作成します。

connect('weblogic','welcome1','t3://localhost:7001')

import time
import traceback

while(true):
    try:
        threadDump(writeToFile='false', serverName=InstanceName)
        time.sleep(10)
    except:
        print "<<>>"
        traceback.print_exc()
        break

(補足1) ブログ表記の都合上、空白文字にしましたがスクリプトのインデント部分はタブ文字を利用してください。
(補足2) 管理サーバの URL、管理ユーザ名/パスワードは適宜変更してください。


2. threadDump.py を実行する threadDump.cmd と言うスクリプトファイルを作成し、DOMAIN_HOME 環境変数を適宜設定します。

@ECHO OFF
SETLOCAL

set DOMAIN_HOME=\user_projects\domains\<ドメイン名>
call "%DOMAIN_HOME%\bin\setDomainEnv.cmd"
    
java weblogic.WLST -loadProperties %1 threadDump.py > %1_dump.txt
        
ENDLOCAL

(補足3) Unix 環境の場合は上記内容を参考に適宜作成してください。


3. 以下のような感じでプロパティファイルを用意し、スレッドダンプ取得対象のインスタンス名を指定します。

(例1) 管理サーバ用プロパティファイルの設定例
- ファイル名 : AdminServer
- インスタン名 : AdminServer

InstanceName=AdminServer


(例2) 管理対象サーバ用プロパティファイルの設定例
- ファイル名 : ManagedServer
- インスタンス名 : node1

InstanceName=node1

4. コマンドプロンプトから以下のようにスクリプトを実行します。

threadDump.cmd <プロパティファイル名>


(例1) 管理サーバのスレッドダンプを採取する場合

threadDump.cmd AdminServer


(例2) 管理対象サーバのスレッドダンプを採取する場合

threadDump.cmd ManagedServer

5. 10秒間隔でプロパティファイルで指定したインスタンスに対するスレッドダンプが <プロパティファイル名>_dump.txt と言うファイル名で出力されます。


6. スレッドダンプの採取を終了するには Ctrl + C を実行します。


7. 採取できたスレッドダンプは、侍 や ThreadLogic を用いることで簡単に分析することが可能です。


・侍
http://yusuke.homeip.net/samurai/ja/


・ThreadLogic 原文紹介
https://blogs.oracle.com/ATeamExalogic/entry/introducing_threadlogic


・ThreadLogic 日本語の紹介
http://orablogs-jp.blogspot.com/2012/02/introducing-threadlogic.html


・ThreadLogicダウンロードページ
http://java.net/projects/threadlogic/downloads


ThreadLogic では WebLogic Server の各スレッドの状態をカテゴリ分けしたり、気にしなくても良いステータスであるかなどを分り易く表示してくれます。

また、複数のスレッドダンプを選択し diff を実行することで各スレッドの状況に変化があるかどうかを簡単に確認することができます。

このスクリプトを利用して WebLogic Server の障害解析作業が少しでも楽になれば幸いです。

これからは分析系エンジニアの時代でしょうか

最近、Big Data というキーワードが注目されているので久しぶりにブログを書きたくなりました。

以前、今後はデータを駆使して有益を上げるようなソリューション提案ができるエンジニアが必要になると考えて BI ベンダーへ転職したのですが、その時に分析スキルは一長一短で身につくものではなく、また、導きだした分析結果を評価するためにはそれ相応の業務経験も必要となるためとてつもなく大変な仕事だなと感じました。

こちらの記事SAS さんが Big Data 時代にはちゃんと分析できる基盤が重要となると説明されていますが、昔から言っている内容と殆ど変わりはないですね。逆に言うと昔からブレてなく時代が追いついたという感じでしょうか。

また、こちらの記事では昔 MIT では DB 関連の研究室が人気だったが、今は統計などが人気になっていると紹介されています。

これらの記事を読むとこれからはシステム開発が得意な Java 系エンジニアではなく既存データから知識を抽出する事が得意な分析系エンジニアが主流(エンジニアの総数が爆発的に増えると言うよりも高待遇の職種となっていくイメージですが)になっていくような気がしました。

数年前の自分の決断は正しかったような気もしますが、現在は Java 系エンジニアに戻ってしまったので後の祭りですかね…。(^o^;

シアトル旅行の写真を整理してみました

先日のシアトル旅行の時に撮影した写真を整理してみました。

以下はニルバーナのアルバム Nevermind のジャケットのコンセプトが実現されたプロトタイプの絵の写真です。未だお札の絵がないですね。

https://picasaweb.google.com/113437392429918255934/2011_Seattle


個人的には Experience Music Project と言う音楽系ミュージアムで久しぶりにいろいろな楽器に触れることができてかなり面白かったです。

ボストン旅行の写真を整理してみました

今さらですが今年の4月のボストン旅行の時に撮影した写真を整理してみました。

元々、ボストンはお茶屋さんが多かったらしく、以下の写真ではその名残で大きなヤカンが飾られているビルに入っているスターバックスです。

https://picasaweb.google.com/113437392429918255934/2011_Boston#


個人的にはいろいろと興味深いものが展示してあった科学博物館がかなり面白かったです。

機械っぽいナレーションで説明する Solaris の歴史を説明する動画

技術的に突っ込んだ内容ではありませんが、音声合成ソフトがしゃべっているようなナレーションで Solaris の歴史を説明している動画がありました。


他にも Solaris 11 Express をスター・ウォーズっぽく説明している動画がありました。


やはり、Unix 好きエンジニアとしては Linux ではなく Solaris に頑張ってもらいたいですし、日常使うマシンの OS は Solaris が良いです。でも今は OS を切り替えるだけの余裕がないので、会社が許しても Solaris に乗り換えることはないと思いますが…。(^o^;

ロンドン旅行の写真を整理してみました

今さらですが昨年のロンドン旅行の時に撮影した写真を整理してみました。相変わらず風景写真ばかりで面白味が全くありませんが…。


以下の写真はテートモダンの『ひまわりの種』です。

https://picasaweb.google.com/hnamaizawa/2010_London#


少しですが写真にコメントをつけさせて頂いたので旅行の際などに参考になれば幸いです。

あと、個人的にはテートモダンとカムデン・ロックが気に入りました。

『イチローの哲学』を読んでみました

文化的生活にシフトするために今日は『イチローの哲学』という書籍を一日で読んでみました。

元々、野球好き、かつイチロー選手好きのため、タイトルが気になって読み始めましたが、著者の奥村さんがこれまで野球に関わりながら経験してきたことを人生の教訓として分かり易く熱く説明されていたので一気に読み終えることができました。

イチローの哲学―一流選手は何を考え、何をしているのか

イチローの哲学―一流選手は何を考え、何をしているのか

野球でも仕事でも『自分の生きる道』を常に考えて自分しかできないようなスキルを向上したり、現在の自分がいる立場から何を学べるかを常に意識する事が重要と説明しているところが凄く印象に残りました。

仕事でも何でも指示待ちで動くのではなく、常に自分から考えて行動する事が大事なことを再認識させて頂きました。

最近は愚痴ばかりつぶやいている自分を少しだけ反省しました。しかし、愚痴は止まらないと思いますが・・・。(^o^;