【发布时间】:2012-01-11 02:56:59
【问题描述】:
在为我的 web 应用程序使用 spring、hibernate 和磁贴时,我似乎遇到了内存泄漏问题。我认为这可能是由于我的应用程序在部署之间没有自行清理造成的。我经常部署和取消部署,因为我目前只是在学习所有这些框架。
我应该做哪些事情来清理我的网络应用程序?我目前什么都不做,因为我认为 Java 会自动进行内存清理,但是我很确定它不会在 spring 中做所有事情,因为 tomcat 一直在抱怨 permgen 内存。
我对是否需要运行某些方法来保持清洁感到困惑。我读到了一个在某处注册应用程序的弹簧钩子,然后当它关闭时,应用程序是否被正确清理?我不确定在新版本的 spring (3.1) 中是否有必要这样做
例如,tomcat 一直告诉我我没有正确注销 JDBC 驱动程序(但我认为如果检测到 tomcat 会自动执行此操作)。
我知道这是一个非常模糊的问题,但如果有人可以提及某些需要做的事情以防止我的应用程序泄露,我可以自己用谷歌搜索。
谢谢!
【问题讨论】:
-
会不会导致perm gen space错误?
-
通过检查tomcat中是否有ERROR日志语句来判断部署是否正确。另外,如果tomcat 说JDBC 驱动没有正确注册,那就需要注意了。检查类路径中是否存在 jdbc 驱动程序库。
标签: hibernate spring tomcat memory-leaks tiles