java.lang.Exception

Apparent connection leak detected I already checked and made sure all my sql codes has a call to close method. Here's my HikariConfig : private HikariConfig hikariConfig() { HikariConfig config = new HikariConfig(); config.setDriverClassName(CLASS_FOR_NAME); config.setJdbcUrl(HOST); config.setUsername(USER); config.setPassword(PASS); config.addDataSourceProperty("cachePrepStmts", "true"); config.addDataSourceProperty("prepStmtCacheSize", "250"); config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); config.setLeakDetectionThreshold(TimeUnit.SECONDS.toMillis(30)); config.setValidationTimeout(TimeUnit.MINUTES.toMillis(1)); config.setMaximumPoolSize(40); config.setMinimumIdle(0); config.setMaxLifetime(TimeUnit.MINUTES.toMillis(2)); // 120 seconds max life time config.setIdleTimeout(TimeUnit.MINUTES.toMillis(1)); // minutes config.setConnectionTimeout(TimeUnit.MINUTES.toMillis(5)); // millis config.setConnectionTestQuery("/* ping */ SELECT 1"); return config; } here's how my queries look like : public ArrayList<LocationType> getLocationTypes() { ArrayList<LocationType> locationTypes = new ArrayList<>(); Connection connection = null; PreparedStatement pstmt = null; ResultSet resultSet = null; try { connection = DataSource.getInstance().getConnection(); pstmt = connection.prepareStatement("SELECT\n" + " location_type_id,\n" + " location_type_name\n" + "FROM tablename;"); resultSet = pstmt.executeQuery(); while (resultSet.next()) { locationTypes.add(new LocationType(resultSet.getInt("location_type_id"), resultSet.getString("location_type_name"))); } } catch (Exception e) { e.printStackTrace(); } finally { if (resultSet != null) try { resultSet.close(); } catch (SQLException e) { } if (pstmt != null) try { pstmt.close(); } catch (SQLException e) { } if (connection != null) try { connection.close(); } catch (SQLException e) { } } return locationTypes; } I've already tried increasing the connectionLeakDetection, max connection and minimum idle but none of that solved the issue. I have read that it could be caused by the machine(low resources) and connections being closed, I think however, none of these causes the issue. I noticed that some long queries in my code are now being detected as connection leak, even though I am not calling their methods. I hope you guys could help. This is the stack trace : at com..database.DataSource.getConnection(DataSource.java:148)

Samebug tips0

There are no available Samebug tips for this exception. If you know how to solve this issue, help other users by writing a short tip.

Don't give up yet. Paste your full stack trace to get a solution.

Solutions on the web8726

  • connections being closed, I think however, none of these causes the issue. I noticed that some long queries in my code are now being detected as connection leak, even though I am not calling their methods. I hope you guys could help. This is the stack trace : at com..database.DataSource.getConnection(DataSource.java:148)
  • via Google Groups by Jamais, 3 weeks ago
    , When you look down the dump, you see this line: com.ibm.railways.nsc.security.TamManagerForTDI.changeUserPassword(TamManagerForTDI.java:26) But your script below does not make a call to this method, so I am wondering if the exception is coming
  • via Oracle Community by user2610167, 1 year ago
    RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/DBconnection. In the last case you will have to add a new WebLogic JCA connection factory
  • Stack trace

    • java.lang.Exception: Apparent connection leak detected I already checked and made sure all my sql codes has a call to close method. Here's my HikariConfig : private HikariConfig hikariConfig() { HikariConfig config = new HikariConfig(); config.setDriverClassName(CLASS_FOR_NAME); config.setJdbcUrl(HOST); config.setUsername(USER); config.setPassword(PASS); config.addDataSourceProperty("cachePrepStmts", "true"); config.addDataSourceProperty("prepStmtCacheSize", "250"); config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); config.setLeakDetectionThreshold(TimeUnit.SECONDS.toMillis(30)); config.setValidationTimeout(TimeUnit.MINUTES.toMillis(1)); config.setMaximumPoolSize(40); config.setMinimumIdle(0); config.setMaxLifetime(TimeUnit.MINUTES.toMillis(2)); // 120 seconds max life time config.setIdleTimeout(TimeUnit.MINUTES.toMillis(1)); // minutes config.setConnectionTimeout(TimeUnit.MINUTES.toMillis(5)); // millis config.setConnectionTestQuery("/* ping */ SELECT 1"); return config; } here's how my queries look like : public ArrayList<LocationType> getLocationTypes() { ArrayList<LocationType> locationTypes = new ArrayList<>(); Connection connection = null; PreparedStatement pstmt = null; ResultSet resultSet = null; try { connection = DataSource.getInstance().getConnection(); pstmt = connection.prepareStatement("SELECT\n" + " location_type_id,\n" + " location_type_name\n" + "FROM tablename;"); resultSet = pstmt.executeQuery(); while (resultSet.next()) { locationTypes.add(new LocationType(resultSet.getInt("location_type_id"), resultSet.getString("location_type_name"))); } } catch (Exception e) { e.printStackTrace(); } finally { if (resultSet != null) try { resultSet.close(); } catch (SQLException e) { } if (pstmt != null) try { pstmt.close(); } catch (SQLException e) { } if (connection != null) try { connection.close(); } catch (SQLException e) { } } return locationTypes; } I've already tried increasing the connectionLeakDetection, max connection and minimum idle but none of that solved the issue. I have read that it could be caused by the machine(low resources) and connections being closed, I think however, none of these causes the issue. I noticed that some long queries in my code are now being detected as connection leak, even though I am not calling their methods. I hope you guys could help. This is the stack trace : at com..database.DataSource.getConnection(DataSource.java:148) at com.database.databaseServices.MileageReportService.MileageService.getMonthlySummaryBySID(MileageService.java:27) at com.views.reports.mileage.MileageReport.lambda$generateReport$61446b05$1(MileageReport.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498)

    Write tip

    You have a different solution? A short tip here would help you and many other users who saw this issue last week.

    Users with the same issue

    You’re the first here who have seen this exception.