7 Troubleshooting Oracle Database Advanced Queuing
These topics describe how to troubleshoot Oracle Database Advanced Queuing (AQ).
Debugging Oracle Database Advanced Queuing Propagation Problems
These tips should help with debugging propagation problems. This discussion assumes that you have created queue tables and queues in source and target databases and defined a database link for the destination database.
The notation assumes that you supply the actual name of the entity (without the brackets).
See Also:
To begin debugging, do the following:
Oracle Database Advanced Queuing Error Messages
The Oracle Database Advanced Queuing Error Messages are listed here.
ORA-1555
You might get this error when using the NEXT_MESSAGE
navigation option for dequeue. NEXT_MESSAGE
uses the snapshot created during the first dequeue call. After that, undo information may not be retained.
The workaround is to use the FIRST_MESSAGE
option to dequeue the message. This reexecutes the cursor and gets a new snapshot. FIRST_MESSAGE
does not perform as well as NEXT_MESSAGE
, so Oracle recommends that you dequeue messages in batches: FIRST_MESSAGE
for one, NEXT_MESSAGE
for the next 1000 messages, then FIRST_MESSAGE
again, and so on.
ORA-24033
This error is raised if a message is enqueued to a multiconsumer queue with no recipient and the queue has no subscribers (or rule-based subscribers that match this message). This is a warning that the message will be discarded because there are no recipients or subscribers to whom it can be delivered.
ORA-25237
When using the Oracle Database Advanced Queuing navigation option, you must reset the dequeue position by using the FIRST_MESSAGE
option if you want to continue dequeuing between services (such as xa_start
and xa_end
boundaries). This is because XA cancels the cursor fetch state after an xa_end
. If you do not reset, then you get an error message stating that the navigation is used out of sequence.
ORA-25307
Flow control has been enabled for the message sender. This means that the fastest subscriber of the sender's message is not able to keep pace with the rate at which messages are enqueued. The buffered messaging application must handle this error and attempt again to enqueue messages after waiting for some time.