Jetty IdleTimeout

时间:2014-08-28 12:03:05

标签: jetty jetty-9

我正在从jetty7.6迁移到jetty-9.2。我看到jetty连接的idletimeout默认值减少了10倍。

在jetty-7.6

<Set name="maxIdleTime">300000</Set>

在jetty-9.2中:

<Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>

为什么这样?

正因为如此,我不断得到以下异常:

WARN:oejs.HttpChannel:qtp607635164-14195: Commit failed
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:156)
at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)..........

谢谢, Anuj

3 个答案:

答案 0 :(得分:8)

将此内容放入${jetty.base}/start.ini

http.timeout=300000

这将恢复您以前的期望。

作为超时,它从默认的5分钟更改为30秒,因为这是大多数网站的更好选择。

答案 1 :(得分:0)

使用Jetty 9.4和HTTPS,上述解决方案不起作用。为了解决这个问题,我发现了一个没有出现在.ini文件中的未记录的设置:

jetty.ssl.idleTimeout=180000

将其添加到您的Jetty设置中。 start.d/<whatever>.inistart.ini

答案 2 :(得分:0)

正确的设置是

## Connector idle timeout in milliseconds
# jetty.ssl.idleTimeout=30000

这可以在ssl.mod文件中找到。