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.

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

Private Sub defer_billing<br />

OraMsg = OraOrder<br />

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

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

Msgid = OraAq.enqueue<br />

End Sub<br />

Enqueue Features<br />

Java (JDBC): Example Code<br />

public static void defer_billing(Connection db_conn, Order deferred_order)<br />

{<br />

AQSession aq_sess;<br />

AQQueue def_bill_q;<br />

AQEnqueueOption enq_option;<br />

AQMessageProperty m_property;<br />

AQMessage message;<br />

AQObjectPayload obj_payload;<br />

byte[] enq_msg_id;<br />

try<br />

{<br />

/* Create an AQ Session: */<br />

aq_sess = AQDriverManager.createAQSession(db_conn);<br />

def_bill_q = aq_sess.getQueue("CBADM", "deferbilling_que");<br />

message = def_bill_q.createMessage();<br />

/* Enqueue the order into the deferred billing queue with a delay<br />

of 15 days */<br />

m_property = message.getMessageProperty();<br />

m_property.setDelay(15*60*60*24);<br />

obj_payload = message.getObjectPayload();<br />

obj_payload.setPayloadData(deferred_order);<br />

enq_option = new AQEnqueueOption();<br />

/* Enqueue the message */<br />

enq_msg_id = def_bill_q.enqueue(enq_option, message);<br />

A Sample Application Using AQ 8-47

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

Saved successfully!

Ooh no, something went wrong!