adminTさん、お疲れさまです。私が実際に遭遇して解決したメモリーリークの事例を紹介します。メモリリークには何度か遭遇しました。それらは、みな同じ原因から起きていました。それは単に「VMがシステムリソースを解放してくれると勘違いしていたため」です。VMが管理するJava(あるいは.Net)の稼働系内のメモリ空間と、システムリソースの使うメモリ空間との区別が付いていないため、と言えます。VM(仮想マシン)には感知できません。システムリソースは、PCのメモリ、HD、ネットワーク、CPU、DBなどJavaの世界の外側の資源をさします。JavaのVMはそれらを感知しません。そのため、プログラムで明示的にリソースを解放しなかったらメモリーリークを起こす原因となります。そのオブジェクトへの参照が無くなり、オブジェクトが消滅したら二度とそのメモリを解放できないからです。この事は、Java以外の全ての処理系で同じように言えます。.NetはもとよりPHP、C++なんでも同じです。リソースを使ったらすぐ解放する事がいかに大事かを知らないPGも多いと思います。そのうちVMが解放してくれればいいというのでは、高負荷がかかった時にVMが対処しきれなくなります。Javaや.Netで高負荷な状態でも問題なく長時間稼働し続けるシステムを提供するには、システムリソースを使用したら即座に解放する事が必要です。事例までなかなか話が進まなくてすみません。次回は実際の事例を披露します。FAX:045-476-9989システム開発・保守ならお任せ下さい。