今日の早耳ムスメは南明奈ちゃん,お題は「絶対おいしい!! 人気の冷たい麺」. 特にどうという事もなく... そういえば昔,石田香奈ちゃんの時はいつもこんな調子だったなぁ. http://d.hatena.ne.jp/t-katochin/20060623/1151082516 の最後で指摘されてるように,Tomcat 上で S2AOP を使うとリロードされても S2Container が GC されず,メモリ不足で例外が発生する場合があります. この現象は以前から聞いてはいましたが,きっちり調べることはしていませんでした. 理由は 運用環境でリロードなんてあり得ない. 開発/テスト環境では Tomcat を再起動すればいい ということで,致命傷になるとは考えていなかったためです. が,しかし. 某巨大掲示板でも困ってるという人がいるので調べてみました. まず,かとちんご指摘の循環参照につい
ほとんど個人的な備忘録。 log4jレベルだとは予想してましたが、如何せん、log4j.propertiesの書き方を忘れてるよ。。。 orz とりあえず、FAQ/S2DAO - SeasarWikiの情報を基に、以下の内容をlog4j.propertiesに追記することで対応。 log4j.category.org.seasar.extension.jdbc.impl=DEBUG, S log4j.additivity.org.seasar.extension.jdbc.impl=true log4j.appender.S=org.apache.log4j.DailyRollingFileAppender log4j.appender.S.File=${catalina.home}/webapps/test/WEB-INF/logs/sql.log log4j.appender.S.Da
本当は「org.seasar.extension.dbcpを除外」というように指定したいのですが、 わからないので、とりあえず他で大事なログを吐いているところを羅列。 (RootLoggerは指定しません) log4j.logger.org.seasar.framework = ALL, console, daily log4j.logger.org.seasar.extension.jdbc = ALL, console, daily log4j.logger.org.seasar.extension.jta = ALL, console, daily log4j.logger.org.seasar.extension.tx = ALL, console, daily log4j.logger.org.seasar.dao = ALL, console, daily ※「console」
ある基幹システムを、Tomcat+Postgres+Tapestry+Seasar2+S2Tapestry+S2Daoの構成で開発したが、数日間連続稼動していると、パーマネント領域(以下Perm)がジワジワと減っていくという現象に悩まされている。Tenuredは十分ありGC/FullGC時の下限の平均は100MB前後に落ち着いている。にも関わらずPermは減るのだ。ヒストグラムを取ると判別可能クラス数は減っている時間帯でも、判別不可能クラス数は増加している。 ヒストグラムで取得できるクラス名を便宜上、判別可能クラス、判別不可能クラスという言い方にしている。判別可能なのはクラス名称が明らかなもの。javaasistによりEnhancedされたものも、AOPアライアンスでEnhancedされたものも判別可能としている。これに対してリフレクションによる、sun.reflect.Generated
Seasar2のDIコンテナを使用したWebアプリケーション開発プロジェクトに関わっているのですが、 最近、ローカル環境でうまくいく(=HotDeployで問題なし)けど、サーバに乗せて実行する(=CoolDeploy) と問題が発生するパターンの問い合わせが増えました。 メンバーへの教育が徹底されていなかったり、習熟レベルの相違が多少なりともありますので、 そういった場面にまったく遭遇しないメンバーもいます。 メンバーのSeasar2プロダクトの教育は、もっぱら自習が主になっていて、もちろん開発規約や サンプルなどは提供していますが、基礎部分については本をプロジェクトで購入したり、 集合研修を受講したりということを積極的には行っていないので、どうしても知識にばらつきがあります。 今は地道に資料作成をして、開発者に回覧するくらいですね。 さて、最近発生した事例では、HotDeployでは問
今日はまったところ。 Seasar2では、Servlet内で起動したThreadからSessionスコープのコンポーネントを利用できません。(Seasar2.3.22で確認。) 原因 HttpSessionの取得先であるHttpServletRequestをThreadLocalで保持しているのが原因。Servletを実行するThreadでは、ServletFilterでHttpServletRequestが設定されますが、Servlet内で起動したThreadでは設定してくれる人がいないため、コンポーネント作成時に以下のようなエラーになります。 org.seasar.framework.exception.EmptyRuntimeException: [ESSR0007]sessionはnullあるいは空であってはいけません at org.seasar.framework.contain
コネクション、トランザクション、SQLのログをLog4jで出すのにrootでログレベルをdebugにしてたんだけど、余計なものが大量に出力されたので調べてみた。 コネクション(物理的、論理的)取得 org.seasar.extension.dbcp.impl.ConnectionPoolImplコネクション(物理的、論理的)開放 org.seasar.extension.dbcp.impl.ConnectionWrapperImplSQL出力 org.seasar.extension.jdbc.impl.BasicHandlerトランザクション、コミット、ロールバック org.seasar.extension.jta.TransactionImplこれらのクラスをLog4jに記述すればそれぞれが出力される。 ログレベルはdebugなのでdebugを指定。 最初rootでやってたときにinf
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く