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.

Asynchronous Notifications<br />

/* Message properties: */<br />

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

OCI_ATTR_MSG_PROP, errhp);<br />

/* Get priority from message properties: */<br />

checkerr(errhp, OCIAttrGet(msgprop, OCI_DTYPE_AQMSG_PROPERTIES,<br />

(dvoid *)&priority, 0,<br />

OCI_ATTR_PRIORITY, errhp));<br />

switch (priority)<br />

{<br />

case 1: ship_stats->fedex++;<br />

break;<br />

case 2 : ship_stats->air++;<br />

break;<br />

case 3: ship_stats->ground++;<br />

break;<br />

default:<br />

printf(" Error priority %d", priority);<br />

}<br />

}<br />

int main(argc, argv)<br />

int argc;<br />

char *argv[];<br />

{<br />

OCISession *authp = (OCISession *) 0;<br />

OCISubscription *subscrhp[8];<br />

ub4 namespace = OCI_SUBSCR_NAMESPACE_AQ;<br />

ship_data ctx = {0,0,0};<br />

ub4 sleep_time = 0;<br />

printf("Initializing OCI Process\n");<br />

/* Initialize OCI environment with OCI_EVENTS flag set: */<br />

(void) OCIInitialize((ub4) OCI_EVENTS|OCI_OBJECT, (dvoid *)0,<br />

(dvoid * (*)(dvoid *, size_t)) 0,<br />

(dvoid * (*)(dvoid *, dvoid *, size_t))0,<br />

(void (*)(dvoid *, dvoid *)) 0 );<br />

printf("Initialization successful\n");<br />

printf("Initializing OCI Env\n");<br />

(void) OCIEnvInit( (OCIEnv **) &envhp, OCI_DEFAULT, (size_t) 0, (dvoid **) 0<br />

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