我在 GlassFish 服务器上用 Java 部署了 2 个 Web 应用程序。我正在使用 Glassfish Server 3.1.2.2。他们都有从那里接收 http 请求的 java servlet 页面,代码也相同,只是参数不同(针对不同的客户端)。第一个运行良好,另一个处理 http 请求的时间很长。之后我注意到下一件事:
我经常在 Netbeans 的 Glassfish 输出中收到此警告。
WARNING: GRIZZLY0023: Interrupting idle Thread: http-thread-pool-9990
任何人都可以解释为什么我会收到此警告,以及如何解决它。
最佳答案
如果 HTTP 请求超时,则会出现此警告。 Glassfish 默认超时为15 分钟。
这可能发生在不同的情况下,例如当请求调用长时间运行的操作且在超时期限内不返回任何响应时,如果通过 HTTPS 向您的服务器发出请求并且它仅支持 HTTP(反之亦然),或者没有更多可用连接在 HTTP 连接池中。
您的情况的具体原因只能猜测,但通常解决此问题的一种方法是增加默认的 HTTP 请求超时。您可以在 Glassfish 管理 GUI ( http://localhost:4848
) 中设置此值:
server-config
-> Network Config
-> Network Listeners
-> <your listener>
字段Request Timeout
设置为 900
(15 分钟)默认情况下,只需增加此值即可。不幸的是你不能将它设置为 -1
从 Glassfish 3.1.2 开始没有限制。
您也可以使用 asadmin
来设置它像这样的工具:
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=x
关于java - GRIZZLY0023 Glassfish 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666847/