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

COMMIT;<br />

EXCEPTION<br />

WHEN OTHERS THEN /* change to no data found */<br />

/* First update for the order: */<br />

INSERT INTO order_status_table(customer_order, status)<br />

VALUES (order_msg, new_status);<br />

COMMIT;<br />

END;<br />

END;<br />

/<br />

/* Dequeues message from 'QUEUE' for 'CONSUMER': */<br />

CREATE OR REPLACE PROCEDURE DEQUEUE_MESSAGE(<br />

queue IN VARCHAR2,<br />

consumer IN VARCHAR2,<br />

message OUT BOLADM.order_typ)<br />

IS<br />

dopt dbms_aq.dequeue_options_t;<br />

mprop dbms_aq.message_properties_t;<br />

deq_msgid RAW(16);<br />

BEGIN<br />

dopt.dequeue_mode := dbms_aq.REMOVE;<br />

dopt.navigation := dbms_aq.FIRST_MESSAGE;<br />

dopt.consumer_name := consumer;<br />

dbms_aq.dequeue(<br />

queue_name => queue,<br />

dequeue_options => dopt,<br />

message_properties => mprop,<br />

payload => message,<br />

msgid => deq_msgid);<br />

commit;<br />

END;<br />

/<br />

/* Monitor the queues in the customer service databse for 'time' seconds: */<br />

CREATE OR REPLACE PROCEDURE MONITOR_STATUS_QUEUE(time IN NUMBER)<br />

IS<br />

agent_w_message aq$_agent;<br />

agent_list dbms_aq.agent_list_t;<br />

wait_time INTEGER := 120;<br />

8-92 <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!