Si necesita encontrar fugas, puede usar perfiladores como yourkit
o jprofiler
que es capaz de rastrear fugas de socket/jdbc.
Para corregir las fugas, debe encontrar los lugares donde abre las conexiones y usar los recursos de prueba que harán todo close()
cosas para ti
try (Connection conection = DriverManager.getConnection(url);
PreparedStatement statement = createPreparedStatement(conection);
ResultSet resultSet = statement.executeQuery()) {
// process the resultSet here, all resources will be cleaned up
}