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.

Asynchronous Notifications<br />

First define a PL/SQL procedure that will be invoked on notification.<br />

connect ws/ws;<br />

set echo on;<br />

set serveroutput on;<br />

-- notifyCB callback<br />

create or replace procedure notifyCB(<br />

context raw, reginfo sys.aq$_reg_info, descr sys.aq$_descriptor,<br />

payload raw, payloadl number)<br />

AS<br />

dequeue_options DBMS_AQ.dequeue_options_t;<br />

message_properies DBMS_AQ.message_properties_t;<br />

message_handle RAW(16);<br />

message BOLADM.order_typ;<br />

BEGIN<br />

-- get the consumer name and msg_id from the descriptor<br />

dequeue_options.msgid := descr.msg_id;<br />

dequeue_options.consumer_name := descr.consumer_name;<br />

-- Dequeue the message<br />

DBMS_AQ.DEQUEUE(queue_name => descr.queue_name,<br />

dequeue_options => dequeue_options,<br />

message_properties => message_properties,<br />

payload => message,<br />

msgid => message_handle);<br />

END;<br />

/<br />

commit;<br />

DBMS_OUTPUT.PUTLINE(’Received Order: ’ || message.orderno);<br />

The PL/SQL procedure, e-mail address, and HTTP URL can be registered as<br />

follows:<br />

connect ws/ws;<br />

set echo on;<br />

set serveroutput on;<br />

DECLARE<br />

reginfo1 sys.aq$_reg_info;<br />

reginfo2 sys.aq$_reg_info;<br />

reginfo3 sys.aq$_reg_info;<br />

reginfolist sys.aq$_reg_info_list;<br />

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