1

I would like to find out if it is possible to setup exponential retry delay on Oracle AQ subscription

if the message is dequed from the AQ and cannot be processed I would like to rollback the meesage to the queue and retry after 1 min then 2 min and 8 hours

I am using publish and subscribe method where a subscription is a pl/sql procedure within the same db (I am not using queue to queue propagation)

DBMS_AQADM.CREATE_QUEUE(
queue_name => l_queue_name,
queue_table => l_qtable_name,
max_retries => 3,
retry_delay => 1,
retention_time => 1209600);

retry delay is a constant number and is not exponential

is there a workaround?

1 Answers1

1

Advance Queuing does not have exponential retry but we can implement it like below. We can have one master tables that keeps log of all messages that queued in queue and we maintain status on this table when a message got processed we put status to synced in that table and if failed we set it to failed and all the failed messages can we pushed again at your desired interval via oracle scheduled job. In master log table you need to maintain all data that is required to push in the Queue. It is always a good practice to implement AQ on a master log table it also gives you better debug options in long run.

Manish
  • 36
  • 2