Question

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?

thanks!

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow