09.12.2012 Views

Advanced Queuing - Oracle

Advanced Queuing - Oracle

Advanced Queuing - Oracle

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Propagation Features<br />

retry time is beyond the expiration time of the current window, the next retry is<br />

attempted at the start time of the next window. A maximum of 16 retry attempts is<br />

made, after which the schedule is automatically disabled. When a schedule is<br />

disabled automatically due to failures, the relevant information is written into the<br />

alert log.<br />

A check for scheduling failures indicates:<br />

How many successive failures were encountered<br />

<br />

The error message indicating the cause for the failure<br />

The time at which the last failure was encountered<br />

<br />

By examining this information, a queue administrator can fix the failure and enable<br />

the schedule. During a retry, if propagation is successful, the number of failures is<br />

reset to 0.<br />

Propagation has support built-in for <strong>Oracle</strong> Real Application Clusters and is<br />

transparent to the user and the queue administrator. The job that handles<br />

propagation is submitted to the same instance as the owner of the queue table<br />

where the queue resides.<br />

If there is a failure at an instance and the queue table that stores the queue is<br />

migrated to a different instance, the propagation job is also migrated to the new<br />

instance. This will minimize pinging between instances and thus offer better<br />

performance. Propagation has been designed to handle any number of concurrent<br />

schedules. Note that the number of job queue processes is limited to a maximum of<br />

1000, and some of these may be used to handle nonpropagation-related jobs. Hence,<br />

propagation has built-in support for multitasking and load balancing.<br />

The propagation algorithms are designed such that multiple schedules can be<br />

handled by a single snapshot (job_queue) process. The propagation load on a job_<br />

queue process can be skewed based on the arrival rate of messages in the different<br />

source queues.<br />

If one process is overburdened with several active schedules while another is less<br />

loaded with many passive schedules, propagation automatically re-distributes the<br />

schedules so they are loaded uniformly.<br />

Scenario<br />

In the BooksOnLine example, the OE_bookedorders_que is a busy queue since<br />

messages in it are propagated to different shipping sites. The following example<br />

code illustrates the calls supported by enhanced propagation scheduling for error<br />

checking and schedule monitoring.<br />

A Sample Application Using AQ 8-115

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!