현상
수동으로 JOB을 수행할 경우 정상적으로 실행되지만, 자동으로는 수행되지 않는 문제가 발생했습니다.
원인
버그 1: bitq 지속 발생 원인
Job scheduler thread가 한 번도 slog를 기록한 적이 없는 상태에서 slog switch가 발생하는 경우, 기존 구현에서는 로그를 한 번도 기록하지 않은 thread에 대해 별도 처리 없이 넘어가도록 되어 있었습니다.
그 결과 agent는 해당 thread에서 log switch가 아직 완료되지 않았다고 판단하고, fd check 주기(3초)마다 해당 job scheduler thread에게 계속해서 bitq 신호를 전송하게 됩니다.
버그 2: bitq 수신 후 처리 오류
signal을 받아 깨어난 경우에도 timeout 재계산은 수행했지만, 계산 로직 오류로 인해 timeout 시간이 점점 늘어나는 문제가 있었습니다.
masking되지 않은 bitq(ex. log switch bitq)를 수신해 깨어난 경우, 재계산 로직 자체가 누락되어 처음 설정된 timeout 값 그대로 다시 잠드는 문제가 발생했습니다.
해결
bitq 발생 원인 관련
156652q 이상 버전의 패치를 적용하여 해결합니다.
bit 처리 로직 개선
225787 버전의 패치를 적용하여 해결합니다.
bitq read 중 timeout을 걸고 대기하는 상황에서 관련 없는 bitq를 수신해 깨어날 경우, timeout 값을 다시 계산하도록 로직을 수정하였습니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
임시우회로 해당 dummy job 등록 시 현상이 해소됩니다.
DECLARE
job_no number;
BEGIN
DBMS_JOB.SUBMIT(job_no,
'dbms_lock.sleep(1);',
SYSDATE,
'SYSDATE+2/86400');
END;
/
SQL
복사
dummy job 테스트
1. 문제 job(4) 조회
SQL> SELECT * FROM DBA_JOBS where JOB='4';
JOB SCHEMA_USER NEXT_DATE INTERVAL BROKEN FAILURES WHAT INSTANCE LAST_DATE THIS_DATE
---------- ----------- -------------------- -------------------- ------ ---------- -------------------- ---------- -------------------- ----------------------------------------------------------------
4 32 2024/04/06 TRUNC(SYSDATE+1) N 0 KOSEAIS.SP_HRM_APPNT 0 2024/04/05
1 row selected.
2. 2초 job(22) 등록, 조회
DECLARE
job_no number;
BEGIN
DBMS_JOB.SUBMIT(job_no,
'dbms_lock.sleep(1);',
SYSDATE,
'SYSDATE+2/86400');
END;
/
SQL> SELECT * FROM DBA_JOBS where JOB='22';
JOB SCHEMA_USER NEXT_DATE INTERVAL BROKEN FAILURES WHAT INSTANCE LAST_DATE THIS_DATE
---------- ----------- -------------------- -------------------- ------ ---------- -------------------- ---------- -------------------- ----------------------------------------------------------------
22 0 2024/04/05 SYSDATE+2/86400 N 0 dbms_lock.sleep(1); 0 2024/04/05
3. 문제 job(4) -> 자동 수행 확인
SQL> select * from dba_job_history where job = 4 order by end_date desc;
JOB NAME SCHEMA_USER INSTANCE START_DATE END_DATE RESULT COMMENTS
---------- ---------- ----------- ---------- -------------------- -------------------- ---------- --------------------
4 32 0 2024-04-05 18:02:27 2024-04-05 18:02:27 SUCCESS
4 32 0 2024-04-05 17:08:16 2024-04-05 17:08:16 SUCCESS
4 32 0 2024-04-05 16:55:02 2024-04-05 16:55:02 SUCCESS
4 32 0 2024-04-05 16:54:01 2024-04-05 16:54:01 SUCCESS
4 32 0 2024-04-05 16:53:00 2024-04-05 16:53:00 SUCCESS
4 32 0 2024-04-05 16:52:00 2024-04-05 16:52:00 SUCCESS
SQL
복사