[英]Jndi/socket connection in a bean
在我的jsps中,我正在使用會話bean。 一些Bean具有JNDI(LDAP)或套接字作為成員變量。 因此,在初始化Bean時,也會打開此連接。
我的問題是,當我注銷時,這些套接字或JNDI連接不會消失。 它們保留在內存中,並且正在消耗分配給tomcat的文件描述符。
為什么這些連接沒有被finalizer()關閉?
會話過期后,有什么方法可以清理所有連接嗎? (除了會話偵聽器,我需要為此更改很多代碼嗎?
您不應該只使用終結器。 應該在垃圾回收對象時運行它們,但是您不知道EJB是何時GC的,即使它們是 GC的也不知道。
因此,這里的答案是“不要斷開連接”,這適用於套接字,JNDI,數據庫和許多其他資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.