Document Type | Troubleshooting
Category | Administration
Applicable Product Versions | 6FS06, 6FS07
Document Number | TADTS056
Issue
When executing a JOB manually, it runs normally, but there is an issue where it does not execute automatically.
Cause
Bug 1: Cause of continuous bitq occurrence
If a job scheduler thread has never recorded slog and a slog switch occurs, the existing implementation would skip the thread without special handling.
As a result, the agent considers that the log switch has not yet completed on that thread and continuously sends bitq signals to the job scheduler thread every fd check cycle (3 seconds).
Bug 2: Error in processing after receiving bitq
Although timeout recalculation was performed when awakened by receiving a signal, there was a logic error causing the timeout duration to gradually increase.
When awakened by receiving an unmasked bitq (e.g., log switch bitq), the recalculation logic itself was missing, causing the thread to go back to sleep with the initially set timeout value.
Solutions
Regarding the cause of bitq occurrence
Apply the patch for version 156652q or later to resolve the issue.
Improvement of bit processing logic
Apply the patch for version 225787 to resolve the issue.
The logic has been revised so that when awakened by receiving an unrelated bitq during a bitq read timeout wait, the timeout value is recalculated.
CautionApply the patch through technical support provided by Tmax Tibero.
ReferenceAs a temporary workaround, registering the following dummy job resolves the symptom.DECLARE job_no number; BEGIN DBMS_JOB.SUBMIT(job_no, 'dbms_lock.sleep(1);', SYSDATE, 'SYSDATE+2/86400'); END; /
Dummy job test1. Check problem 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. Register and check 2-second 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. Confirm automatic execution of problem 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