현상
tbdsn.tbr 파일 내 이중화된 alias를 통해 DB에 접속할 경우, 접속 실패 시 재시도를 수행합니다.
종료된 DB에 접속을 시도할 경우 실패 응답(TBR-2131: Generic I/O error)까지 1분 이상 소요되는 현상이 발생합니다.
원인
tbdsn.tbr 파일에서 설정된 이중화 alias로 DB 접속 시 내부적으로 설정된 횟수인 20회의 재접속 시도가 이루어집니다.
이 과정에서 네트워크 설정 등에 따라 DB로부터의 ‘FAIL’ 응답이 1분 이상 지연되면서, 전체 응답 지연 현상이 발생합니다.
TEST=(
(INSTANCE=(HOST=192.168.47.2)
(PORT=8629)
(DB_NAME=tibero)
)
(INSTANCE=(HOST=192.168.47.3)
(PORT=8629)
(DB_NAME=tibero)
)
)
SQL
복사
해결
패치를 적용해 해결합니다. (적용 패치: 328257a)
328257a 패치를 통해 Failover 발생 시, Client 에서 DB로 재접속 횟수를 조절하는 TB_CONN_MAX_RETRIES 환경변수가 추가되었습니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
환경변수 TB_CONN_MAX_RETRIES를 설정함으로써 재시도 횟수를 유동적으로 조절할 수 있어, 불필요한 대기 시간을 줄일 수 있습니다.
TB_CONN_MAX_RETRIES 환경변수 미설정 시
$ tbsql sys/tibero
$ cat tbcli_20240909153346_14880.log | grep "clnt_comm_connect" | wc -l
SQL
복사
—> 21 출력
1회 접속 시도 실패 후 20회 재시도를 실행하게 됩니다.
02-23 15:33:46.659800 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
02-23 15:33:46.660223 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
02-23 15:33:46.660880 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
...
02-23 15:33:46.665283 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
02-23 15:33:46.665625 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
02-23 15:33:46.665709 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
02-23 15:33:46.666092 [14880][DBG] clnt_comm_:048 clnt_comm_connect:comm[0x1277110] dsn_info[0x127cb74] err_info[0x127dea8]
SQL
복사
TB_CONN_MAX_RETRIES=5 환경변수 설정 시
$ tbsql sys/tibero
$ cat tbcli_20240909153523_15394.log | grep "clnt_comm_connect" | wc -l
SQL
복사
—> 6 출력
1회 접속 시도 실패 후 5회 재시도를 실행하게 됩니다.