ブログリトライ

初心に戻って運営するブログです

Java

java.lang.OutOfMemoryErrorをcatch

JMSで受けたメッセージを元にビジネスロジックを実行するデリゲートっていうかプロキシ?を実装してて、ビジネスロジック側でOutOfMemoryError出された時にJVMごと異常終了しちゃって困った。。。 とりあえずビジネスロジックを子スレッドとして実行するよう…

POIのバグその後

オートフィルタでも駄目なことが発覚。

POIの怪現象

何か謎な例外が出ると思ったらPOIのバグ?らしいことが判明。以下の手順で再現することがわかった。 エクセルでセルに「入力規則-リスト」を設定 セルにフォーカスをあてて、ドロップダウンリストの「▼」が出たまま保存 ファイルをアップロードする これでHS…

jspのincludeで文字化け

も も駄目だったんだけど で解決ッ!

JSPディレクティブの後に余計な改行を出さない方法

trimSpaces true で、イイらしい。知らなかったーーー

GCの監視

この辺を参考に。2007-07-16 - techlogtomcat5 gcの出力先について - QA@IT

log4jのDailyRollingFileAppenderで時間単位のローテートの不具合?

DailyRollingFileAppenderでDatePatternに「'.'yyyy-MM-dd-HH」を設定することで、時間単位にログファイルをローテートしてくれるんだけど、微妙にファイル名が入れ替わっちゃったりする不具合?が発生。。。。ふぅ。。。現象としてはこんな感じ。 ファイル…

頑健なJavaプログラムの書き方

ちょっと気になる読み物を発見。 サービス提供終了のお知らせ

JDBCコネクションを閉じ忘れた時の対処療法

今回は不幸中の幸い?なのか、java.sql.Connectionをラップするクラスを使ってたから、そいつのfinalize()で閉じるようにしてみた。今のところコネクションプールが足りなくなる現象はどうにか起きない風。おまけに心なしかGCも少しだけ軽快になった気がする…

Apache + Tomcatでハマり中

この現象? 31364 – Missing resource in org/apache/catalina/core/LocalStrings.properties 28909 – ajpGetReply recoverable error 120000

JDBCのStatementとResultSetを明示的にcloseしない時の動き

てっきりConnection、Statement、ResultSetって明示的にcloseしないときちんと解放される事が保障されないと思ってたんだけど、どうやらGC時に自動的に解放されるような記述を発見。 Java2のJavadocに「GC時に自動closeされてる」なんて書かれるようになった…

FindBugsによるコードのチェック

今更ながらこれ結構便利だわ。某サイトのソースをチェックしたところ、結果はヒドいもんだった。。。まぁ薄々感づいてはいたんだけどね。。。コネクションの開放漏れだけにとどまらず、不要な変数やら、無駄な分岐やら、出てくる出てくる。これ全部直したら…

コネクションプール使用時の解放もれ

某サイトで解放もれが原因のメモリー不足が発生してる模様。根本的にソースを直す以外に良い方法が無いか探してるんだけど、根本的に直さないとダメっぽい。。。せめてDBCPの辺りでどうにかできればなぁ。。。とりあえずbeaのサイトに出てるConnectionをちゃ…

Tomcatのチューニング

とはいっても起動オプションを -server -Xms512M -Xmx1024M にしただけ。本当は実メモリーの使い具合を監視したりしながらもっとつめられるとイイんだけど、時間も無いことだしとりあえず暫定対処。しかし、これだけで遷移が体感3割は高速化された。