在我的jsps中,我正在使用会话bean。一些bean有JNDI(LDAP)或socket作为memeber变量。因此,当bean初始化时,这个连接也会打开。
我的问题是,当我退出时,这些套接字或JNDI连接不会。它们保留在内存中,并且正在消耗为tomcat分配的文件描述符。
终结器()为什么不关闭这些连接?
会话到期后还有什么可以清理所有连接吗? (除了会话监听器,我需要更改很多代码?
答案 0 :(得分:0)
你根本不应该使用终结器。它们应该在对象被垃圾收集时运行,但是您无法知道您的EJB何时GC 或者即使它们。
所以这里的答案是“不要让连接打开”,这适用于套接字,JNDI,数据库和许多其他资源。