ابدأ Oracle Dequeue عند بدء التشغيل
سؤال
حصلت على الخطأ التالي لأوراكل ،
ORA-25226: dequeue failed, queue string.string is not enabled for dequeue
وما يلي هو السبب والعمل من الوثيقة الرسمية:
Cause: The queue has not been enabled for dequeue.
Action: Enable the queue using START_QUEUE.
ولكن يحدث هذا الخطأ في كل مرة عند إعادة تشغيل قاعدة البيانات ، هل هناك أي تكوين يجب تعيينه لبدء تشغيل Dequeue في بدء تشغيل قاعدة البيانات؟
شكرًا!
المحلول
ما هي حالة قائمة الانتظار في dba_queues
select owner,name,enqueue_enabled,dequeue_enabled from dba_queues;
إذا تم تعطيل قائمة الانتظار ، فابدأ معها
begin
dbms_aqadm.start_queue(queue_name => '<OWNER.QUEUE_NAME>');
end; /
أعتقد أن هذا يجب أن يستمر عبر عمليات إعادة التشغيل ، لم أختبر رغم ذلك.
نصائح أخرى
في حالتي كان سبب ذلك
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;
إنه كل الغلاية ويسمح لي بتلقي الرسائل بالفعل.
لا تنتمي إلى StackOverflow