반응형
Oracle UCP(Universal Connection Pool)를 사용하여 헬스 체크와 연결 복구 기능을 강화할 수 있습니다. UCP는 자동으로 노드의 상태를 확인하고 문제가 있는 노드를 회피합니다.
import oracle.ucp.jdbc.PoolDataSource;
import oracle.ucp.jdbc.PoolDataSourceFactory;
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@(DESCRIPTION="
+ "(ADDRESS_LIST="
+ "(LOAD_BALANCE=ON)"
+ "(FAILOVER=ON)"
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=scan1.example.com)(PORT=1521))"
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=scan2.example.com)(PORT=1521))"
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=scan3.example.com)(PORT=1521))"
+ ")"
+ "(CONNECT_DATA=(SERVICE_NAME=your_service_name)))");
// 헬스 체크 인터벌 설정 (예: 5초)
pds.setValidateConnectionOnBorrow(true);
pds.setSecondsToTrustIdleConnection(5);
// 로드 밸런싱 설정
pds.setConnectionPoolName("UCP_POOL");
pds.setInitialPoolSize(5);
pds.setMinPoolSize(5);
pds.setMaxPoolSize(20);
- setValidateConnectionOnBorrow: 풀에서 연결을 가져올 때 헬스 체크를 수행하여 유효하지 않은 연결을 자동으로 제거합니다.
- setSecondsToTrustIdleConnection: 5초마다 연결 상태를 확인하여, 문제가 있는 연결을 회피하도록 합니다.
- setMinPoolSize 및 setMaxPoolSize: 연결 풀 크기를 설정하여 로드 밸런싱을 수행합니다.
반응형
'IT > Oracle' 카테고리의 다른 글
Oracle SQLException : ORA-01555: snapshot too old (0) | 2025.02.04 |
---|---|
오라클 데이터베이스에서 마리아DB(MariaDB) 접속 위한 DB Link 생성 (0) | 2025.02.03 |
SCAN 기반의 로드 밸런싱 및 헬스 체크 (0) | 2025.02.03 |
JDBC를 이용하여 오라클 데이터베이스 이중화 설정 (0) | 2025.02.03 |
오라클 락 - Enq : us contention (0) | 2025.02.03 |