[Seasar-user:10341] Re: HotDeploy時のClassPoolのキャッシュについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 9月 5日 (水) 21:30:56 JST


小林 (koichik) です.

Date:    Wed, 05 Sep 2007 02:55:19 +0900
From:    "BABA,Yasuyuki" <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10315] Re: HotDeploy時のClassPoolのキャッシュについて

> 最小構成のプロジェクトを作ってみたので、添付しました。
> http://localhost:8080/leakexample/a.do に何回もアクセスすると、ヒープの
> 使用量が徐々に増えていきます。

サンプルありがとうございます.
PropertyInterType のスーパークラスである
AbstractInterType が持っている ClassPool への
参照をクリアしていなかったことが分かりました.

このため,HOT deploy の最後のリクエストに
使われた HotdeployClassLoader および ClassPool は
GC されていませんでした.

修正版を以下に置いたのでご確認ください.

http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-framework/2.4.18-SNAPSHOT/s2-framework-2.4.18-20070905.122030-4.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-extension/2.4.18-SNAPSHOT/s2-extension-2.4.18-20070905.122030-4.jar

ただし,修正前の状態でも GC されずに残るのは
直前にリクエストされたときの HotdeployClassLoader
および ClassPool だけです.
次のリクエストが来れば,その前のリクエストの
HotdeployClassLoader および ClassPool が GC されます.

繰り返し操作していて OutOfMemoryError になるのは
他にも原因があるのかもしれません.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内