09.12.2012 Views

Advanced Queuing - Oracle

Advanced Queuing - Oracle

Advanced Queuing - Oracle

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ack_order_queue_name := 'WS.WS_backorders_que';<br />

ELSIF sale_region = 'EAST' THEN<br />

back_order_queue_name := 'ES.ES_backorders_que';<br />

ELSE<br />

back_order_queue_name := 'OS.OS_backorders_que';<br />

END IF;<br />

/* Enqueue the order with expiration set to 7 days: */<br />

msgprop.expiration := 7*60*60*24;<br />

dbms_aq.enqueue(back_order_queue_name, enqopt, msgprop,<br />

backorder, enq_msgid);<br />

END;<br />

/<br />

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

set oraaq1 = OraDatabase.CreateAQ("WS.WS_backorders_que")<br />

set oraaq2 = OraDatabase.CreateAQ("ES.ES_backorders_que")<br />

set oraaq3 = OraDatabase.CreateAQ("CBADM.deferbilling_que")<br />

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

Set OraBackOrder = OraDatabase.CreateOraObject("BOLADM.order_typ")<br />

Private Sub Requeue_backorder<br />

Dim q as oraobject<br />

If sale_region = WEST then<br />

q=oraaq1<br />

else if sale_region = EAST then<br />

q=oraaq2<br />

else<br />

q=oraaq3<br />

end if<br />

OraMsg.delay = 7*60*60*24<br />

OraMsg = OraBackOrder 'OraOrder contains the order details<br />

Msgid = q.enqueue<br />

End Sub<br />

Enqueue Features<br />

Java (JDBC): Example Code<br />

/* Re-enqueue a back order into a back order queue and set a delay of 7 days;<br />

all back orders must be processed in 7 days or they are moved to the<br />

exception queue */<br />

public static void requeue_back_order(Connection db_conn,<br />

A Sample Application Using AQ 8-49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!