실제로 다른 API를 시도한 후에 BoneCP에 정착했습니다. Java 1.7에서 사용하고 있으며 높은 동시성 상황에서도 훌륭하게 작동합니다. 또한 개발자는 문제를보고 할 때 반응 적입니다.
나는 이전에 C3P0을 사용했지만 BoneCP로 전환 한 후에는 매우 이상한 버그가있었습니다. C3P0을 조금이라도 파헤 치면 몇 년 동안 그대로 유지되었으며 개발이 재개되었다는 것을 알 수 있습니다. 그것은 내 응용 프로그램에서 이상한 시간에 고장.
일반적인 MySQL JDBC 패키지의 MysqlConnectionPoolDataSource
을 사용합니다. 그럼 난 그냥 (당신이 원하는대로 설정을 조정할 수 있습니다) 다음과 같은 일을 설정합니다
pbds = new BoneCPDataSource();
pbds.setDatasourceBean(mysqlcpds);
pbds.setMinConnectionsPerPartition(1);
pbds.setMaxConnectionsPerPartition(10);
pbds.setIdleConnectionTestPeriodInMinutes(60);
pbds.setIdleMaxAgeInMinutes(240);
pbds.setPartitionCount(1);
를 그리고, 당신은 단지이 객체에서 Connection
의를 얻을 (이 스레드 안전합니다.) 나는 몇에서 동일한 코드를 사용 스레드; 블록이 특히 편리하고 보일러의 많은 피할 시도 -과 - 자원 자바 7 (더 finally
이 필요하지 않습니다 및 연결이 보장 폐쇄 예정) :
는 try(Connection conn = pbds.getConnection()) {
... do stuff with conn
} catch (SQLException e) {
e.printStackTrace();
}
이 달의 맛 것으로 보인다 API. 이상하게 작동합니까? 하나의 지속적인 연결을 유지했던 것과 마찬가지입니까? –
나는 동의한다, 잠시 동안 좋은 옵션이없는 것처럼 보였다. 그러나 잠시 동안 검색을 한 후에 BoneCP를 고수했습니다. 어느 것이 단일 연결을 유지 했습니까? –
확실하지 않습니다. 그것은 오늘 내가 읽은 글에서 언급되었다. 내가 그것을 내려다 보려고하면 3 시간을 보내고 그것을 결코 발견하지 못한다. (너무 평범한). 하지만 그래. 나는 이것을 줄 것이다. 확실히 내 자신의 예제 코드를 찾을 수 있지만 훌륭한 튜토리얼을 알고 있다면 여기에 놓으십시오. = D 감사합니다. –