该应用程序在apache tomcat 7.0.37上运行。它是使用JPA和MySql的Java/GWT应用程序。Web应用程序冻结。我如何找到原因?
有时我们发现它完全没有响应。今天是5个月内第二次发生。重启后它工作正常。当交通流量较小时,这种行为都会被观察到。
我分析了线程转储并没有发现任何死锁。
对解决这个问题的任何帮助表示赞赏。
感谢, 的Kisor
该应用程序在apache tomcat 7.0.37上运行。它是使用JPA和MySql的Java/GWT应用程序。Web应用程序冻结。我如何找到原因?
有时我们发现它完全没有响应。今天是5个月内第二次发生。重启后它工作正常。当交通流量较小时,这种行为都会被观察到。
我分析了线程转储并没有发现任何死锁。
对解决这个问题的任何帮助表示赞赏。
感谢, 的Kisor
终于找到了原因。我们从相同的持久性单元创建2个EntityManagerFactory,并期望它拥有2个不同的连接池,但它们共享相同的连接池。
你提到GWT这完全是前端和最有可能什么都没有做与服务器的问题。
如果问题是基于gwt的浏览器客户端,您可能会遇到内存性能问题(并刷新浏览器将重置它 - 不知道重新启动,重新启动服务器或刷新客户端的内容)。
如果客户端代码重新创建许多窗口小部件/ dom元素并挂起它们,那么冻结客户端非常容易。
同样,如果这是有问题的gwt客户端,可以使用Speedtracer轻松进行分析。
Chrome浏览器>速度示踪>时间轴>内存 (也看看事件)
如果这是一个问题,你可能需要采取一个深深的看着你的代码
它在服务器重启后生效。这是服务器端问题,可能是死锁或数据库连接耗尽。当观察到这种情况时,没有用户可以采取任何行动。 –
也许您的连接池无法正常工作。 –