나는 덮개 아래에 Tomcat 6.0.37 및 MySQL 5.5를 사용하여 트래픽이 많은 사이트에서 발생하는 문제를 파악하려고합니다. 테스트로드는 Tomcat에 대한 200 개의 동시 연결이었습니다. 동일한 URL에 대한 모든 연결과 모두 데이터베이스에 연결되었습니다.Apache Commons DBCP 이상한 동작
연결 풀링을 수행하기 위해 포함 된 tomcat-dbcp 패키지를 사용하고 있습니다.
<Resource name="jdbc/appDataSource" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/myapp?autoReconnect=true&characterEncoding=UTF-8"
username="root"
password="*****"
testOnBorrow="true"
maxWait="5000"
maxIdle="1"
maxActive="30"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
logAbandoned="true"
removeAbandoned="true"
removeAbandonedTimeout="60"
/>
내가 연결 풀 꽤 광범위하게 연결을 잃어 버릴 것을 볼 해당 사이트에 몇 가지 테스트 트래픽을 실행하면 : 여기에 우리가 사용하는 자원 구성입니다. 약 1 분 후에 MySQL에 대한 연결 시도 횟수가 10000 회를 초과했으며 풀에는 20 개 이상의 연결이 없었습니다. 모든 연결이 거의 즉시 닫혔습니다.
내 구성에서 속성
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
을 lib 폴더에 추가하고 포함하여 아파치 코 몬즈로 전환하려했지만 그것은 나에게 동일한 결과를했다.
나는 사실 아주 좋은 일을하는 C3P0와 BoneCP로 전환 시도하고 나는 30 개 연결의 최대가 개최되는 본 - 새로운 또는 떨어 연결 나는 또한 아파치에서 연결 풀을 사용하려고했습니다
MySQL을
에 (단지 그것의 이익을 위해) 톰캣 7은 또한 다음과 같은 구성으로 아주 능숙하게 일 :<Resource name="jdbc/appDataSource" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/myapp?autoReconnect=true&characterEncoding=UTF-8"
username="root"
password="******"
maxIdle="1"
maxActive="30"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
logAbandoned="true"
removeAbandoned="true"
removeAbandonedTimeout="60"
/>
는 간단한 경우에도 작동하지 않습니다 아파치 코 몬즈 DBCP 정말 뭔가 잘못이 있는지 궁금하다 ? 이 모든 것에 대한 설명이 있습니까?
당신은 해결책을 찾았습니까? 나는 같은 문제가있다. – Jens