【问题标题】:Web application freezes. How do I find the reason?Web 应用程序冻结。我如何找到原因?
【发布时间】:2013-05-22 12:28:55
【问题描述】:

应用程序在 apache tomcat 7.0.37 上运行。它是一个使用 JPA 和 MySql 的 Java/GWT 应用程序。

有时我们会发现它完全没有反应。今天是 5 个月内第二次发生这种情况。重新启动后它工作正常。在流量较少的时候观察到这种行为。

我分析了线程转储,没有发现任何死锁。

感谢您对解决问题的任何帮助。

谢谢, 亲人

【问题讨论】:

    标签: mysql web-applications threadpool freeze thread-dump


    【解决方案1】:

    您提到完全是前端的 GWT,很可能与服务器问题无关。

    如果问题是基于 gwt 的浏览器客户端,您可能会遇到内存性能问题(刷新浏览器会重置它 - 不确定您通过重新启动、重新启动服务器或刷新客户端是什么意思)。

    如果您的客户端代码重新创建了许多小部件/dom 元素并挂在它们上,那么冻结您的客户端非常容易。

    同样,如果这是有问题的 gwt 客户端,您可以使用 Speedtracer 轻松分析此问题。

    Chrome > Speed Tracer > 时间线 > 内存 (也看看事件)

    如果这是一个问题,您可能需要深入了解您的代码

    【讨论】:

    • 服务器重启后生效。这是服务器端问题,可能是死锁或数据库连接耗尽。当观察到这种情况时,任何用户都无法执行任何操作。
    【解决方案2】:

    终于找到原因了。我们正在从同一个持久性单元创建 2 个 EntityManagerFactory,并期望它有 2 个不同的连接池,但它们共享相同的连接池。

    【讨论】:

    • 这是您的代码问题吗?是任何 API 调用在后台保存请求的原因吗?
    猜你喜欢
    • 1970-01-01
    • 2017-04-02
    • 2011-11-14
    • 2012-01-30
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多