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.

ub4 fedex;<br />

ub4 air;<br />

ub4 ground;<br />

};<br />

typedef struct ship_data ship_data;<br />

int main(/*_ int argc, char *argv[] _*/);<br />

/* Notify callback: */<br />

ub4 notifyCB(ctx, subscrhp, pay, payl, desc, mode)<br />

dvoid *ctx;<br />

LNOCISubscription *subscrhp;<br />

dvoid *pay;<br />

ub4 payl;<br />

dvoid *desc;<br />

ub4 mode;<br />

{<br />

text *subname;<br />

ub4 size;<br />

ship_data *ship_stats = (ship_data *)ctx;<br />

text *queue;<br />

text *consumer;<br />

OCIRaw *msgid;<br />

ub4 priority;<br />

OCIAQMsgProperties *msgprop;<br />

OCIAttrGet((dvoid *)subscrhp, OCI_HTYPE_SUBSCRIPTION,<br />

(dvoid *)&subname, &size,<br />

OCI_ATTR_SUBSCR_NAME, errhp);<br />

Asynchronous Notifications<br />

/* Extract the attributes from the AQ descriptor.<br />

Queue name: */<br />

OCIAttrGet(desc, OCI_DTYPE_AQNFY_DESCRIPTOR, (dvoid *)&queue, &size,<br />

OCI_ATTR_QUEUE_NAME, errhp);<br />

/* Consumer name: */<br />

OCIAttrGet(desc, OCI_DTYPE_AQNFY_DESCRIPTOR, (dvoid *)&consumer, &size,<br />

OCI_ATTR_CONSUMER_NAME, errhp);<br />

/* Msgid: */<br />

OCIAttrGet(desc, OCI_DTYPE_AQNFY_DESCRIPTOR, (dvoid *)&msgid, &size,<br />

OCI_ATTR_NFY_MSGID, errhp);<br />

A Sample Application Using AQ 8-99

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

Saved successfully!

Ooh no, something went wrong!