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.

* Bind the host variable ’message’: to payload */<br />

dbms_aq.enqueue(queue_name => ’msg_queue’,<br />

message_properties => message_properties,<br />

enqueue_options => enqueue_options,<br />

payload => :message,<br />

msgid => msgid);<br />

END;<br />

END-EXEC;<br />

/* Commit work: */<br />

EXEC SQL COMMIT;<br />

printf("Enqueued Message \n");<br />

printf("Subject :%s\n",subject);<br />

printf("Text :%s\n",txt);<br />

/* First dequeue - by correlation */<br />

EXEC SQL EXECUTE<br />

DECLARE<br />

message_properties dbms_aq.message_properties_t;<br />

dequeue_options dbms_aq.dequeue_options_t;<br />

msgid RAW(16);<br />

BEGIN<br />

/* Dequeue by correlation in host variable ’correlation2’: */<br />

dequeue_options.correlation := :correlation2;<br />

/* Return the payload into host variable ’message’: */<br />

dbms_aq.dequeue(queue_name => ’msg_queue’,<br />

message_properties => message_properties,<br />

dequeue_options => dequeue_options,<br />

payload => :message,<br />

msgid => msgid);<br />

END;<br />

END-EXEC;<br />

/* Commit work : */<br />

EXEC SQL COMMIT;<br />

Enqueuing and Dequeuing Of Messages<br />

/* Extract the values of the components of message: */<br />

EXEC SQL OBJECT GET subject, text FROM :message INTO :subject,:txt;<br />

printf("Dequeued Message \n");<br />

printf("Subject :%s\n",subject);<br />

printf("Text :%s\n",txt);<br />

/* SECOND DEQUEUE - by MSGID */<br />

<strong>Oracle</strong> <strong>Advanced</strong> <strong>Queuing</strong> by Example A-41

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

Saved successfully!

Ooh no, something went wrong!