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

/* Register for notification: */<br />

printf("allocating subscription handle\n");<br />

subscrhp[0] = (OCISubscription *)0;<br />

(void) OCIHandleAlloc((dvoid *) envhp, (dvoid **)&subscrhp[0],<br />

(ub4) OCI_HTYPE_SUBSCRIPTION,<br />

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

printf("setting subscription name\n");<br />

(void) OCIAttrSet((dvoid *) subscrhp[0], (ub4) OCI_HTYPE_SUBSCRIPTION,<br />

(dvoid *) "WS.WS_BOOKEDORDERS_QUE:BOOKED_ORDERS",<br />

(ub4) strlen("WS.WS_BOOKEDORDERS_QUE:BOOKED_ORDERS"),<br />

(ub4) OCI_ATTR_SUBSCR_NAME, errhp);<br />

printf("setting subscription callback\n");<br />

(void) OCIAttrSet((dvoid *) subscrhp[0], (ub4) OCI_HTYPE_SUBSCRIPTION,<br />

(dvoid *) notifyCB, (ub4) 0,<br />

(ub4) OCI_ATTR_SUBSCR_CALLBACK, errhp);<br />

(void) OCIAttrSet((dvoid *) subscrhp[0], (ub4) OCI_HTYPE_SUBSCRIPTION,<br />

(dvoid *)&ctx, (ub4)sizeof(ctx),<br />

(ub4) OCI_ATTR_SUBSCR_CTX, errhp);<br />

printf("setting subscription namespace\n");<br />

(void) OCIAttrSet((dvoid *) subscrhp[0], (ub4) OCI_HTYPE_SUBSCRIPTION,<br />

(dvoid *) &namespace, (ub4) 0,<br />

(ub4) OCI_ATTR_SUBSCR_NAMESPACE, errhp);<br />

printf("Registering \n");<br />

checkerr(errhp, OCISubscriptionRegister(svchp, subscrhp, 1, errhp,<br />

OCI_DEFAULT));<br />

sleep_time = (ub4)atoi(argv[1]);<br />

printf ("waiting for %d s", sleep_time);<br />

sleep(sleep_time);<br />

printf("Exiting");<br />

exit(0);<br />

}<br />

void checkerr(errhp, status)<br />

LNOCIError *errhp;<br />

sword status;<br />

{<br />

text errbuf[512];<br />

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