我们公司在这里遇到了WebSphere的问题。
120秒后服务器暂停执行超时,确定。这是此延迟后预期的行为。
问题是SQL查询大约需要30秒,之后是java线程 卡在jsf renderphase上。就像我们在线程中设置sleep()一样。
using a APM Tool (new relic) the trace is:
-MS-------%----CLASS-----------------------------------------
98200 79.11% LifecycleImpl.render(){
----98200 79.11% com.sun.faces.lifecycle.RenderResponsePhase/doPhase
-----874 0.70% our.service()
-----2.0 0.00% WSJdbcDataSource.getConnection()
-----37.0 0.03% SQL Database 29.012 s
-----94500 76.12% Application code (in com.sun.faces.lifecycle.RenderResponsePhase/doPhase)
}
http://i.stack.imgur.com/tX75I.jpg
应用程序在renderphase上停止94秒,直到超时抛出。
在Chrome上看到调试模式在浏览器上没有任何反应。只是待在闲置等待请求。 JSF树不会出现在浏览器中。 (对我来说,这意味着线程粘在容器上) http://i.stack.imgur.com/YURD5.gif
我的ManagedBean
实施Serializable
在配置下面: