GRIZZLY0023 Glassfish警告
我在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 Admin GUI( http://localhost:4848
)中的下面设置此值:
server-config
– > Network Config
– > Network Listeners
– >
默认情况下, Request Timeout
字段设置为900
(15分钟),只需增加此值即可。 不幸的是,自Glassfish 3.1.2起,你无法将其设置为-1
,没有任何限制。
您也可以使用asadmin
工具进行设置,如下所示:
asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=x
这在服务器空闲时发生。 当服务器空闲一段时间后,它就开始生成
GRIZZLY0023:中断空闲线程:
日志文件中的警告,我们必须重新启动服务器。 我们在Glassfish 3.1.2.2 build 5中观察到了这一点。我们从未在旧的Glassfish中观察到这一点。
这表明GF 3.1.2.2版本中存在一些错误。
我不认为我会建议完全禁用线程的中断。 实际上,这个错误可能是由于Glassfish 3.1.2.2中的一个错误导致线程没有正确中断。 这可以通过相同thread-id的多个中断日志来看出。 通过在Glassfish的类路径上放置一个修补版本的grizzly-http.jar
来修复该错误。
有关更多信息,请参阅https://www3.wipo.int/confluence/display/wipoimd/3.3.2.1.-+GlassFish+3.1.2.2+%28build+5%29+patches
您需要在Glassfish管理员中增加或禁用请求超时 :
server-config -> Network Config -> Network Listeners -> -> HTTP
值-1将禁用它。
测试:GlassFish Server开源版3.1.2.2