1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Advanced Queuing

Dieses Thema im Forum "Oracle" wurde erstellt von vanitas-mundi, 11 Dezember 2019.

  1. vanitas-mundi

    vanitas-mundi Neuer Benutzer

    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
     
  2. unficyp

    unficyp Fleissiger Benutzer

  3. vanitas-mundi

    vanitas-mundi Neuer Benutzer

    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!
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden