Wie in Oracle AQ sagen, welche Nachrichten werden von einer mehr Verbrauchern Warteschlange verbraucht worden

StackOverflow https://stackoverflow.com/questions/4272454

  •  28-09-2019
  •  | 
  •  

Frage

Ich bin neu in Oracle AQ.

Ich habe eine Tabelle und eine Warteschlange wie so erstellt:

EXEC dbms_aqadm.create_queue_table(queue_table=>'MY_QUEUE_TABLE',
                                   queue_payload_type=>'sys.aq$_jms_text_message',
                                   multiple_consumers=>TRUE);

EXEC dbms_aqadm.create_queue(queue_name=>'CONTACT_INFO_QUEUE',
                             queue_table=>'MY_QUEUE_TABLE',
                             max_retries=>24,
                             retry_delay=>60,
                             retention_time=>3600);

Dann habe ich einen Zuhörer in die Warteschlange in Java. Als ich den Hörer starten, wartet er 6 Minuten und sammelt dann alle Nachrichten aus der Warteschlange.

Aber ich kann nicht in MY_QUEUE_TABLE sagen, welche Nachrichten verbraucht wurden. Weil ich eine mehr Verbraucher Warteschlangen will, glaube ich, die Nachrichten dableiben sollten. Doch wie funktioniert Oracle AQ zu verfolgen, welche Nachrichten jeder Zuhörer verbraucht hat?

War es hilfreich?

Lösung

Jede Warteschlange wird Kurs zu halten und sicherzustellen, dass alle Verbraucher aus der Warteschlange entfernt haben. Sie können an der tatsächlichen Warteschlangentabelle schauen, um zu sehen, wie viele Verbraucher eine Nachricht verbraucht haben. Überprüfen aq $ _my_queue_table und aq $ _my_queue_table_I den Status von Nachrichten zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top