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

pragma exception_init (no_messages, -25228);<br />

new_orders BOOLEAN := TRUE;<br />

begin<br />

end;<br />

/<br />

dopt.consumer_name := consumer;<br />

dopt.wait := 1;<br />

dopt.correlation := ’RUSH’;<br />

IF (consumer = ’West_Shipping’) THEN<br />

qname := ’WS.WS_bookedorders_que’;<br />

ELSIF (consumer = ’East_Shipping’) THEN<br />

qname := ’ES.ES_bookedorders_que’;<br />

ELSE<br />

qname := ’OS.OS_bookedorders_que’;<br />

END IF;<br />

WHILE (new_orders) LOOP<br />

BEGIN<br />

dbms_aq.dequeue(<br />

queue_name => qname,<br />

dequeue_options => dopt,<br />

message_properties => mprop,<br />

payload => deq_order_data,<br />

msgid => deq_msgid);<br />

commit;<br />

deq_item_data := deq_order_data.items(1);<br />

deq_book_data := deq_item_data.item;<br />

dbms_output.put_line(’ rushorder book_title: ’ ||<br />

deq_book_data.title ||<br />

’ quantity: ’ || deq_item_data.quantity);<br />

EXCEPTION<br />

WHEN no_messages THEN<br />

dbms_output.put_line (’ ---- NO MORE RUSH TITLES ---- ’);<br />

new_orders := FALSE;<br />

END;<br />

END LOOP;<br />

CONNECT EXECUTE on get_rushtitles to ES;<br />

8-60 <strong>Oracle</strong>9i Application Developer’s Guide - <strong>Advanced</strong> <strong>Queuing</strong>

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

Saved successfully!

Ooh no, something went wrong!