ORACLE Advanced Queueing (AQ): Typische Fehlermeldungen
Oracle Error: ORA-1555
Dieser Fehler tritt häufig auf, wenn für das Dequeuing die Navigationsoption "next_message" genutzt wird. Diese nutzt einen Snapshot, der beim ersten Dequeue-Aufruf erzeugt wird. Fehlen darauf folgende Undo-Informationen, so tritt dieser Fehler auf.
Zur Vermeidung dieses Fehlers nutzen Sie die Option "first_message" für ein Dequeue der Nachricht. So wird der Cursor erneut ausgeführt, ein neuer Snapshot wird erzeugt. Die Option "first_message" ist jedoch leider nicht so performant wie die Option "next_message". Daher empfiehlt sich die folgende Vorgehensweise in Batch-Jobs: Zunächst die Verwendung von "first_message", danach für die nächsten 800 Nachrichten die Option "next_message", danach erneut die Verwendung der Option "first_message" und anschließend wieder für 800 Nachrichten die Option "next_message". So vermeiden Sie den Fehler "Snapshot too old", ziehen die Performance dennoch nicht allzu stark in Mitleidenschaft.
Oracle Error: ORA-24033
Dieser Fehler tritt häufig dann auf, wenn eine Nachricht in eine Multi-Consumer-Queue gelegt wird, die jedoch keinen Empfänger bzw. keinen Subscriber hat, der passende Rollen nutzt. Es handelt sich bei diesem Fehler um eine Warnmeldung, die darauf hinweist, dass die Nachricht verworfen wird, da es keine Rezipienten bzw. passenden Subscriber gibt.
Oracle Error: ORA-25237
XA beendet einen Cursor Fetch, sobald ein XA_END erfolgt ist. Wird danach die Dequeue-Position nicht der Option "first_message" zurückgesetzt, so tritt dieser Fehler auf.
Oracle Error: ORA-25307
Diese Meldung besagt, dass die Flusskontrolle aktiviert wurde. Der schnellste Subscriber kann also mit der Enqueue-Rate nicht mehr Schritt halten.
Lutz Fröhlich
held-informatik
de
info