Start oracle dequeue on startup
I got the following error of Oracle,
ORA-25226: dequeue failed, queue string.string is not enabled for dequeue
And the following is the Cause and Action for it from the official document:
Cause: The queue has not been enabled for dequeue. Action: Enable the queue using START_QUEUE.
But this error occurs every time when restart the database, is there any configuration to set to start the dequeue on database startup?
What is the status of the queue in dba_queues
select owner,name,enqueue_enabled,dequeue_enabled from dba_queues;
If the queue is disabled, then start it with
begin dbms_aqadm.start_queue(queue_name => '<OWNER.QUEUE_NAME>'); end; /
I believe this should persist across restarts, I haven't tested though.
In my case it was caused by the lack of
DECLARE subscriber sys.aq$_agent; BEGIN subscriber := sys.aq$_agent('subscriber1', '<OWNER.QUEUE_NAME>', null); DBMS_AQADM.ADD_SUBSCRIBER( queue_name => '<OWNER.QUEUE_NAME>', subscriber => subscriber); END;
It's all boilerplate and it allows me to actually receive messages.