1
我已經部署在側OC4J一個servlet的應用程序。的setMaxInactiveInterval上OC4J是不準確的
我試圖用1
分鐘後,用戶會話無效:
session.setMaxInactiveInterval(1 * 60);
但實際情況是,它需要超過1分鐘(甚至可能達到1分半)會議被摧毀了。
這是一個執行問題,還是什麼?
我已經部署在側OC4J一個servlet的應用程序。的setMaxInactiveInterval上OC4J是不準確的
我試圖用1
分鐘後,用戶會話無效:
session.setMaxInactiveInterval(1 * 60);
但實際情況是,它需要超過1分鐘(甚至可能達到1分半)會議被摧毀了。
這是一個執行問題,還是什麼?
你似乎在檢查由等到HttpSessionListener#sessionDestoryed()
被調用,而不是確切地後1分鐘實際發送HTTP請求到服務器的破壞。
會議毀滅是由間隔運行的後臺作業管理大多數的服務器,它可以每分鐘或以上,取決於服務器的品牌/版,配置和可能加載。該作業檢查所有打開的會話是否已過期,並相應地掃描已過期的會話。因此,只要客戶端沒有發送請求,會話銷燬就是,即時不會在會話過期時被調用。這個後臺作業不會每秒運行一次,而是CPU密集度太高。
但是,只要服務器檢索到帶有會話ID的請求,而會話仍存在於服務器內存中但已過期,就會立即調用會話銷燬。
所以,你要麼接受它,或者改變您的測試方法。