====== BoneCP ====== * **Deprecated** 개발자가 HikariCP를 추천하고 있음. * http://jolbox.com/ * Multi Core CPU 지원, JDBC Connection Pool ===== 설정 예(Spring) ===== * [[http://jolbox.com/bonecp/downloads/site/apidocs/com/jolbox/bonecp/BoneCPConfig.html|BoneCPConfig (BoneCP :: Core Library 0.7.1.RELEASE API)]] * ''idleMaxAge''는 ''idleConnectionTestPeriod''보다 커야한다. 그렇지 않으면 idleMaxAge에 도달하면 커넥션을 끊어버리기 때문에 실제로 ''idleConnectionTestPeriod''는 사실상 필요가 없어지게 된다. ===== JMX MBean ===== * 기본적으로 JMX MBean을 생성해준다. * 해당 MBean의 이름은 ''setPoolName()''으로 지정한 이름이된다. * ''boneCpDataSource.getConnection()''이 한 번이라도 호출이 되어야만 MBean이 생성된다. ===== 0.8.RELEASE bug ===== WARN ConnectionPartition.finalizeReferent - BoneCP detected an unclosed connection (in pool 'pool name') and will now attempt to close it for you. You should be closing this connection in your application - enable connectionWatch for additional debugging assistance or set disableConnectionTracking to true to disable this feature entirely. # 위 WARNING이 발생하면서 MySQL 사용시에 다음과 같은 오류가 연쇄 발생 .... Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. [[https://bugs.launchpad.net/bonecp/+bug/1259257|Bug #1259257 “BoneCP 0.8.0-release erroneously detecting unclose...” : Bugs : BoneCP]] 버그 리포팅 돼 있는 상태. ''**boneCpDataSource.setDisableConnectionTracking(true);**''로 문제 해결됨. // Spring 등을 통해 connection release가 100% 보장되는 경우 다음처럼 커넥션 트랙킹을 disable. boneCpDataSource.setDisableConnectionTracking(true); // 다른곳에서의 해결책 : https://groups.google.com/forum/#!topic/play-framework/eshzvWuNQcc boneCpDataSource.setStatisticsEnabled(true); boneCpDataSource.setReleaseHelperThreads(2); // 이 값을 2로하면 문제가 사라진다 함. ===== Connection 끊김 문제 ===== * 아래와 같은 에러가 발생한다. Database access problem. Killing off this connection and all remaining connections in the connection pool. SQL State = 08007 Communications link failure during rollback(). Transaction resolution unknown. * 실제 DB 접속이 끊겨서 발생하는 오류인 듯 함. ping 쿼리 주기와 실제 ping이 날라가는지 확인 해 볼 것. 또한 ping을 날린다 하더라도 DB설정이나 네트워크 라우터 등에서 끊을 가능성도 배제할 수 없슴.