2011-05-06 72 views
1

我有一個基於Apache的Oracle應用服務器中運行的Spring Web應用程序。恐怕我不知道這個問題可能適用於哪個組件。Apache會殺死長時間運行的頁面請求線程嗎?

我的問題是 - 連接池中的線程是否會被強行殺死?在極少數情況下,頁面請求比平時花費更多時間。一個頁面請求是否會花費那麼長時間才能讓Apache在沒有通知的情況下停止線程?

如果是這樣,什麼設置定義超時?

爲了給這個上下文,我在頁面生成期間鎖定資源,並且我想確保所有的鎖都被釋放。我不關心HTTP超時 - 只是釋放鎖。

回答

1

從我的理解,Apache HTTPD服務器確實有請求超時,瀏覽器確實有請求超時。代理服務器有超時並且會殺死太長的HTTP請求。數據庫池可以配置爲也請求超時,但不應默認(取決於配置)。沒有人會殺死線程,只是他們會停止等待響應。

對於瀏覽器或任何中介代理,如果您確切知道最終環境並且可以控制其配置,則不能更改它。

對於apache httpd服務器,只要去看看Apache文檔。對於您的數據庫池,請檢查您的池配置。

+0

感謝您的回答,尼古拉斯。我的問題的核心似乎也已在[此線程]中得到解答(http://stackoverflow.com/questions/2300227/are-java-app-servers-able-to-destroy-threads-if-yes-how )。 – 2011-05-06 18:03:11

+0

也許這會讓你正確地到達你想要的位置:http://httpd.apache.org/docs/current/mod/core.html#keepalivetimeout默認值是5秒。這也可能是相關的:http://httpd.apache.org/docs/current/mod/core.html#timeout,其默認值是60s。 – flickerfly 2013-10-03 13:24:14