12

I am migrating from jetty7.6 to jetty-9.2. I am seeing that default value of idletimeout for jetty connections is reduced 10 times.

In jetty-7.6

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

In jetty-9.2:

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

Why So ?

And because of this I am continuously getting below exception :

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)..........

Thanks, Anuj

Anuj Khandelwal
  • 835
  • 2
  • 15
  • 31

3 Answers3

9

put this in your ${jetty.base}/start.ini

jetty.http.idleTimeout=300000

that will restore your previous expectations.

It was changed from a default of 5 minutes to 30 seconds as a timeout simply because that's a better choice for the majority of websites.

Joakim Erdfelt
  • 46,896
  • 7
  • 86
  • 136
  • I saw in jetty-http.xml : Set name="idleTimeout"> But when i tried to set java property "http.timeout" to 300000. It still shows me the same error with "30000(old value)". Why it is not set to the new value (why can't this be changed from java property) ? – Anuj Khandelwal Sep 02 '14 at 06:37
  • 2
    That is not a java `System.setProperty`, its a `jetty-start` / `jetty-xml` startup property. use `start.jar --list-config` capture the output, then edit your question to include this output. – Joakim Erdfelt Sep 02 '14 at 13:29
  • FYI, this property is now `jetty.http.timeout` – Golly Sep 02 '17 at 23:29
  • 1
    @Golly I believe you mean `jetty.http.idleTimeout` since v9.3 – Jorge Yanes Diez Aug 29 '18 at 08:07
0

Using Jetty 9.4 and HTTPS, the above solution doesn't work. To fix this I found an undocumented setting that doesn't appear in the .ini files:

jetty.ssl.idleTimeout=180000

Add that to your Jetty settings. start.d/<whatever>.ini or start.ini.

Golly
  • 1,319
  • 8
  • 18
0

The correct setting is

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

This can be found in ssl.mod file.

Nandan Phadke
  • 133
  • 1
  • 1
  • 9