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

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 9月 6日 (木) 14:00:06 JST


小林 (koichik) です.

Date:    Thu, 06 Sep 2007 03:07:51 +0900
From:    "BABA,Yasuyuki" <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10345] Re: HotDeploy時のClassPoolのキャッシュについて

> ただ、ヒープ使用量が最大値近くにならないと GC が発生してもなかなか開放さ
> れず、早いタイミングで何度もリクエストが来た場合には、GC が間に合わずに
> OutOfMemoryError が発生しているようでした。

こちらで確認した限りではあっさりと GC されます.
なかなか解放されないのは,その間に何らかの
参照が残っているのではないでしょうか?

> ClassPoolUtil#classPoolMap の値(ClassPool)を弱参照にしたり、HotDeploy終
> 了時にエントリを削除したりした場合は、GC が発生したときにはヒープ使用量
> が最大値近くになっていなくても ClassPool のインスタンスが即座に開放され
> るようになって、OutOfMemoryError が発生しなくなりました。(発生しづらく
> なっているだけかもしれませんが。)

ClassPool への参照を WeakReference にすることは
あり得ません.COOL deploy や WARM deploy で
使い続ける場合に GC されると困るためです.

DisposableUtil でクリアするのは弊害がないと
思われるので対応する可能性はありますが,
その前にちゃんと状況を把握したいところです.
原因が分からないまま場当たりの対処で結果オーライ
というのは避けたいので.


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




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