tomcat - Tomcat 6 是否已准备好进行持续集成或如何让它工作?

标签 tomcat memory-leaks continuous-integration hudson tomcat6

我正在寻找如何让 tomcat CI 准备就绪的提示,或者一个经常重新部署的 servlet 容器/应用程序容器,就像它们在使用 hudson ci 时发生的那样。

我发现 Tomcat 6 没有正确取消部署 webapps,将类留在 jvm 中。

例如,我使用 VisualVM 监控 tomcat 6:在启动 2000 个类时,在重新部署 4000 个和重新部署 5000 个类之后部署应用程序 3000 个等等 - 导致崩溃、内存泄漏...

好的,希望有人对 tomcat 和持续集成或其他应用服务器有所提示。

最佳答案

更新:我使用 Spring、Hibernate、GWT、C3P0 和 HsqlDB 对一个中等复杂的 Web 应用程序执行了一些测试。

如果您使用客户端编译器,Stock Tomcat 6.0.24 工作正常。它适用于十次重新部署,而服务器编译器在第四次发生故障。我建议您尝试使用 -client 标志。

尝试调试服务器编译器的使用是徒劳的,因为 Eclipse MAT 没有显示类加载器的 GC 根,但它们被保留了下来。一个经常被引用的错误,PermHeap bloat in and only in server VM据报道已在 Java 6 更新 16 中修复,但我的测试在 Java 6 更新 16 中失败。


Tomcat 已经针对此类内存问题进行了反复检查,并且经常是应用程序的问题。不,这并不是说这样的 perm gen 泄漏一定很难。

这里有两种可能:


如果您真的想调试这个问题并确保它是 Tomcat 的错,您可以使用 Eclipse memory analyser .他们有一个很好的blog post explaining how to debug PermGen problems .

关于tomcat - Tomcat 6 是否已准备好进行持续集成或如何让它工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436424/

相关文章:

java - Java websockets 应该让线程保持忙碌吗?

java - Java 中可能存在内存泄漏吗?

node.js 脚本和可能的内存泄漏

grails - Grails-作为持续集成的一部分的链接检查

testing - 查找破坏测试的提交,而无需在每次提交时运行每个测试

eclipse - 使用嵌入式 ActiveMQ JMS 的 Tomcat 配置

apache - 将 IIS 网站重定向到 Apache 网站

java - 在 Eclipse 中对 Tomcat 的 war 部署有效,但不能独立于 Tomcat

android - fragment 中的内存泄漏

c# - 如何在 Teamcity 上使用 ApprovalTests?