Hatena::ブログ(Diary)

marsのメモ RSSフィード Twitter

2009-02-11(Wed)

J2SE5.0_HOTSPOT_MEMO

ここ数年ほどJVMチューニングとは無縁な生活を送ってきたのだけれど,ちょっと気になるこの一文。

Default garbage collectorの変更

サーバクラスのマシン、且つサーバVMを実行している場合、

1.5.0以降1.4.2まで
-XX:+UseParallelGCがデフォルト-XX:+UseSerialGCがデフォルト

となった。上記 switchの明示的な指定で変更可能。

Default garbage collectorの変更

なんですと? JDK1.5.0からってパラレルコレクタがデフォルトなんすか!?さらに読み進めると「-XX:+UseAdaptiveSizePolicyがデフォで有効になる」って書いてるし。1.4.2時代は,このオプションが役に立った思い出ないんだけどな。今は違うんかね。

#パラレルコレクタがデフォになったってのは,ここでも見つけたからホントウなんだろう。

#→Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle


あたしの記憶が正しければ,パラレルGCんときは-XX:TargetSurvivorRatioが言う事きいてくんなかったと思ったけどなぁ。ちょっとヤなこと見つけちゃったかも。ん?でも強制的にシリアルGC指定しとけばいいんか??ヒマがあったら試してみたいけど,手間がかかるの分かってるから,多分やんない。

求む,詳細情報っ!! :-)


そんなに何を気にしているかというと,たとえばJDK1.4.2からJDK1.5.0以降にマイグレーションしたとしよう。JDK1.4.2用にチューニングしたJVMオプションをそのまま使ってもJDK1.5.0以降では有効に働かないものがありそうだよって事ス。何でか言うと,デフォルトコレクタが変更になったから。

でも,よくよく考えてみれば,JDK1.5もEOL迎えてんのに,こんなこと見つけたって騒ぐほどのもんでもないか...。

Remote APIが返すURLにHUDSON URLが適用されてないように思える

というのを原因突き詰めてバグレポしようと思ったのですが,途中で力尽きました。


えーとですね,Hudson v1.282,FreeStyleProjectの話です。winstoneでもTomcatでも良いんですが,自分のPC上にHudson立ち上げて,トップページのRemote APIを叩きます。たとえば,http://localhost:8080/api/xmlとか。


すると,戻り値の/job/url要素には,こんな値が返ってきます。

<url>http://localhost:8080/job/sampleJob/</url>
            ~~~~~~~~~~~~~~

ちなみに,このホスト名部分,http://127.0.0.1:8080/api/xmlとかhttp://masanobuimai-mac:8080/api/xmlとかすると,そのホスト名がそのまま/job/url要素に含まれて返ってきました。


つまり,Hudsonの設定画面でHUDSON URLを設定してもRemote APIのこの部分には適用されないようです。

RSSのURL部分には,この値が反映されています。

f:id:masanobuimai:20090210193217p:image


一応,この設定値がHudson.getRootUrl()で取れる事。Remote APIHudson.getApi()経由のApi.doXml()あたりまで追って挫折しました。ハイ,単に根性無しなだけデス。orz


なぜ,そんなことに気づいたかというと,Trac Lightningが mod_proxy使って Apache -> winstone(Hudson)連携をしていて,ここでRemote API叩いたら先のような現象に出くわしたという次第です。

Remote APIのxpath=, exclude=引数の使い方が分かった

ケガの功名というかなんちゅうか,Api.doXml()のソース読んだおかげで,xpath=とexclude=の使い方がわかったよ。

ポイントは,こんなもんかね。

  • XPath式には,"/hudson/..."みたいにルート要素も指定する。
  • exclude=は複数指定できる。
  • exclude=を指定した場合,xpath=も指定しないとエラーになる(仕様というかバグっぽい?)

XPath式はぜんぜん詳しくないからアレだけど,これって減算式でフィルタかけてくみたいね。たとえば「/hudson/job/color要素の値が'blue'だけの/hudson/jobの一覧」みたいな指定って出来ないのかな?...なんとなく出来なさそう。

あと,xpath=で指定するXPath式は「ひとつの特定ノード以下を取得」って理解してる。


ps.

ちょっとだけXPath式が便利に思えた。でも覚えるのメンドクサイ。:-(

Trac Lighting付属のHudsonをCI以外の目的で使ってみる - almost nearly dead

本来のHudsonの使い方とは異なりますが、実行結果の確認とbatファイルの管理がHudsonで集中管理できるのは運用面での大きなメリットになります。

簡単に言うと「やらなきゃハドソン」って感じですw

あー,その気持ちよくわかります。あたしもPostgreSQLのバックアップをHudsonにやらせてます。バックアップファイルをアーティファクトに指定しておくと,なにかと便利だったりしますよ。


ここら辺のプラグインなんか,ビルド以外にも使えますね。

Java.net Maintenance outage

今日はHudsonネタばっかだな。


v1.281から「--daemon」オプションがついたんだって。もうnohupとか要らないね。

しかしHudon,とてもJavaのWebアプリとは思えなくなってきたな。


Javaのプログラムをデーモン化するライブラリも川口さん作です。この人の飛び抜けっぷりは留まる事を知らないようデス。

#みんな,ライブラリ名には触れるなよ。:-)

no title

ssogabessogabe 2009/02/12 22:00 Remote APIですが、XMLの<url>はAbstractItem#getAbsoluteUrl()だと(おそらく)思いますが、

@Exported(visibility=999,name="url")
public final String getAbsoluteUrl() {
StaplerRequest request = Stapler.getCurrentRequest();
if(request==null)
throw new IllegalStateException("Not processing a HTTP request");
return Util.encode(request.getRootPath()+'/'+getUrl());
}
という感じで、リクエストからホスト名等を取得するようです。ここを修正すればいいような気がします。

masanobuimaimasanobuimai 2009/02/12 23:05 おー,ありがとうございます。週末あたりちょっとソース覗いてみます。

kkawakkawa 2009/02/13 16:13 名前、ダメでしたか。honchoとかgeisyaみたいに日本語の名前が外人に受けるかと思ったんです。ほんとすいません。

masanobuimaimasanobuimai 2009/02/13 21:35 まさかぁ,ダメなわけない。:-)
川口さんのネーミングセンス,結構好きですよ。Animal Snifferとか。

カレンダー
2003 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 03 | 04 | 05 | 06 | 07 | 09 | 11 | 12 |
2015 | 03 | 05 |
2016 | 01 | 02 | 04 |
2017 | 05 |