2012-05-08 3 views
0

Sql Server 2005와 연결 풀링 (DBCP)을 사용하여 Java 응용 프로그램을 개발했습니다. 구성 파일에 MaxActive="500"이 있지만 경우에 따라 500 개를 초과하는 경우도 있습니다. 왜? 그리고 그 시간은 데이터베이스가 느립니다.DBCP 연결 풀의 연결이 끊어지는 이유는 무엇입니까?

<Resource 
    name="jdbc/tm4u" 
    auth="Container" 
    type="javax.sql.DataSource" 
    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    url="jdbc:sqlserver://XXXX;databaseName=XX;User=abc;Password=son;selectMethod=cursor" 
    username="abc" 
    password="son" 
    autoReconnect="true" 
    maxActive="500" 
    removeAbandoned="true" 
    logAbandoned="true" 
    removeAbandonedTimeout="60" 
    maxIdle="10" 
    /> 
+2

사용중인 연결 풀 구현에 따라 모두 다릅니다. 당신이 사용하고있는 것을 언급 할 수 있습니까? – Seshagiri

+0

DBCP 연결 풀링. –

+0

이 링크를 참조하십시오. https://issues.apache.org/jira/browse/DBCP-379 DBCP의 버그 인 것 같습니다 – Seshagiri

답변

0

코드에서 열린 연결을 닫으시겠습니까? 이렇게하면 연결이 풀로 반환되어 다시 사용됩니다. 이 경우 성능 저하가 없어야합니다. 그러나 500 개 이상의 활성 연결이 필요하면 그 중 일부는 기다려야합니다.

풀링과 관련된 SO에 관한 다른 질문도 참조하십시오.

관련 문제