今天在測試工程時發現一個action執行了2遍 ,這個操作大致需要5分多鐘才能完成,工程環境 apache2+tomcat6.0。
網上搜索發現了幾個可以設置超時的地方:
1.ajax 語法去設置單位毫秒,例如:
$.ajax({
url: XXX,
timeout: 600000,
type: 'POST',
data: {
},
error: function() {
show_fail_meg("啟動系統失敗 !");
}
});
2.tomcat配置 server.xml 單位毫秒
Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
3.apache的配置文件 httpd.conf,單位秒
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 60
修改以上幾個地方,發現還是沒有生效,最終定位在了mod_jk模塊,
mod_jk 簡稱JK,是Apache服務器的一個可插入模塊,用以為Apache或IIS服務器提供處理JSP/Servlet的能力。
也就是說JK的設置可能覆蓋了apache2和tomcat以及ajax的設置。
JK的配置文件/etc/httpd/conf/workers.properties內容如下:
worker.master.socket_timeout=300
果然看到這個數字正好是5分鐘,跟異常現象相一致,改大之后重啟,正常!
您可能感興趣的文章:- Ajax 超時檢查腳本
- ajax提交session超時跳轉頁面使用全局的方法來處理
- Ajax請求在數據量大的時候出現超時的解決方法
- 登錄超時給出提示跳到登錄頁面(ajax、導入、導出)