Tomcat 中會話超時的相關配置


 
QC同事提到似乎有時Tomcat的會話超時表現有問題,記錄一下可能用到的配置。

1)超時時間的設定
      tomcat的會話超時可以在多個級別上設置:tomcat實例級別、Web應用級別、servlet級別以及運行時Context代碼級別。
      較低級別的設定會覆蓋較高級別的設定。
      一般常用的是在前面兩個級別上設置,分別在 /conf/web.xml和/webapps/yourapp/WEB-INF/web.xml,形如:
      <session-config>
          <session-timeout>30</session-timeout>
      </session-config>
     單位是分鍾。

2)重啟時保持會話
    在關閉Tomcat實例/取消Web應用部署時,缺省會把當前的活動會話保存到硬盤上,並在重啟啟動/部署時在把會話從硬盤上加載到內存中。
    文件保存在各目錄下的SESSIONS.SER中。有時可能會話中保存了敏感信息,或者不希望使用這個特性,可以配置Context.xml文件關閉這個選項。
    配置 manager.pathname == ""即可,形如:
                <Manager pathname="" />
     網上多流傳配置 Persistent Manager 來完成這個功能,Tomcat 4.x 和 5.5 在配置文檔中都明確的指出 Persistent Manager 是一個體驗性質的特性,並沒有經過完全的測試。

不過話說Tomcat關於會話的設定也不甚直觀,在其文檔中明確的說明,Manager組件的工作就是session manager,可以設置maxInactiveInterval,而web.xml中有可以設定 session-timeout。再加上全局、應用,不同地方定義的超時時間撞到一起時,又有優先級的問題。這個設計是毫無意義的復雜。
分享到:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM