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.

tkaqdocp.sql: Examples of Operational Interfaces<br />

begin<br />

end;<br />

/<br />

show errors;<br />

msgprop.correlation := cust_ord_typ;<br />

OE_enq_cust_data := BOLADM.customer_typ(NULL, NULL, NULL, NULL,<br />

cust_state, NULL, cust_country);<br />

OE_enq_book_data := BOLADM.book_typ(book_title, NULL, NULL, NULL);<br />

OE_enq_item_data := BOLADM.orderitem_typ(book_qty,<br />

OE_enq_book_data, NULL);<br />

OE_enq_item_list := BOLADM.orderitemlist_vartyp(<br />

BOLADM.orderitem_typ(book_qty,<br />

OE_enq_book_data, NULL));<br />

OE_enq_order_data := BOLADM.order_typ(order_num, NULL,<br />

cust_ord_typ, cust_region,<br />

OE_enq_cust_data, NULL,<br />

OE_enq_item_list, NULL);<br />

-- Put the shipping priority into message property before<br />

-- enqueueing the message<br />

msgprop.priority := shipping_priority;<br />

dbms_aq.enqueue('OE.OE_bookedorders_que', enqopt, msgprop,<br />

OE_enq_order_data, enq_msgid);<br />

grant execute on order_enq to OE;<br />

Rem now create a procedure to dequeue booked orders for shipment processing<br />

create or replace procedure shipping_bookedorder_deq(<br />

consumer in varchar2,<br />

deqmode in binary_integer) as<br />

deq_cust_data BOLADM.customer_typ;<br />

deq_book_data BOLADM.book_typ;<br />

deq_item_data BOLADM.orderitem_typ;<br />

deq_msgid RAW(16);<br />

dopt dbms_aq.dequeue_options_t;<br />

mprop dbms_aq.message_properties_t;<br />

deq_order_data BOLADM.order_typ;<br />

qname varchar2(30);<br />

no_messages exception;<br />

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

new_orders BOOLEAN := TRUE;<br />

C-24 <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!