在 out 应用程序中,我们将Apache DBCP
连接器用于Oracle DB
. 但每隔 30 或 40 分钟,我们就会收到连接大小泄漏错误。
有没有办法在应用程序退出之前关闭池中的所有连接?
例如,编写一个方法,该方法可以获得关闭事件,并且在该方法中我们可以安全地关闭连接。
在 out 应用程序中,我们将Apache DBCP
连接器用于Oracle DB
. 但每隔 30 或 40 分钟,我们就会收到连接大小泄漏错误。
有没有办法在应用程序退出之前关闭池中的所有连接?
例如,编写一个方法,该方法可以获得关闭事件,并且在该方法中我们可以安全地关闭连接。
在 mysql 中有一种方法可以为睡眠连接提供超时(连接未正确关闭)。这在由于应用程序未正确关闭连接而导致连接泄漏的情况下有很大帮助。
在 oracle 中也应该有相同的替代方案。
当您终止您的应用程序时,所有连接都会在一些特别短的时间(例如几秒钟)后释放。但是,如果您的应用程序不处理关闭连接,它可能根本不会退出。finally
在try/catch 语句块中使用它们后,您需要关闭所有打开的连接。
如果您的应用程序是 gui 应用程序,则 JFrame 默认不会退出,并且不会终止您的应用程序。
尝试在您的 JFrame 上添加此调用(如果您使用一个),它将导致应用程序在您单击“X”关闭窗口后永久退出;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);