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

END;<br />

/<br />

’ quantity: ’ || deq_item_data.quantity);<br />

EXCEPTION<br />

WHEN end_of_group THEN<br />

dbms_output.put_line (’*** END OF ORDER ***’);<br />

commit;<br />

dopt.navigation := DBMS_AQ.NEXT_TRANSACTION;<br />

END;<br />

END LOOP;<br />

EXCEPTION<br />

WHEN no_messages THEN<br />

dbms_output.put_line (’ ---- NO MORE NEW ORDERS ---- ’);<br />

new_orders := FALSE;<br />

END;<br />

END LOOP;<br />

CONNECT EXECUTE ON get_new_orders to OE;<br />

/* Dequeue the orders: */<br />

CONNECT OE/OE;<br />

EXECUTE BOLADM.get_new_orders;<br />

Visual Basic (OO4O): Example Code<br />

Dim OraSession as object<br />

Dim OraDatabase as object<br />

Dim OraAq as object<br />

Dim OraMsg as Object<br />

Dim OraOrder,OraItemList,OraItem,OraBook,OraCustomer as Object<br />

Dim Msgid as String<br />

Set OraSession = CreateObject("<strong>Oracle</strong>InProcServer.XOraSession")<br />

Set OraDatabase = OraSession.DbOpenDatabase("", "boladm/boladm", 0&)<br />

set oraaq = OraDatabase.CreateAQ("OE.OE_neworders_que")<br />

Set OraMsg = OraAq.AQMsg(ORATYPE_OBJECT, "BOLADM.order_typ")<br />

OraAq.wait = 1<br />

OraAq.Navigation = ORAAQ_DQ_FIRST_MESSAGE<br />

private sub get_new_orders<br />

Dim MsgIsDequeued as Boolean<br />

On Error goto ErrHandler<br />

MsgIsDequeued = TRUE<br />

msgid = q.Dequeue<br />

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