Gebeurtenissenwachtrij
Elke daadwerkelijk vastgelegde gebeurtenis — en elke testpayload van Berichtvoorbeeld — wordt asynchroon afgeleverd via een wachtrij, niet synchroon binnen de transactie die de gebeurtenis heeft veroorzaakt. Open deze via de actie Event Queue in Instellingen.
Elk item toont:
- Table Name / Event Type — welke tabel en welke van insert/modify/rename/delete deze heeft geproduceerd.
- Status — Pending (wacht om te worden verzonden, of wacht een retry-vertraging af), Processing (wordt momenteel verzonden), Sent (afgeleverd — wordt ongeveer 15 minuten later door de terugkerende opschoning verwijderd, zodat de lijst gericht blijft op wat nog onderweg is of is mislukt; zie Hoe aflevering werkt), of Error (opgegeven — zie De foutmeldingen lezen hieronder).
- Modified At — wanneer het onderliggende record daadwerkelijk is gewijzigd.
- Processing Started At — wanneer dit item voor het laatst werd opgepakt om te worden verzonden.
- Retry Count / Retry After — hoeveel keer een poging voor dit item is mislukt met een retry-baar resultaat, en het vroegste tijdstip waarop het opnieuw zal worden geprobeerd.
- Error Message — waarom de laatste poging is mislukt, zodra dat het geval is. Gewoon platte tekst — in tegenstelling tot een mislukte Send Test Payload is dit nooit een klikbare link naar Setup of Extension Management.
Voor RabbitMQ specifiek betekent Sent alleen dat het bericht succesvol is overgedragen aan de RabbitMQ Management API — niet dat het een wachtrij heeft bereikt. Het antwoord van RabbitMQ zelf geeft aan of het bericht daadwerkelijk is gerouteerd (d.w.z. of de exchange op dat moment een bijpassende wachtrijkoppeling ervoor had), maar Event Bridge behandelt een succesvolle overdracht hoe dan ook als aflevering — een niet-gerouteerd bericht toont nog steeds Sent, niet Error, aangezien routering een kwestie van broker-configuratie is en geen taak die Event Bridge niet heeft uitgevoerd. Als een tabel en eindpunt correct zijn geconfigureerd maar er niets aankomt aan de RabbitMQ-kant, controleer dan de wachtrijkoppelingen en routing key van de exchange voordat je ervan uitgaat dat Event Bridge niet verzendt.
Hoe aflevering werkt
Business Central voert per brontabel een achtergrondtaak uit die de bijbehorende wachtrij leegt zodra een gebeurtenis in de wachtrij wordt geplaatst, dus er is geen wachttijd voor de gebruiker en niets om per tabel te configureren. Een fout die tijdelijk lijkt (een netwerkfout, of een HTTP 5xx-, 408- of 429-respons) wordt automatisch opnieuw geprobeerd, waarbij de Retry-After-header van het eindpunt wordt gerespecteerd als deze die verstuurt, of anders na een standaardvertraging van 1 minuut — tot aan Maximum aantal pogingen voordat het item als Error wordt gemarkeerd. Elke andere fout (bijv. een 4xx anders dan 408/429, een ongeldige inloggegeven, een ontbrekende Setup-waarde) wordt onmiddellijk als Error gemarkeerd zonder opnieuw te proberen, aangezien opnieuw proberen het probleem niet zou oplossen.
Als extra vangnet bovenop deze taak per tabel, voer je eenmalig Schedule Automatic Retries uit op Instellingen — dit maakt een terugkerend jobqueue-item aan (elke 5 minuten) dat elk item dat langer dan 15 minuten vastzit op Processing resetzo (bijv. nadat een sessie halverwege het verzenden werd onderbroken), elke tabel oppikt waarvan de achtergrondtaak verloren is gegaan, en Sent-items verwijdert zodra ze ongeveer 15 minuten oud zijn, zodat de wachtrij niet eindeloos groeit. Zonder dat dit is ingepland, gebeurt niets van die opschoning vanzelf — items worden nog steeds verzonden, maar het herstel van vastgelopen/verloren items en het opschonen van voltooide items gebeurt alleen wanneer deze job wordt uitgevoerd.
Acties
- Retry Failed Entries — zet elk Error-item terug naar Pending (en het aantal pogingen terug naar 0), zodat het opnieuw wordt geprobeerd. Gebruik dit zodra je het probleem daadwerkelijk hebt opgelost — opnieuw proberen zonder de oorzaak te verhelpen mislukt gewoon weer op dezelfde manier.
- Flush Failed Entries — verwijdert elk Error-item permanent zonder het opnieuw te verzenden. Gebruik dit om mislukkingen op te ruimen die je hebt besloten niet verder na te jagen.
- Reset Stuck Tasks — annuleert de gevolgde achtergrondtaak voor elke brontabel en plant een nieuwe voor elke tabel met openstaande items. Gebruik dit als items op Pending blijven staan zonder ooit naar Processing of Sent over te gaan.
- Clear Queue — verwijdert permanent elk item, ongeacht de status, en annuleert alle gevolgde achtergrondtaken. Reeds vastgelegde gebeurtenissen gaan verloren en kunnen niet opnieuw worden verzonden — dit heeft alleen invloed op wat momenteel in de wachtrij staat, niet op toekomstige gebeurtenissen.
Wie dit kan gebruiken
De Gebeurtenissenwachtrij vereist dezelfde Event Bridge Admin-toegang die nodig is voor Instellingen en Gebeurtenistabellen — zie Licenties en toegang.