java
GCログの-XX:+PrintGCTimeStampsは起動時からの経過時間を行頭に付与する。最近のVMだと絶対時間を吐いてくれる-XX:+PrintGCDateStampsが使えるけど、前者しか付与されていない相対時間のGCログを解析する機会も結構ある。というわけで相対時間を絶対時間に…
GroovyでEJB作成は辛い、でなにがどうなっているのかの解説。 Exception while loading the app : EJB Container initialization error javax.ejb.EJBException: Illegal non-business method access on no-interface view at megascus.javaee6groovy.__EJB3…
資料はJavaOne Tokyo 2012 セッション資料からダウンロードできますが、どちらかというと口頭でしゃべっている部分が多かったです。ユースケースやJSR-347 Data Grids for Javaとか。Togetterはこちら。Oracleの寺田さんとの共同セッションということで、特…
自分で喉に指突っ込むみたいなアレですが、メモリリークの単体テスト書いててこのタイミングでヒープダンプ取りたいなー、というユースケースがあったので。 String heapDumpFilename = "heap.bin"; boolean liveOnly = true; MBeanServer server = Manageme…
Java Advent Calendar 2011とJBoss Advent Calendar 2011の28日目のエントリです。タイトルはMySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011のパクリです。素晴らしいエントリですね。このエントリでは対象をJBossとJava V…
「昨日JBossの応答が非常に悪くなったので再起動しました、GCログは取ってませんでした、原因調査お願いします」というような相談を受けたとき、まあ大体GCが犯人なんだけど、GCログないのでGCログ有効化して再現待ちましょうね、というのが普通の着地点。で…
オプションで指定するファイル名に日時を入れましょう。この方法は標準出力のリダイレクトなんかにも応用できる。 -Xloggc:/path/to/gc.log.`date +%Y%m%d%H%M%S`意外に知られていないというかちゃんと保存しないで上書きしてて残念なことになっているケース…
「エラー出力されているので調べてください、利用しているJBossのバージョンはAです」と言って渡されたスタックトレースに含まれている行番号がJBossのバージョンAのソースコードと合致しない、というようなことがごくまれにあります。とても不思議ですね。…
さて、第1回JVMソースコードリーディングの会(OpenJDK6)もあることですし、OpenJDKのソースに手を入れたりコンパイルオプションとか変えてビルドしたいなぁ、とか思いますよね。というわけで一つOpenJDKビルド用サンドボックスとなるFedora 14環境を用意して…
java-ja忘年会でharu860さんに聞かれたのでエントリを書くよ。と思ってざっくり書いて放置していましたすみません。この質問へのよくある回答として「EJBを使うとき」みたいなものがありますが、この回答は多くの場合何の役にも立ちませんね。このような回答…
クリスマスも近いですね。さて、クリスマスといえばどういうわけか黒魔術への需要が一気に高まる時期のようですので、Java Advent Calendar -ja 2010の12月20日はJavaの黒魔術をお送りします。昨日はid:celitanでした。今日紹介する黒魔術はバイトコードイン…
この記事は古い情報です。EmacsでJavaを書くという話 - Qiitaを参照してMaghanadaを利用してください。日常的にJavaを書く人たちのたぶん99%くらいはEclipseかNetBeansかIntelliJ IDEAといったIDEを利用しているであろうと思われる現代において今日も元気にE…
自分のローカルにあるjp.programmersパッケージになっているサンプルコードとかのプロジェクトをcom.redhat.jbossパッケージとかにリネームしてお客様に渡したいなー、というケースがあったのでシェルスクリプト書いた。 #!/bin/sh # Usage: ./repackage.sh …
わかる!JavaVM — 2時間でわかる?JavaVM入門 : ATND主催のゆるよろさん、会場提供のOracleさんありがとうありがとう! 発表スライド http://www.slideshare.net/nekop/classloader-leak-patterns 利用したソースコード http://github.com/nekop/sandbox/blob/…
OutOfMemoryErrorが発生してもスレッドを異空間に葬るだけでJava VMはそのまま動き続ける場合があるけど、当然ながら状態に一貫性のない状態で動いている可能性があるわけで基本的にはとっとと死んで欲しいわけである。一般的に言うところの「不定」状態。OO…
自分がJBoss ASでよく利用するJVMオプションのリスト。チューニングのベースでもある。 -server -Xmn256m -Xms1024m -Xmx1024m -XX:PermSize=256m -Xss256k -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -X…