09.12.2012 Views

Advanced Queuing - Oracle

Advanced Queuing - Oracle

Advanced Queuing - Oracle

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Enqueuing and Dequeuing Of Messages<br />

BEGIN<br />

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

dequeue_options.wait := DBMS_AQ.NO_WAIT;<br />

BEGIN<br />

/* Consumer BLUE will get MESSAGE 2: */<br />

dequeue_options.consumer_name := ’BLUE’;<br />

dequeue_options.navigation := FIRST_MESSAGE;<br />

LOOP<br />

DBMS_AQ.DEQUEUE(queue_name => ’msg_queue_multiple’,<br />

dequeue_options => dequeue_options,<br />

message_properties => message_properties,<br />

payload => message,<br />

msgid => message_handle);<br />

DBMS_OUTPUT.PUT_LINE (’Message: ’ || message.subject ||<br />

’ ... ’ || message.text );<br />

dequeue_options.navigation := NEXT_MESSAGE;<br />

END LOOP;<br />

EXCEPTION<br />

WHEN no_messages THEN<br />

DBMS_OUTPUT.PUT_LINE (’No more messages for BLUE’);<br />

COMMIT;<br />

END;<br />

BEGIN<br />

/* Consumer RED will get MESSAGE 1 and MESSAGE 2: */<br />

dequeue_options.consumer_name := ’RED’;<br />

dequeue_options.navigation := DBMS_AQ.FIRST_MESSAGE<br />

LOOP<br />

DBMS_AQ.DEQUEUE(queue_name => ’msg_queue_multiple’,<br />

dequeue_options => dequeue_options,<br />

message_properties => message_properties,<br />

payload => message,<br />

msgid => message_handle);<br />

DBMS_OUTPUT.PUT_LINE (’Message: ’ || message.subject ||<br />

’ ... ’ || message.text );<br />

dequeue_options.navigation := NEXT_MESSAGE;<br />

END LOOP;<br />

EXCEPTION<br />

A-46 <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!