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.

Dequeue Features<br />

The following example shows how you can create a queue with specific maximum<br />

retry and retry delay interval.<br />

PL/SQL (DBMS_AQADM Package): Example Code<br />

/* Example for creating a back order queue in Western Region which allows a<br />

maximum of 5 retries and 1 day delay between each retry. */<br />

CONNECT BOLADM/BOLADM<br />

BEGIN<br />

dbms_aqadm.create_queue (<br />

queue_name => 'WS.WS_backorders_que',<br />

queue_table => 'WS.WS_orders_mqtab',<br />

max_retries => 5,<br />

retry_delay => 60*60*24);<br />

END;<br />

/<br />

/* Create an exception queue for the back order queue for Western Region. */<br />

CONNECT BOLADM/BOLADM<br />

BEGIN<br />

dbms_aqadm.create_queue (<br />

queue_name => 'WS.WS_backorders_excpt_que',<br />

queue_table => 'WS.WS_orders_mqtab',<br />

queue_type => DBMS_AQADM.EXCEPTION_QUEUE);<br />

end;<br />

/<br />

/* Enqueue a message to WS_backorders_que and specify WS_backorders_excpt_que as<br />

the exception queue for the message: */<br />

CONNECT BOLADM/BOLADM<br />

CREATE OR REPLACE PROCEDURE enqueue_WS_unfilled_order(backorder order_typ)<br />

AS<br />

back_order_queue_name varchar2(62);<br />

enqopt dbms_aq.enqueue_options_t;<br />

msgprop dbms_aq.message_properties_t;<br />

enq_msgid raw(16);<br />

BEGIN<br />

/* Set back order queue name for this message: */<br />

back_order_queue_name := 'WS.WS_backorders_que';<br />

/* Set exception queue name for this message: */<br />

msgprop.exception_queue := 'WS.WS_backorders_excpt_que';<br />

dbms_aq.enqueue(back_order_queue_name, enqopt, msgprop,<br />

A Sample Application Using AQ 8-83

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

Saved successfully!

Ooh no, something went wrong!