[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 メーリングリストの案内