Se você precisar descobrir vazamentos, você pode usar perfis como
yourkit
ou jprofiler
que é capaz de rastrear vazamentos de socket/jdbc.
Para corrigir vazamentos, você precisa descobrir lugares onde você abre conexões e usar try-with-resources, que fará tudo close()
coisas para você
try (Connection conection = DriverManager.getConnection(url);
PreparedStatement statement = createPreparedStatement(conection);
ResultSet resultSet = statement.executeQuery()) {
// process the resultSet here, all resources will be cleaned up
}