톰캣 8.5 jdbc Connection Pool 속성 설정
톰캣 8.5 커넥션 풀 속성 설정
톰캣 8.5에서 Apache-Commons-DBCP 대신 tomcat-jdbc-pool을 사용 할 수 있는데 설정이 훨씬 간단하게 구현 가능하게 바뀌었습니다. 기존 commons-dbcp와 설정 속성이 거의 비슷하면서 약간 달라졌기 때문에 tomcat-jdbc-pool을 사용하면 변경해줘야 할 속성들이 좀 있습니다.
톰캣 context.xml 설정화면 |
먼저 톰캣 context.xml 파일에서 factory, type 을 변경해줘야 합니다.
- factory = org.apache.tomcat.jdbc.pool.DataSourceFactory
- type = javax.sql.DataSource
tomcat-jdbc-pool 설정 |
속성 |
설명 |
defaultAutoCommit |
(boolean) 이 풀에서 만든 연결의 기본 자동 커밋 상태입니다. 설정하지 않으면 기본값은 JDBC 드라이버 기본값입니다. (설정하지 않으면 setAutoCommit메소드가 호출되지 않습니다.) |
defaultReadOnly |
(boolean) 이 풀에서 만든 연결의 기본 읽기 전용 상태입니다. 설정하지 않으면 setReadOnly메서드가 호출되지 않습니다. (일부 드라이버는 읽기 전용 모드를 지원하지 않습니다. 예: Informix) |
defaultTransactionIsolation |
(String) 이 풀에서 만든 연결의 기본 TransactionIsolation 상태입니다. 다음 중 하나: (javadoc 참조)
설정하지 않으면 메서드가 호출되지 않고 기본적으로 JDBC 드라이버로 설정됩니다. |
defaultCatalog |
(String) 이 풀에서 만든 연결의 기본 카탈로그입니다. |
driverClassName |
(String) 사용할 JDBC 드라이버의 정규화된 Java 클래스 이름입니다. 드라이버는 tomcat-jdbc.jar와 동일한 클래스로더에서 액세스할 수 있어야 합니다. |
username |
(String) 연결을 설정하기 위해 JDBC 드라이버에 전달할 연결 사용자 이름입니다. 기본적으로 메서드 DataSource.getConnection(username,password) 는 메서드에 전달된 자격 증명을 사용하지 않지만 여기에서 구성된 자격 증명을 사용합니다. 자세한 내용은 alternateUsernameAllowed 속성을 참조하십시오. |
password |
(String) 연결을 설정하기 위해 JDBC 드라이버에 전달할 연결 암호입니다. 기본적으로 메서드 DataSource.getConnection(username,password) 는 메서드에 전달된 자격 증명을 사용하지 않지만 여기에서 구성된 자격 증명을 사용합니다. 자세한 내용은 alternateUsernameAllowed 속성을 참조하십시오. |
maxActive |
(int) 이 풀에서 동시에 할당할 수 있는 최대 활성 연결 수입니다. 기본값은100 |
maxIdle |
(int) 풀에 항상 유지되어야 하는 최대 연결 수입니다. 기본값은 maxActive다음과 같습니다. 100 유휴 연결은 주기적으로 확인되고(활성화된 경우) 더 오랫동안 유휴 상태였던 연결은 minEvictableIdleTimeMillis 해제됩니다. (또한 참조 testWhileIdle) |
minIdle |
(int) 항상 풀에 유지되어야 하는 설정된 연결의 최소 수입니다. 유효성 검사 쿼리가 실패하면 연결 풀이 이 숫자 아래로 줄어들 수 있습니다. 기본값은 다음에서 파생됩니다 initialSize( 10참조 testWhileIdle) . |
initialSize |
(int) 풀이 시작될 때 생성되는 초기 연결 수입니다. 기본값은10 |
maxWait |
(int) 예외를 throw하기 전에 연결이 반환될 때까지 풀이 대기하는 최대 밀리초 수(사용 가능한 연결이 없을 때). 기본값은 30000(30초)입니다. |
testOnBorrow |
(boolean) 풀에서 차용하기 전에 개체의 유효성을 검사할지 여부를 나타냅니다. 개체가 유효성 검사에 실패하면 풀에서 삭제되고 다른 개체를 빌려오려고 시도합니다. 보다 효율적인 유효성 검사를 수행하려면 을 참조하십시오 validationInterval. 기본값은false |
testOnConnect |
(boolean) 연결이 처음 생성될 때 개체의 유효성을 검사할지 여부를 나타냅니다. 개체가 유효성 검사에 실패하면 throw SQLException됩니다. 기본값은false |
testOnReturn |
(boolean) 개체가 풀로 반환되기 전에 유효성을 검사할지 여부를 나타냅니다. 기본값은 false입니다. |
testWhileIdle |
(boolean) 유휴 개체 축출자(있는 경우)에서 개체의 유효성을 검사할지 여부를 나타냅니다. 개체의 유효성 검사에 실패하면 풀에서 삭제됩니다. 기본값 false은 풀 클리너/테스트 스레드가 실행되도록 하려면 이 속성을 설정해야 합니다( 참조 timeBetweenEvictionRunsMillis). |
validationQuery |
(String) 호출자에게 연결을 반환하기 전에 이 풀의 연결을 확인하는 데 사용할 SQL 쿼리입니다. 지정된 경우 이 쿼리는 데이터를 반환할 필요가 없으며 SQLException. 기본값은 null입니다. 지정하지 않으면 연결은 isValid() 메서드에 의해 확인됩니다. 예제 값은 SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server)입니다. |
validationQueryTimeout |
(int) 연결 유효성 검사 쿼리가 실패하기 전의 시간 제한(초)입니다. java.sql.Statement.setQueryTimeout(seconds)이것은 를 실행하는 명령문을 호출하여 작동 합니다 validationQuery. 풀 자체는 쿼리를 시간 초과하지 않으며 쿼리 시간 초과를 적용하는 것은 여전히 JDBC 드라이버에 달려 있습니다. 0보다 작거나 같은 값은 이 기능을 비활성화합니다. 기본값은 -1입니다. |
validatorClassName |
(String) org.apache.tomcat.jdbc.pool.Validator인터페이스를 구현하고 인수 없는 생성자를 제공하는 클래스의 이름입니다(암시적일 수 있음). 지정된 경우 클래스는 유효성 검사 쿼리 대신 연결 유효성 검사에 사용되는 유효성 검사기 인스턴스를 만드는 데 사용됩니다. 기본값은 null입니다. 예제 값은 com.mycompany.project.SimpleValidator입니다. |
timeBetweenEvictionRunsMillis |
(int) 유휴 연결 유효성 검사/청소기 스레드 실행 사이의 휴면 시간(밀리초)입니다. 이 값은 1초 미만으로 설정하면 안 됩니다. 유휴, 중단된 연결을 확인하는 빈도와 유휴 연결의 유효성을 검사하는 빈도를 나타냅니다. 기본값은 5000(5초)입니다. |
numTestsPerEvictionRun |
(int) tomcat-jdbc-pool에서 사용되지 않는 속성입니다. |
minEvictableIdleTimeMillis |
(int) 개체가 제거되기 전에 풀에서 유휴 상태로 있을 수 있는 최소 시간입니다. 기본값은 60000(60초)입니다. |
accessToUnderlyingConnectionAllowed |
(boolean) 속성이 사용되지 않습니다. unwrap풀링된 연결 을 호출하여 액세스할 수 있습니다 . javax.sql.DataSource인터페이스를 보거나 리플렉션을 통해 호출 하거나 getConnection객체를 다음과 같이 캐스트합니다.javax.sql.PooledConnection |
removeAbandoned |
(boolean) 을(를) 초과하는 경우 중단된 연결을 제거하는 플래그 removeAbandonedTimeout입니다. true로 removeAbandonedTimeout설정하면 true연결을 끊는 데 실패한 응용 프로그램에서 db 연결을 복구할 수 있습니다. 참조 logAbandoned 기본값은 false입니다. |
removeAbandonedTimeout |
(int) 중단된(사용 중인) 연결을 제거하기 전의 시간 초과(초)입니다. 기본값은 60(60초)입니다. 이 값은 애플리케이션에서 가질 수 있는 가장 오래 실행되는 쿼리로 설정되어야 합니다. |
logAbandoned |
(boolean) 연결을 포기한 애플리케이션 코드에 대한 스택 추적을 기록하는 플래그입니다. 중단된 연결을 로깅하면 스택 추적을 생성해야 하므로 연결 빌릴 때마다 오버헤드가 추가됩니다. 기본값은 false입니다. |
connectionProperties |
(String) 새 연결을 설정할 때 JDBC 드라이버로 전송되는 연결 속성입니다. String 형식은 [propertyName=property;]*여야 합니다. 참고 - "user" 및 "password" 속성은 명시적으로 전달되므로 여기에 포함할 필요가 없습니다. 기본값은 null입니다. |
poolPreparedStatements |
(boolean) 속성이 사용되지 않습니다. |
maxOpenPreparedStatements |
(int) 속성이 사용되지 않습니다. |