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.

Enqueuing and Dequeuing Of Messages<br />

}<br />

/* Dequeue a message: */<br />

message = queue.dequeue(deq_option);<br />

/* Retrieve raw data from the message: */<br />

raw_payload = message.getRawPayload();<br />

b_array = raw_payload.getBytes();<br />

String ret_value = new String(b_array);<br />

System.out.println("Dequeued message: " + ret_value);<br />

db_conn.commit();<br />

Enqueuing and Dequeuing of Messages by Priority Using PL/SQL<br />

When two messages are enqued with the same priority, the message which was<br />

enqued earlier will be dequeued first. However, if two messages are of different<br />

priorities, the message with the lower value (higher priority) will be dequeued first.<br />

/* Enqueue two messages with priority 30 and 5: */<br />

DECLARE<br />

enqueue_options dbms_aq.enqueue_options_t;<br />

message_properties dbms_aq.message_properties_t;<br />

message_handle RAW(16);<br />

message aq.message_typ;<br />

BEGIN<br />

message := message_typ(’PRIORITY MESSAGE’,<br />

’enqued at priority 30.’);<br />

message_properties.priority := 30;<br />

DBMS_AQ.ENQUEUE(queue_name => ’priority_msg_queue’,<br />

enqueue_options => enqueue_options,<br />

message_properties => message_properties,<br />

payload => message,<br />

msgid => message_handle);<br />

message := message_typ(’PRIORITY MESSAGE’,<br />

’Enqueued at priority 5.’);<br />

message_properties.priority := 5;<br />

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