Reputation: 2141
I decided to try scheduling my jobs using oracle scheduler, I Created set of jobs and I try to intercommunicate those jobs using queue
and I tried with one or two jobs it is running perfectly , but when i use of bunch of jobs (more than 20 jobs) and trying to communicate with those using queue
. After a job get succeeded it will post a more number of messages into the queue
for other jobs parallelly , after some successful posts it throws this error
SQL> @put.sql
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
SQL> BEGIN SAMPLE_ENQ_MSG('SAMPLE','SUCCESS'); END;
*
ERROR at line 1:
ORA-25455: evaluation error for rule set: DB_ADMIN.QUEUE_KONRAD23_R,
evaluation context: DB_ADMIN.AQ$_QUEUE_KONRAD23_TAB_V
ORA-25447: encountered errors during evaluation of rule
SYS.SCHEDULER$_RN$_146982
ORA-27355: unable to lock row cache entry
ORA-06512: at "SYS.DBMS_ISCHED", line 7503
ORA-06512: at "SYS.DBMS_AQ", line 169
ORA-06512: at "DB_ADMIN.SAMPLE_ENQ_MSG", line 9
ORA-06512: at line 1
My Doubts:
Why this error occur
How to overcome this error
Upvotes: 2
Views: 1517
Reputation: 2141
It was a oracle bug
, caused by posting simultaneous messages (many) at a time will make the queue to a dead lock and it cant be used again .
And it was patched
now .
Upvotes: 1