Advanced Queuing

vanitas-mundi

Neuer Benutzer
Beiträge
2
Hallo!

Ich habe mit DBMS_AQADM eine Queue-Table + Queue erstellt, diese gestartet und mit
DBMS_AQ eine CallBack-Procedure registriert.

Nach einem Aufruf von DBMS_AQ.ENQUEUE und DBMS_AQ.DEQUEUE in der
CallBack-Procedure konnte ich auch tatsächliche meine Message verarbeiten.

So weit klappt alles prächtig ... aber wenn ich in der Message-Bearbeitung
mit DBMS_SESSION.SLEEP etwas Bearbeitungszeit simuliere, dann
werden weitere mit DBMS_AQ.ENQUEUE erzeugte Messages, erst
abgearbeitet, wenn die unter SLEEP definierte Zeit abgelaufen ist, zudem
kann man in SYS_CONTEXT('SESSION_ID') sehen, dass jede Message
mit der selben SessionId von der CallBack-Procedure bearbeitet wird.

In der Oracle-Dokumentation habe ich für mich heraus gelesen, dass
die Messages asynchron verarbeitet werden.

Ist dies ein Trugschluss oder was muss getan werden, dass die
CallBack-Procedure die Messages asynchron verarbeiten kann?

Danke, für jede Hilfe
 
Werbung:
Werbung:
Hallo!

job_queue_processes hat den Wert 80

Zudem habe ich dem Thread folgend vor dem ENQUEUE und DEQUEUE
l_options.VISIBILITY auf den Wert DBMS_AQ.IMMEDIATE gesetzt.

Das Verhalten ist jedoch gleich geblieben - hat jemand vielleicht noch
einen sachdienlichen Tipp?

Danke, für jede Hilfe!
 
Zurück
Oben