JDBC 연결 풀은 특정 데이터베이스에 대해 재사용 가능한 연결 그룹입니다. 관리 콘솔에서 풀을 만들 때 관리자가 특정 데이터베이스에 대한 연결 부분을 실제로 정의합니다.
풀을 만들기 전에 먼저 JDBC 드라이버를 설치 및 통합해야 합니다. 연결 풀 만들기 페이지를 구축할 때 JDBC 드라이버와 관련된 특정 데이터와 데이터베이스 공급업체를 입력해야 합니다. 계속하기 전에 다음 정보를 수집합니다.
데이터베이스 공급업체 이름
자원 유형: javax.sql.DataSource(로컬 트랜잭션에만 해당), javax.sql.XADataSource(전역 트랜잭션) 등
데이터 소스 클래스 이름
필수 등록 정보: 데이터베이스 이름(URL), 사용자 이름 및 비밀번호 등
JDBC 연결 풀 편집 페이지에서 이름을 제외한 기존 풀의 모든 설정을 변경할 수 있는 방법을 제공합니다.
일반 설정을 변경합니다.
일반 설정 값은 설치된 특정 JDBC 드라이버에 따라 다릅니다. 이 설정은 Java 프로그래밍 언어로 된 인터페이스나 클래스의 이름입니다.
매개 변수 |
설명 |
---|---|
데이터 소스 클래스 이름 |
DataSource 및/또는 XADataSource API를 구현하는 공급업체별 클래스 이름입니다. 이 클래스는 JDBC 드라이버에 있습니다. |
자원 유형 |
선택 항목에는 javax.sql.DataSource(로컬 트랜잭션에만 해당), javax.sql.XADataSource(전역 트랜잭션) 및 java.sql.ConnectionPoolDataSource(로컬 트랜잭션, 성능 향상 가능)가 포함됩니다. |
풀 설정을 변경합니다.
물리적 데이터베이스 연결 집합은 풀에 상주합니다. 응용 프로그램에서 연결을 요청하면 풀에서 연결이 제거되고 응용 프로그램에서 연결을 해제하면 연결이 풀로 반환됩니다.
매개 변수 |
설명 |
---|---|
초기 및 최소 풀 크기 |
풀의 최소 연결 수입니다. 풀 값에 따라 풀을 먼저 작성하거나 응용 프로그램 서버를 시작할 때 풀에 있는 연결 수도 결정합니다. |
최대 풀 크기 |
풀의 최대 연결 수입니다. |
풀 크기 조정 개수 |
풀이 각각 최대 및 최소 풀 크기로 확장되거나 축소되는 경우 일괄적으로 크기가 조정됩니다. 이 값은 일괄적으로 처리할 연결 수를 지정합니다. 이 값을 너무 크게 하면 연결 생성 및 재순환이 지체되며, 너무 작게 하면 효율성이 떨어집니다. |
유휴 시간 초과 |
풀에서 연결이 유휴 상태로 있을 수 있는 최대 시간(초)입니다. 이 시간이 만료되면 연결이 풀에서 제거됩니다. |
최대 대기 시간 |
연결을 요청한 응용 프로그램이 연결 시간 초과까지 대기하는 시간입니다. 기본 대기 시간이 길기 때문에 응용 프로그램이 무기한 중지될 수 있습니다. |
연결 검증 설정을 변경합니다.
선택에 따라 Application Server는 연결을 응용 프로그램에 전달하기 전에 연결을 검증할 수 있습니다. 이렇게 검증을 하면 네트워크 실패나 데이터베이스 서버 충돌로 인해 데이터베이스를 사용할 수 없는 경우 Application Server가 데이터베이스 연결을 자동으로 다시 설정합니다. 연결 검증을 수행하면 추가 오버헤드가 발생하여 성능이 약간 저하됩니다.
매개 변수 |
설명 |
---|---|
연결 검증 |
연결 검증을 활성화하려면 필수 확인란을 선택합니다. |
검증 방법 |
Application Server는 데이터베이스 연결을 자동 완결, 메타데이터 및 테이블의 세 가지 방법으로 검증할 수 있습니다. 자동 완결 및 메타데이터 - Application Server는 con.getAutoCommit() 및 con.getMetaData() 메소드를 호출하여 연결을 검증합니다. 주 – 많은 JDBC 드라이버에서 이러한 호출의 결과를 캐시하기 때문에 항상 신뢰할 수 있는 검증을 제공하는 것은 아닙니다. 이러한 호출의 캐시 여부를 판단하려면 드라이버 공급업체에 확인합니다. 테이블 - 응용 프로그램에서 지정된 데이터베이스 테이블을 쿼리합니다. 테이블이 반드시 필요하며 액세스할 수 있어야 하지만 행은 없어도 됩니다. 행이 많이 있는 기존 테이블이나 이미 자주 액세스하는 테이블은 사용하지 마십시오. |
테이블 이름 |
검증 방법 콤보 상자에서 테이블을 선택한 경우 여기에서 데이터베이스 테이블 이름을 지정합니다. |
실패 시 |
모든 연결 닫기 확인란을 선택한 경우 연결이 한 번 실패하면 Application Server는 풀의 모든 연결을 닫고 연결을 다시 설정합니다. 이 확인란을 선택하지 않으면 개별 연결을 사용할 경우에만 연결이 다시 설정됩니다. |
구성 요소가 아닌 호출자 허용 |
서블릿 필터 및 라이프사이클 모듈과 같이 구성 요소가 아닌 호출자가 풀을 사용할 수 있도록 하려면 이 확인란을 누릅니다. |
트랜잭션 격리 설정을 변경합니다.
대개 많은 사용자가 동시에 데이터베이스에 액세스하기 때문에 한 트랜잭션에서 데이터를 읽는 동안 다른 트랜잭션에서 해당 데이터를 업데이트할 수 있습니다. 트랜잭션의 격리 수준은 업데이트되는 데이터를 다른 트랜잭션에 표시하는 정도를 정의합니다. 격리 수준에 대한 자세한 내용은 데이터베이스 공급업체의 설명서를 참조하십시오.
매개 변수 |
설명 |
---|---|
트랜잭션이 아닌 연결 |
Application Server에서 트랜잭션이 아닌 모든 연결을 반환하도록 하려면 이 확인란을 누릅니다. |
트랜잭션 격리 |
이 풀의 연결에 대한 트랜잭션 격리 수준을 선택할 수 있게 합니다. 이 확인란을 선택하지 않으면 연결은 JDBC 드라이버에서 제공하는 기본 격리 수준으로 실행됩니다. |
격리 수준 보장 |
격리 수준이 지정된 경우에만 적용할 수 있습니다. 보장 확인란이 선택된 경우 풀에서 가져온 모든 연결은 동일한 격리 수준을 갖게 됩니다. 예를 들어, 마지막으로 사용 시 연결의 격리 수준을 프로그래밍 방식으로 변경한 경우(예: con.setTransactionIsolation 사용) 이 메커니즘은 상태를 지정한 격리 수준으로 다시 변경합니다. |
등록 정보를 변경합니다.
추가 등록 정보 테이블에서 데이터베이스 이름(URL), 사용자 이름 및 비밀번호 같은 등록 정보를 지정할 수 있습니다. 데이터베이스 공급업체에 따라 등록 정보가 다르기 때문에 자세한 내용은 공급업체의 설명서를 참조하십시오.
연결 누수를 진단하고 사용 편의성을 향상시키기 위해 Application Server 9.1은 연결 풀이 만들어지는 시점에서 이를 구성하기 위한 몇 가지 새로운 속성을 제공합니다.
고급 탭을 열고 다음 속성을 지정합니다.
속성 |
설명 |
이름 |
편집할 등록 정보를 포함하는 JDBC 연결 풀의 이름입니다. 하지만 풀 이름은 변경할 수 없습니다. |
명령문 시간 초과 |
비정상적으로 길게 실행되는 쿼리를 종료하기 전까지의 시간(초 단위)입니다. Application Server는 만들어지는 명령문에 "쿼리 시간 초과"를 설정합니다. 기본값인 -1은 속성이 활성화되지 않음을 의미합니다. |
JDBC 객체 래핑 |
true로 설정하면 응용 프로그램은 Statement, PreparedStatement, CallableStatement, ResultSet, DatabaseMetaData에 대해 래핑된 JDBC 객체를 가져옵니다. 기본값은 false입니다. |
연결 설정은 다음 표의 설명과 같이 지정합니다.
속성 |
설명 |
최대 1회 검증 |
연결이 최대 한 번 검증되기까지의 시간(초 단위)입니다. 연결의 검증 요청 수를 줄이는 데 도움이 됩니다. 기본값 0은 연결 검증이 활성화되지 않음을 의미합니다. |
누수 시간 초과 |
연결 풀의 연결 누수를 추적할 시간(초 단위)입니다. 기본값 0은 연결 누수 추적이 비활성화됨을 의미합니다. 연결 누수 추적이 활성화되면 자원 모니터링 탭에서 연결 누수의 수에 대한 통계를 얻을 수 있습니다. 이 탭을 보려면 Application Server > 모니터링 > 자원으로 이동하십시오. |
누수 재생 |
이 옵션을 활성화하면 누수된 연결이 누수 연결 추적 완료 후 풀로 복원됩니다. |
만들기 재시도 횟수 |
새 연결 만들기에 실패한 경우 재시도할 횟수입니다. 기본값 0은 연결 만들기를 다시 시도하지 않음을 의미합니다. |
재시도 간격 |
두 연결 만들기 시도 간의 간격(초 단위)을 지정합니다. 기본값은 10초입니다. 이 속성은 만들기 재시도 횟수의 값이 0보다 큰 경우에만 사용됩니다. |
지연 연결 참여 |
메소드에 실제로 사용되는 자원만 트랜잭션에 참여시키려는 경우 이 옵션을 활성화합니다. |
지연 연관 |
작업이 해당 연결에서 수행될 때 연결이 느리게 연결됩니다. 또한 트랜잭션이 완료되고 구성 요소 메소드가 종료되면 연관이 해제되어 물리적 연결의 재사용을 돕습니다. 기본값은 false입니다. |
스레드와 연결 |
연결을 스레드와 연관시켜 연결에서 같은 스레드가 필요할 때 해당 스레드에 이미 연관된 연결을 재사용함으로써 풀에서 연결을 가져올 때 수반되는 오버헤드를 줄이려면 이 옵션을 활성화합니다. 기본값은 false입니다. |
연결 일치 |
이 옵션을 사용하여 풀에 대한 연결 일치를 켜거나 끕니다. 풀의 연결이 항상 같은 종류이며 따라서 풀에서 선택된 연결을 자원 어댑터와 일치시킬 필요가 없음을 관리자가 알고 있을 때 false로 설정할 수 있습니다. 기본값은 false입니다. |
최대 연결 사용 수 |
풀이 재사용할 연결 횟수를 지정합니다. 연결을 지정된 횟수만큼 재사용한 다음에는 해당 연결이 닫힙니다. 예를 들어 명령문 누수를 피하려고 할 때 유용합니다. 기본값인 0은 연결이 재사용되지 않음을 의미합니다. |