Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个旧的 java 应用程序(我不是开发人员)并且该应用程序的结果集没有被关闭。有时我会从应用程序中收到错误(超过最大 Java 堆空间等),这会导致停机。
有时错误是(连接已关闭)我知道这是因为连接光标已经满了。连接也没有关闭(我现在正在处理它)
我的问题是:结果集问题是否可能导致堆空间错误?
提前谢谢各位!!
这里的主要问题是连接没有被关闭。结果集在返回它们的语句关闭时关闭,而语句在创建它们的连接关闭时关闭,但除非连接关闭,否则一切都会泄漏。这包括数据库中的内存和锁,以及适用于打开的 Statement 或 ResultSet 的任何其他数据库资源。
每个对象都应该在使用结束后关闭。finally在你的块之后使用catch块来关闭你打开的连接。即使有异常 JVM 也会执行你的finally块。
finally
catch