我有一个旧的Java应用程序(我不是开发人员),该应用程序的结果集未被关闭。我不时会从应用程序中获得错误(超出最大java堆空间等)并导致停机。
有时错误是(连接已关闭)我知道这是因为连接游标已经满了。连接也没有被关闭(我正在研究它)
我的问题是:结果集问题是否可能导致堆空间错误?
先谢谢你们!!
答案 0 :(得分:3)
这里的主要问题是连接未被关闭。当关闭返回它们的Statement时关闭ResultSet,并在关闭创建它们的连接时关闭语句,但除非关闭连接,否则一切都将泄漏。这包括数据库中的内存和锁,以及应用于打开的Statement或ResultSet的任何其他数据库资源。
答案 1 :(得分:0)
每个对象在使用结束后都应该关闭。
在finally
块之后使用catch
阻止关闭已打开的连接。即使有异常,JVM也会执行finally
阻止。