谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

2008-06-01から1ヶ月間の記事一覧

ENdoSnipe 3.4リリース

先週の金曜日に、ENdoSnipeの製品発表会を行ないました。 ありがたいことに、IT系ニュースサイトでも取り上げて頂いております。 8年蓄積したノウハウをパッケージ化して一般発売開始、エスエムジー 3つの機能でJavaトラブルを“見える化”するツール -- @IT S…

問題を絞り込めてきました。

やっぱり、SAStrutsにBTraceが刺さらない問題の原因は HSQLDB云々ではなく、BTraceが生成するクラスのようです。 Listのaddをフックしてみるシンプルなスクリプトを書きました。 import static com.sun.btrace.BTraceUtils.*; import com.sun.btrace.*; impo…

オープンソースを盛り上げるのはプラグイン

As always, what makes an open source product really interesting is its plugin architecture and the catalog of additional features it brings. http://blogs.sun.com/alexismp/entry/visualvm_btrace_and_glassfish なんかね、当たり前のことなんだけ…

dumpしたクラスファイルをClassLoadしてみた。

btraceのdumpオプションを有効にして出力した.classファイルを Javaでクラスロードしてみました。 import java.io.File; import java.io.FileInputStream; public class LoadClass { public static void main(String[] args) throws Exception { File file =…

dumpされたクラスにjavapしてみた。

dumpClassesオプションをtrueにして SAStrutsのサンプルにBTraceを掛けると Tomcatのbinに「org\hsqldb\jdbc」ディレクトリが出来て、 その中に「jdbcConnection.class」が出来上がります。 早速、このクラスに対してjavapを掛けてみると java.io.EOFExcepti…

デバッグオプションがありました。

仕方ないのでBTraceのソースをCVSから取ってきてチョコチョコ見てたら debugオプションがありました。 btrace.batを見ると、以下のようなオプション指定が見つかります。 -Dcom.sun.btrace.dumpClasses=false -Dcom.sun.btrace.debug=falsedumpClassesオプシ…

BTraceの問題解決のためにBTraceを使おうとして撃沈。

BTraceの問題をBTraceで解決しようと息巻いて、 sun.instrument.InstrumentationImpl.retransformClasses にBTraceを掛けようとしたのですが、ダメでした。 1. BTrace → Tomcat BTraceにretransformClassesへのフックを追加で書いたのですが タイミングの問…

SAStrutsのサンプルにBTraceが刺さらない問題は、javaagent指定でも無理。

btraceコマンドのオンデマンドアタッチが悪さして エラーが出てるんじゃないかと推測して、 Tomcatの起動オプションに-javaagentでBTraceを指定して 起動してみたのですが、出てくるエラーは変わらず。

なんか問題が発生し始めました。

BTraceの実践的な使い方は、作者のblogで紹介されています。 BTrace in the real world -- A. Sundararajan's Weblog これを動かそうとした所、コンパイルエラーが発生して正常動作しませんでした。 以下のような修正を行なったところ、コンパイルエラーがな…

@OnMethodは正規表現が使え、アノテーションも対象にできる

BTraceクラスの実行タイミングを決めるためには、 実行メソッドに @On から始まるアノテーションをつけておきます。 一番使われることが多いのは @OnMethod でしょう。 @OnMethodでは、クラス名、メソッド名を指定できますが、 ユーザーガイドによれば スラ…

なんか問題が発生し始めました。(cont'd)

HSQLDBのJDBCドライバを使って、簡単なSQLを実行するコードを自前で書いて動かし、 そこに上のJdbcQueries.javaを刺してみた所、問題なく動きました。 とすると、java.sqlに刺すことができないのではなく、 何か特定の実装との相性が良くないみたいですね。

キモはBTraceUtils

なんだよ、制限多すぎじゃないか、ガッカリだ。 なんて思われるかもしれませんが、というか僕も思いましたが、 それを覆すだけの力を持っているのが、BTraceのライブラリ、BTraceUtilsです。 BTraceUtilsは、唯一BTraceから呼び出す事の出来るライブラリで、…

BTraceの制限事項

BTraceは、メソッドのIn/Outや、エラー発生時、あるいは定期実行など いくつかのタイミングで、処理を埋め込む事ができる、とても便利なツールです。 しかも流行りの(しかしググっても全然ヒットしない)オンデマンドアタッチと BCIを使っているので、アプ…

btracecコマンド

https://btrace.dev.java.net/source/browse/btrace/docs/usersguide.html?rev=1.1.1.1 BTraceのUser's Guideによると、 btraceコマンドは、引数のファイル名の拡張子が「.java」なら その場でコンパイルを行なって、実行してくれるようです。 上のエントリ…

はじめようBTrace

BTrace means best trace -- よねのはてな くっそー! ということで、まずはBTraceを動かせる所までを紹介します。 https://btrace.dev.java.net/ ここからBTraceのバイナリをダウンロードして解凍します。 解凍後、取り回しやすくするために、 binディレク…

BTraceは目が離せなくなりそう。

JavaOne2008で、一番行きたかったセッション。 それが [BOF 5552]BTrace: Java Platform Observability by Bytecode Instrumentation でした。 いやほら、僕とかってS2Javelinコミッタじゃないですか。 多少はコミットしてるし、合宿とかでもコード書いてる…

OpenSolarisをDell XPS M1330で使う(解像度あわせ)

先日のJavaOne報告会で、 プロジェクタにOpenSolarisの画面を映せなかった、 なんてトラブルがあったのですが、 その翌々日に、同僚から「xrandr使うんだよ」と教わりました。 ということで、xrandrコマンドをお勉強しながら触ってみる (^^; xrandr 接続でき…

ヤマダ電機が安い

あまり話題にはなってないようですが いまヤマダ電機でSoftBankにMNPすると 15%のポイントがつきます。 一括じゃなきゃポイントがつかない店が多いなか 割賦で購入してもオッケーで、しかもスパボ適用前の金額にポイントがつきます。 つまり、約10万円の15%…

インターネットマシン買いました

ディズニーランドに来てるんですが、夕方にホテルに引き上げて 気絶して、気づいたらヤマダ電機のSoftBankコーナーで インターネットマシン922SHに機種変してました。 いいですね、これ。 レスポンス良いし、軽いし、結構打ちやすい。 もちろん、このエント…

トラシューのメルマガはじめました

エスエムジーの亀田大輔氏(オブジェクトフレームワークディヴィジョン エンジニアリングクリエータ)は,「JaTSのサービス提供を通じて,Javaアプリケーションのトラブルで困っているITエンジニアが多いことを実感した。同じITエンジニアとして,トラブル解…

だからアノテーションはやめろとあれほど

言ってませんけどね。 JSR-315ではServlet3.0の仕様を定めており(中略) 設定なしに接続可能にする、という目標を達成するために、この仕様では以下のような新しい仕様を提案している。 1. 追加アノテーション: (中略) 2. web.xml フラグメントのサポート: (…

OpenSolarisでDTraceの可視化ツールD-Lightを動かそう! 補足編

、、、という手順で一通り動いたかと思います。 ただ、なぜか、いまの私の環境では、 メソッド呼び出しと、オブジェクト生成の片方しか DTraceで取得できなくなっています。 先のHotSpotエラーの件を含め、私もあまりよく調べてないのですが(おいおい) 引…

OpenSolarisでDTraceの可視化ツールD-Lightを動かそう! その5 (D-Light)

これで全ての準備が整いました。 さぁ、D-Lightをはじめましょう!(インストール直後の画面の翻訳風) $ /opt/SunStudioExpress/bin/sunstudio/ これでSun Studio Expressが起動します。 Sun Studioが起動したら、メニューの「Tools」から「D-Light Tool」…

OpenSolarisでDTraceの可視化ツールD-Lightを動かそう! その4 (みそれん)

ところで、DTraceを利用するのは良いとしても、 トレース対象のアプリケーションを用意しなければいけません。 Javaを使ったアプリケーションであれば、何だって構わないのですが、 ここでは、JavaOne報告会でも使った「みそれん」を試しましょう。 みそれん…

OpenSolarisでDTraceの可視化ツールD-Lightを動かそう! その3 (DTraceの設定)

さて、続いてはDTraceを動かすための設定をしましょう。 DTraceを動作させるためにはroot権限が必要になりますが、 いちいちsuするのも面倒ですから、 各ユーザにDTraceの実行権限を与えておくと良いでしょう。 $ su - # vi /etc/user_attr これで開いたファ…

OpenSolarisでDTraceの可視化ツールD-Lightを動かそう! その2 (開発環境)

OpenSolarisをインストールしたら、次はJavaとSun Studio Expressのインストールです。 DTraceは最初からOpenSolaris本体に組み込まれているため、インストールの必要はありませんが D-LightはSun Studio用のプラグインであるため、これらのインストールが必…

OpenSolarisでDTraceの可視化ツールD-Lightを動かそう! その1 (OpenSolaris)

昨日はこどもの国から帰国(?)した後、ぐっすりと寝てしまったので、 お伝えできませんでしたが、気を取り直して、、、JavaOne2008報告会懺悔シリーズ! OpenSolarisのインストールから、Sun Studio Express上のD-Lightで DTraceをビジュアル化する所まで…

JavaOne2008報告会

ごめんなさい、ごめんなさい、ごめんなさい、 DellのXPSに入れたOpenSolarisが、プロジェクタでは映りませんでした(><) そのため、肝心のOpenSolaris + DTrace + D-Lightのデモが出来ず。 なので、デモするまでの手順をここに書きます。 ちょっと今日は…