1

我的 J2EE 应用程序未正确实现注销,我的目的是在用户注销后关闭所有数据库资源。不确定是否 session.invalidate(); 真的很有帮助,我今天会试试。请建议实施注销的最佳方法,以便在用户注销后释放所有有价值的资源。

4

2 回答 2

1

我的意图是在用户注销后关闭所有数据库资源

这已经是一种不良做法的迹象。DB 资源应该在尽可能短的范围内被获取关闭,即在同一个方法块内。您可能永远不会将 DB 资源(ConnectionStatement/或ResultSet)作为静态变量或实例变量。它是资源泄漏和更严重问题的收据。

如果本意是提高连接性能,则需要引入连接池。请记住,这不是让自己保持连接打开的借口。以同样的方式尽快获取并关闭它们,连接池实现本身会担心实际关闭连接或将其释放回池中。这一切都是完全透明的。体面的应用程序服务器带有 JNDI 数据源风格的连接池功能。好好利用它。完成后,您根本不需要担心任何开放的数据库资源或性能。

于 2009-11-12T14:12:13.067 回答
0

请按照

  1. 使用您的连接和其他数据库类来删除数据库资源。
  2. 使用会话对象清除会话。
  3. 检查您在应用程序中创建的 cookie 并删除所需的一个或全部。
于 2009-11-12T06:22:06.187 回答