2015-04-07 76 views
0

我繼承了一些需要某些TLC的舊版Business Objects代碼。該代碼是一個Servlet。爲Servlet中的每個新請求都創建一個新的IEnterpriseSession。我最初擔心的是,爲每個請求創建一個新的IEnterpriseSession似乎是浪費,並導致請求緩慢。請注意,這是一個管理IEnterpriseSession,它一次又一次地用於管理目的。BusinessObject的IEnterpriseSession可以像db連接一樣被緩存嗎?

所以我的問題是,在Servlet的init()過程中只創建其中一個,並且一直重複使用它,只要服務器啓動?它可以跨線程共享還是必須是ThreadLocal?如果會話增長失效,是否存在已知的超時異常?

+1

我還沒有真正做到這一點(所以發表評論),但我建議將IEnterpriseSession存儲在會話屬性而不是servlet中。這至少可以確保會話與單個用戶相關聯,同時減少超時或爭用的風險。 – Joe

回答

1

IEnterpriseSession可以被緩存和重用。 Business Objects的CMC中有一個可以結束會話的超時設置,因此如果會話本身在使用前是有效的,那麼請注意,如果要進行緩存。會話本身是對Business Objects系統的實際登錄,因此每個用戶應該是唯一的。

相關問題