세 개의 연결 풀에 대한 온라인 평가는 다음과 같습니다.
C3P0은 리소스 소비가 많고 효율성 측면에서 약간 낮을 수 있습니다.
실제로 DBCP에는 버그가 있으며 경우에 따라 많은 빈 연결을 해제 할 수 없습니다. Hibernate 3.0은 지원을 포기했습니다.
Proxool은 부정적인 리뷰가 적고 현재 권장되며 연결 풀 상태를 즉시 모니터링하여 연결 누출을 용이하게합니다.
Proxool 연결 풀
<bean id = "proxool_datasource"> <속성 이름 = "드라이버 클래스"value = "oracle.jdbc.driver.oracledriver"/> <property name = "driver-url"value = "jdbc : oracle : thin : @localHost : @localHost : @localHost : @localHost : @localHost : @localHost : @localHost : @LocalHost : @localHost : 1521/ssid"/> <property name = "value" "user"/> <property "" "" "" "" " 테스트에 대한 SQL 실행 명령문-> <속성 이름 = "houseKeepingTestSql"value = "select current_date"/> <!-유지 관리 된 유휴 연결의 최소 수는 (기본값 2)-> <속성 이름 = "protoTypecount"value = "/> <!-Proxool은 각각의 상태의 시간 간격 (millseconds)을 자동으로 감지합니다. 유휴 연결이 감지되면 즉시 재활용됩니다. 타임 아웃 파괴는 기본적으로 30 초로 기본적으로)-> <속성 이름 = "HouseKeepingsleeptime"value = "30"/> <!-최대 활동 시간 (이 시간을 초과하는 스레드는 사망, 기본값은 5 분)-> <속성 이름 = "maximumActiveTime"value = "300"/> <!-최대 연결 시간 (기본값 4 시간). value = "30"/> <!-최소 연결 수 (기본값 2)-> <속성 이름 = "MinimumConnectionCount"value = "10"/> <!-최대 연결 수 (기본값 5)-> <속성 이름 = "maximumConnectionCount"value = "30"/> <!-동일 한 최대 번호 번호 <속성 이름 = "SimullBuild-BuildThlettle" 값 = "10"/> </bean>
C3P0 연결 풀
<beanid = "dataSource"class = "com.mchange.v2.c3p0.combopooleddatasource"destral "> <propertyname ="driverclass "value ="oracle.jdbc.driver.oracledriver "/> <propertyname = "jdbcurl"value = "jdbc : oracle : thin : thin : @localhost : 1521/ssid"/> <propertyname = "user"value = "user"/<propertyname = "propertyname ="valess = "valess"/> <propertyname = "initialpoolsize"value = "10"/> <propertyname = "minpoolsize" "10"/> <propertyname = "maxpoolsize"value = "100"/> </bean> <!- C3P0의 구성 속성, 이러한 특성을 통해 데이터 소스에서 다양한 효과적인 제어를 수행 할 수 있습니다. 획득 풀의 연결이 사용되면 C3P0은 한 번에 새로운 연결을 생성합니다. AcquiRerCreateTempts : 데이터베이스에서 새 연결을 얻지 못한 후 얻으려는 반복적 인 시도 수를 정의하면 기본값은 30입니다. AcquireretryDelay : 두 연결, 단위 밀리 초, 기본값은 1000입니다. autocommitonclose : 연결이 닫히면 모든 커밋되지 않은 작업이 기본적으로 롤백됩니다. 기본값은 거짓입니다. AutomaticTestTable : C3P0은 테스트라는 빈 테이블을 생성하고 테스트를 위해 자체 쿼리 문을 사용합니다. 이 매개 변수가 정의되면 속성 PreferredTestQuery는 무시됩니다. 이 테스트 테이블에서는 아무것도 할 수 없으며 C3P0 테스트에 사용됩니다. BreakFteracquireFailure : 연결을 얻지 못하면 모든 스레드가 대기 대기 중이됩니다. 그러나 데이터 소스는 여전히 유효하며 다음에 getConnection ()을 호출 할 때 계속 연결하려고합니다. true로 설정되면 데이터 소스는 연결을 얻으려는 시도가 실패한 후 연결이 끊어지고 영구적으로 닫혔다 고 선언합니다. 기본값은 거짓입니다. CheckoutTimeout : 연결 풀이 사용되면 클라이언트는 getConnection ()을 호출하고 새로운 연결을 얻기 위해 시간을 기다립니다. 타임 아웃 후 Sqlexception이 발생합니다. 0으로 설정하면 무기한 대기합니다. 단위 밀리 초, 기본값은 0입니다. ConnectionTesterClassName : ConnectionTester 또는 QueryConnectionTester를 구현하여 연결 테스트 연결을 테스트하십시오. 클래스 이름은 완전히 자격있는 이름으로 설정되어야합니다. 기본값은 com.mchange.v2.c3p0.impl.defaultConnectionTester입니다. IdleConnectionTestPeriod : 모든 연결 풀에서 유휴 연결을 확인하는 데 몇 초가 걸리며 기본값은 0이므로 확인되지 않았 음을 나타냅니다. InitialPoolSize : 초기화 중에 생성 된 연결 수는 minpoolsize와 maxpoolsize 사이에 가치가 있어야합니다. 기본값은 3입니다. MAXIDLETIME : 최대 유휴 시간, 유휴 시간을 초과하는 연결은 폐기됩니다. 그것이 0이거나 음수 인 경우, 결코 폐기되지 않습니다. 기본값은 0입니다. MaxPoolsize : 연결 풀에 유지되는 최대 연결 수. 기본값은 15입니다. MAXSTATEMENTS : 데이터 소스에로드 된 준비 상태의 수를 제어하는 데 사용되는 JDBC의 표준 매개 변수입니다. 그러나 Precache 문은 전체 연결 풀이 아닌 단일 연결에 속하기 때문입니다. 따라서이 매개 변수를 설정하려면 많은 요소를 고려해야합니다. MaxStatements와 MaxStatementsPerconnection이 모두 0이면 캐시가 닫힙니다. 기본값은 0입니다. MaxStatementsPerConnection : 연결 풀에서 단일 연결이 보유한 최대 캐시 된 문의 수입니다. 기본값은 0입니다. NumHelperThreads : C3P0은 비동기로 작동하며 도움 프로세스를 통해 느린 JDBC 작업이 완료됩니다. 이러한 작업을 확장하면 성능을 효과적으로 향상시킬 수 있으며 여러 스레드를 통해 여러 작업이 동시에 실행됩니다. 기본값은 3입니다. PreferredTestQuery : 모든 연결 테스트가 실행 된 테스트 명령문을 정의합니다. 이 매개 변수는 연결 테스트를 사용할 때 테스트 속도를 크게 향상시킬 수 있습니다. 테스트 된 테이블은 초기 데이터 소스 시점에 존재해야합니다. 기본값은 null입니다. PropertyCycle : 사용자가 시스템 구성 매개 변수를 수정하기 전에 대기 할 최대 초의 숫자. 기본값은 300입니다. TestConnectionOnCheckout : 고성능 소비로 인해 필요한 경우에만 사용하십시오. true로 설정되면 각 연결 제출시 유효성이 확인됩니다. 연결 테스트의 성능을 향상시키기 위해 IdleConnectionTestPeriod 또는 AutomaticTestTable을 사용하는 것이 좋습니다. 기본값은 거짓입니다. testConnectionOnCheckin : true로 설정되면 연결을 얻는 동안 연결의 유효성이 확인됩니다. 기본값은 False입니다. ->
DBCP 연결 풀
<beanid = "dbcp_datasource"class = "org.apache.commons.dbcp.basicdatasource"> <propertyname = "driverclassname"value = "oracle.jdbc.driver.oracledriver"> </property> <propertyname = "url"value = "jdbc : oracle : thin : @localhost : 1521/ssid"> </property> <propertyname = "username"value = "user"> </property> <propertyname = "property"vale = "property> <propertyname ="value = "3"> </property> <propertyname = "maxactive"value = "50"> </property> <propertyname = "maxactive"value = "50"> </property> <propertyname = "maxidle"value = "20"> </property> <propertyname = "minidle"value = "5"> </property> <propertyname = "maxwait"10 "> </bean> </bean> </bean>> </bean> </bean> </bean>. 이니셜 크기 : 연결 풀을 초기화 할 때의 초기 연결 maxactive : 연결 풀의 최대 값 maxidle : 최대 공회전 값 미니 니드 : 최소 유휴 값 maxwait : 최대 연결 설정 대기 시간 ->