2010-06-20 47 views
0

嗨我有我的服務器上使用4個tomcat實例的場景。當用戶登錄時,假設它連接到tomcat-1,因此我們將所有會話值存儲在tomcat-1中。然後,我們正在處理PayPal.After PayPal處理用戶被轉移到另一個Tomcat說tomcat-2.So沒有在這個用戶的會話中的值。而我面臨問題。所以我想要發送用戶在同一個tomcat之後,它來了之後貝寶處理,以便我們可以獲取他的所有會話值。在不同的tomcat實例上管理會話

回答

2

爲什麼在服務器中使用多個Tomcat實例?最好的答案是使用一個Tomcat實例並在其上部署所有的webapps,如果需要的話可以使用virtual hosting

如果您堅持使用多個實例,那麼唯一的解決方案是將感興趣的信息作爲請求參數或pathinfo傳遞並相應地處理它。如果此信息是大量數據和/或複雜數據,則將其存儲在共享數據存儲(SQL數據庫?)中,並將其標識符(主鍵)值作爲請求參數/ pathinfo傳遞。

如果通過在服務器中使用一個單一的Tomcat實例解決這個問題,那麼你可以設置emptySessionPath attrbute的HTTP connector<Connector>conf/server.xmltrue。這樣HttpSession將在所有部署的web應用程序之間共享。

如果實際上有4噸與每一個Tomcat實例,每個包含Web應用程序的一個備份/複製物理上獨立的服務器的機器,那麼你需要創建一個cluster with session replication

+0

嗨,我有2個更多的物理獨立服務器與(可能)不相互之間的通訊。有沒有辦法配置tomcat來共享保存和維護會話的路徑位置? – user2427 2010-09-03 18:38:55