在应用程序退出时关闭DBCP连接

时间:2015-08-24 07:47:07

标签: java oracle apache-commons-dbcp jdbc-pool

在out app中,我们使用Apache DBCP连接器Oracle DB。但每隔30或40分钟就会出现连接大小泄漏错误。

在app退出之前,有没有办法关闭池中的所有连接?  例如编写一个可以获得close事件的方法,在该方法中我们可以安全地关闭连接。

2 个答案:

答案 0 :(得分:0)

在mysql中,有一种方法可以为睡眠连接提供超时(连接未正确关闭)。如果由于应用程序没有正确关闭连接而导致连接泄漏,这会有很大帮助。

在oracle中也应该有相同的替代方案。

答案 1 :(得分:0)

当你终止你的应用程序时,所有连接都会在几秒钟之后的一些特定时间内被释放。但如果你的应用程序无法处理关闭连接,它可能根本不会退出。在finally try / catch语句块中使用它们之后,需要关闭所有打开的连接。

如果您的应用是gui应用,则默认情况下JFrame不会退出,也不会将您的应用设为终端。

尝试在您的JFrame上添加此调用(如果您使用),它将导致应用程序在您单击“X”关闭窗口后永久退出;

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);