2014-08-28 42 views
7

我正在從jetty7.6遷移到jetty-9.2。我看到碼頭連接的idletimeout默認值減少了10倍。Jetty IdleTimeout

在碼頭 - 7.6

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

在碼頭 - 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

回答

8

把這個在您的${jetty.base}/start.ini

http.timeout=300000 

,將恢復此前的預期。

由於這是大多數網站的更好選擇,它已從默認的5分鐘更改爲30秒。

+0

我在jetty-http.xml中看到:Set name =「idleTimeout」>但是,當我試圖設置java屬性「http.timeout」 300000.它仍然顯示與「30000(舊值)」相同的錯誤。爲什麼它沒有設置爲新值(爲什麼不能從java屬性中更改)? – 2014-09-02 06:37:44

+1

這不是一個java'System.setProperty',它是一個'jetty-start' /'jetty-xml'啓動屬性。使用'start.jar --list-config'捕獲輸出,然後編輯你的問題以包含這個輸出。 – 2014-09-02 13:29:06

+0

僅供參考,此屬性現在是'jetty.http.timeout' – Golly 2017-09-02 23:29:20

0

使用Jetty 9.4和HTTPS,上述解決方案不起作用。爲了解決這個問題,我發現沒有出現在.ini文件的無證設置:

jetty.ssl.idleTimeout=180000

它添加到您的碼頭設置。 start.d/<whatever>.inistart.ini

0

正確的設置

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

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