[seasar-dotnet:608] Re: ガベージコレクト発生後のS2TestCase.ReadXlsWriteDbの挙動について

Masayuki TAMADA [E-MAIL ADDRESS DELETED]
2007年 10月 14日 (日) 17:00:41 JST


小谷様

タマダです。
返信&確認有り難うございます。

07/10/14 に koyak<[E-MAIL ADDRESS DELETED]> さんは書きました:

> 問題なのはGCの対象になっただけではハッシュ(_sqlCache)からキーは削除されないこと、
> のようですので以下の修正が良いのではないかと思います。
>
> CreateState.GetSql
> ---------------------------------------------------------------------------------------
>
> 前:_sqlCache.Add(table, new WeakReference(sql));
>
> 後:_sqlCache[table] = new WeakReference(sql);
> ---------------------------------------------------------------------------------------------------------------------
>
> こうするとキーがある場合は上書き、ない場合は新規追加、という動きになります。

確かに問題ありませんね。

一応、発生した状態を伝えておきますね。
現在プロジェクトにてCIサーバを利用して、定期的にソース取得、ビルド後、単体/結合テスト、カバレッジ測定、配備を行っています。
サブプロジェクトが複数ある関係でどうしても上記プロセスが同時期に被ってしまう事が発生します。
そういった場合に(サーバのメモリに余裕が無いこともあり)GCが頻発し、報告した様な現象が発生してしまった次第です。

折りを見て修正して頂ければ。

Seasar.NET利用のお陰で生産性だけでなく、プロジェクトとしてもかなり面白い試みも出来、感謝しています。
大変だとは思いますが、頑張ってくださいね。

では。


seasar-dotnet メーリングリストの案内