Oracle
 sql >> Database >  >> RDS >> Oracle

Ordine di rimozione dalla coda di Oracle AQ

Credo che l'ordine di rimozione dalla coda predefinito sia first in first out, quindi verranno rimossi nello stesso ordine in cui sono stati accodati.

Per il tuo secondo punto, stai dicendo che vuoi serializzare la dequeue sull'id non univoco? In pratica, hai molte code all'interno della tua coda e desideri che un solo lavoro consumi i messaggi da ciascuna coda alla volta?

Cioè, hai dei messaggi:

1 | a
2 | a
3 | b
4 | a

Qui hai due tipi di record (aeb) e vuoi 1 lavoro per consumare tutte le a e un altro per consumare tutte le b. In tal caso, potresti forse creare più code?

In mancanza di più code, dai un'occhiata al tipo dequeue_options_t che passi alla procedura di dequeue - in particolare dequeue_condition - questo ti consente di selezionare solo messaggi specifici, quindi potresti iniziare un lavoro per tutte le a e un altro per tutte le b ecc.