13.8. 데이터베이스 연결 유효성 검사
데이터베이스 유지 관리, 네트워크 문제 또는 기타 중단 이벤트로 인해 JBoss EAP가 데이터베이스에 대한 연결이 끊어질 수 있습니다. 이러한 상황에서 복구하기 위해 데이터 소스에 대한 데이터베이스 연결 유효성 검사를 활성화할 수 있습니다.
데이터베이스 연결 유효성 검사를 구성하려면 유효성 검사 타이밍 메서드(검증이 발생하는 경우), 유효성 검사 메커니즘(검증을 수행하는 방법) 및 예외 처리 방법을 지정합니다.
검증 타이밍 방법 중 하나를 선택합니다.
- validate-on-match
validate-on-match
옵션이true
로 설정되면 다음 단계에서 지정된 검증 메커니즘을 사용하여 연결 풀에서 확인될 때마다 데이터베이스 연결의 유효성을 검사합니다.연결이 유효하지 않은 경우 로그에 경고가 기록되고 풀의 다음 연결이 검색됩니다. 이 프로세스는 유효한 연결이 발견될 때까지 계속됩니다. 풀의 모든 연결을 순환하지 않으려면
use-fast-fail
옵션을 사용할 수 있습니다. 풀에 유효한 연결이 없으면 새 연결이 생성됩니다. 연결 생성에 실패하면 요청하는 애플리케이션에 예외가 반환됩니다.이 설정은 가장 빠른 복구를 수행하지만 데이터베이스에 가장 높은 로드를 생성합니다. 그러나 최소 성능 적중이 문제가 되지 않는 경우 가장 안전한 선택입니다.
- background-validation
background-validation
옵션을true
로 설정하면 사용하기 전에 백그라운드 스레드에서 연결을 주기적으로 검증합니다. 검증 빈도는background-validation-millis
속성으로 지정됩니다.background-validation-millis
의 기본값은0
이며 이는 비활성화되어 있음을 의미합니다.background-validation-millis
속성의 값을 결정할 때 다음을 고려하십시오.-
이 값은
idle-timeout-minutes
설정과 동일한 값으로 설정해서는 안 됩니다. - 값이 낮아지면 풀이 더 자주 검증되고 풀에서 유효하지 않은 연결이 더 빨리 제거됩니다.
- 더 낮은 값은 더 많은 데이터베이스 리소스를 사용합니다. 값이 클수록 연결 유효성 검사 검사가 줄어들고 데이터베이스 리소스를 더 적게 사용하지만 중단된 연결은 더 오랜 시간 동안 탐지되지 않습니다.
-
이 값은
참고이러한 옵션은 함께 사용할 수 없습니다.
validate-on-match
가true
로 설정된 경우background-validation
를false
로 설정해야 합니다.background-validation
가 true로 설정된 경우validate-on-match
를false
로 설정해야 합니다.검증 메커니즘 중 하나를 선택합니다.
- valid-connection-checker-class-name
valid-connection-checker-class-name
을 사용하는 것이 선호되는 검증 메커니즘입니다. 이는 사용 중인 특정 데이터베이스에 대한 연결의 유효성을 검사하는 데 사용되는 연결 검사 클래스를 지정합니다. JBoss EAP는 다음과 같은 연결 검사기를 제공합니다.-
org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLReplicationValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
-
org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseValidConnectionChecker
-
- check-valid-connection-sql
check-valid-connection-sql
을 사용하여 연결 유효성을 검사하는 데 사용할 SQL 문을 제공합니다.다음은 Oracle 연결의 유효성을 검사하는 데 사용할 수 있는 예제 SQL 문입니다.
select 1 from dual
select 1 from dual
Copy to Clipboard Copied! 다음은 MySQL 또는 PostgreSQL 연결의 유효성을 검사하는 데 사용할 수 있는 예제 SQL 문입니다.
select 1
select 1
Copy to Clipboard Copied!
예외 분류 클래스 이름을 설정합니다.
예외가 치명적으로 표시되면 연결이 트랜잭션에 참여하더라도 즉시 연결이 닫힙니다. 예외 정렬 클래스 옵션을 사용하여 치명적인 연결 예외 후에 적절하게 감지 및 정리합니다. 데이터 소스 유형에 적합한 JBoss EAP 예외 분류기를 선택합니다.
-
org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.informix.InformixExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
-
org.jboss.jca.adapters.jdbc.extensions.sybase.SybaseExceptionSorter
-