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 Issues<br />

Propagation Issues<br />

Propagation makes use of the system queue aq$_prop_notify_X, where X is the<br />

instance number of the instance where the source queue of a schedule resides, for<br />

handling propagation run-time events. Messages in this queue are stored in the<br />

system table aq$_prop_table_X, where X is the instance number of the instance<br />

where the source queue of a schedule resides.<br />

Execute Privileges Required for Propagation<br />

Propagation jobs are owned by SYS, but the propagation occurs in the security<br />

context of the queue table owner. Previously propagation jobs were owned by the<br />

user scheduling propagation, and propagation occurred in the security context of<br />

the user setting up the propagation schedule. The queue table owner must be<br />

granted EXECUTE privileges on the DBMS_AQADM package. Otherwise, the <strong>Oracle</strong><br />

snapshot processes will not propagate and generate trace files with the error<br />

identifier SYS.DBMS_AQADM not defined. Private database links owned by the queue<br />

table owner can be used for propagation. The user name specified in the connection<br />

string must have EXECUTE access on the DBMS_AQ and DBMS_AQADM packages on<br />

the remote database.<br />

The Number of Job Queue Processes<br />

Caution: The queue aq$_prop_notify_X should never be<br />

stopped or dropped and the table aq$_prop_table_X should<br />

never be dropped for propagation to work correctly.<br />

The scheduling algorithm places the restriction that at least two job queue processes<br />

be available for propagation. If there are nonpropagation-related jobs, then more job<br />

queue processes are needed. If heavily loaded conditions (a large number of active<br />

schedules, all of which have messages to be propagated) are expected, you should<br />

start a larger number of job queue processes and keep in mind the need for<br />

nonpropagation jobs as well. In a system that only has propagation jobs, two job<br />

queue processes can handle all schedules. However, with more job queue processes,<br />

messages are propagated faster. Since one job queue process can propagate<br />

messages from multiple schedules, it is not necessary to have the number of job<br />

queue processes equal to the number of schedules.<br />

Managing AQ 4-11

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

Saved successfully!

Ooh no, something went wrong!