想象一個用戶可與一些JSF頁面,這使得使用ViewScoped後臺bean的情況下殺死ViewScoped豆。在導航到應用程序中的不同頁面的情況下,bean的自定義析構函數(即@PreDestroy)將自動調用。在用戶正確關閉標籤頁/窗口的情況下,可以通過AJAX在服務器上調用遠程命令以釋放該bean。如果用戶不正確關閉瀏覽器(即時瀏覽器終止)
然而,在用戶端如果單純電源出現故障時與PC機就立刻打開或瀏覽器被終止不當,使得沒有JS代碼可以被調用。這意味着bean將永遠使用其資源掛在服務器端。 如何解決這個問題?
我想到的解決方案之一是在頁面上放置一個PrimeFaces輪詢元素,該元素將通過遠程命令「ping」託管bean。如果bean發現超時,它將終止釋放所有資源。有沒有更好的解決方案來解決這個問題?謝謝。
它不是對你的問題沒有回答,但是如果你的支持bean是「沉重的」,那麼可以考慮讓EJB池擁有真正的業務邏輯,例如。將bean bean命令傳遞給由EJB(池?)運行的模擬器。 – mabi