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