使用tomcat内存释放问题

在使用tomcat4 + sql server2000的应用系统开发中,发现服务器的java进程所占用的内存扑扑的往上涨,最终是java.lang.OutOfMemoryError!
数据库联接使用的是tomcat的连接池,该关掉的conn、stmt、rs都有close。
高手请帮忙诊断!

用的jdk 1.4 ??

典型的内存泄漏,使用Borland的optimizeit查找吧。

是jdk1.4;
optimizeit?还请详细说明,谢谢!

你的代码中可能有本应短期存在的obj,但是却被一个长生命期的ref引用着,因此gc无法回收这个obj。多半跟静态对象有关。

曾经听说MS SQL Server的官方驱动有内存泄漏的bug,不知道是不是这个原因。

绝对 是资源没有释放..用完后要服null

原来在sql server的进程信息中监测到有多余的连接没有释放掉,经过处理后数据库联接数正常,但java.exe进程的内存使用还是没有降下来。
不知道是哪里的内存没有释放了?:(

怎么解决的?

我的系统是Redhat 9,Mysql 3, Tomcat 4, JDK 1.4。
也出现类似问题:
所有服务重新启动后,经过一段时间(不定,3-7天)就会出现无法获取数据库连接的异常。据说是tomcat的问题,我不太清除,望能指点迷津。

是因为MySQL的问题(mysql会自动做备份,备份期间,连接会挂起,然后就会出问题。。。没有找到解决办法,也许每天定时重起dbcp 是个不错的主意)

jvm内存不够会向系统申请,并且申请后的内存不再返回系统。除非重新启动应用服务。其内存上限可以在启动文件中设置。