1

在将 Web 应用程序从 Resin 迁移到 GlassFish v3.0.1 期间,我遇到了问题。在回归测试期间(使用 Selenium)它已经开始挂起。浏览器显示没有源的空白页面 - 没有元,没有头部没有正文(Firefox 和 IE)。

我认为这是硒的问题。但是问题是手动重现的,并且在 IE8、FireFox 4、Chrome 6 中也是如此。使用了不同的客户端机器,包括 Windows 和 UBuntu 10.01(因此排除了防病毒影响);

在意外中,我通过 JMX 使用 jvisualvm 制作了一些快照(线程甚至堆)。分析线程显示服务器上有一个线程,服务器浏览器请求并具有状态“等待”。监视等待 HEAP 转储中不存在的对象实例 #123456(使用 NetBeans 中的 OQL 进行查询)。

还调查了 DB-pool(启用精细日志记录,然后通过 JMX 监视器 JDBC-POOL-MON)。Oracle 11g 企业版像 DB 一样使用。使用驱动程序 11.2.0.1ga。JDK 1.6.0_21 x64 服务器模式。JDBC 池的最大允许大小为:50 conn。JDBC 的最大监控大小为 10(启动连接数),使用连接的峰值仅为 7。连接泄漏也被激活。超过 2 小时的回归测试没有检测到任何。

HTTP 线程池允许 200 个线程,峰值为 181 个活动线程,通常为 114 个恶魔线程。

Grizly 的使用类似于带有静态文本缓存和 gzip 压缩的 WEB 服务。NIO 处于活动状态,我已经为 tcp 尝试了 java 和本机缓冲区。

我的一些朋友告诉我不要直接使用 Grizly,而是预先安装 Apache Web Server 并使用 mod_proxy。尚未尝试,但我只想使用没有 Apache Web Server 的 GlassFish v3。我希望它能显示出更好的投掷。

无论如何,我不知道这种奇怪行为的原因是什么。任何想法都会有很大帮助!

ps:在Resin 下应用在同一个JDK 和同一个DB 上运行良好,并且使用了驱动和相同的回归测试。即使在生产中,我们也没有这种问题。

谢谢,马克斯。

4

0 回答 0