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) OCI_ATTR_SERVER, (OCIError *) errhp);<br />

AQ and Memory Usage<br />

/* Allocate a user context handle: */<br />

OCIHandleAlloc((dvoid *)envhp, (dvoid **)&usrhp, (ub4) OCI_HTYPE_SESSION,<br />

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

OCIAttrSet((dvoid *)usrhp, (ub4)OCI_HTYPE_SESSION,<br />

(dvoid *)"scott", (ub4)strlen("scott"), OCI_ATTR_USERNAME, errhp);<br />

OCIAttrSet((dvoid *)usrhp, (ub4)OCI_HTYPE_SESSION,<br />

(dvoid *)"tiger", (ub4)strlen("tiger"), OCI_ATTR_PASSWORD, errhp);<br />

checkerr(errhp, OCISessionBegin (svchp, errhp, usrhp, OCI_CRED_RDBMS,<br />

OCI_DEFAULT));<br />

OCIAttrSet((dvoid *)svchp, (ub4)OCI_HTYPE_SVCCTX,<br />

(dvoid *)usrhp, (ub4)0, OCI_ATTR_SESSION, errhp);<br />

do {<br />

deqmesg(buf, &buflen);<br />

printf("%.*s\n", buflen, buf);<br />

} while(1);<br />

} /* end main */<br />

static void checkerr(errhp, status)<br />

LNOCIError *errhp;<br />

sword status;<br />

{<br />

text errbuf[512];<br />

ub4 buflen;<br />

sb4 errcode;<br />

if (status == OCI_SUCCESS) return;<br />

switch (status)<br />

{<br />

case OCI_ERROR:<br />

OCIErrorGet ((dvoid *) errhp, (ub4) 1, (text *) NULL, &errcode,<br />

errbuf, (ub4) sizeof(errbuf), (ub4) OCI_HTYPE_ERROR);<br />

printf("Error - %s\n", errbuf);<br />

break;<br />

case OCI_INVALID_HANDLE:<br />

printf("Error - OCI_INVALID_HANDLE\n");<br />

break;<br />

default:<br />

<strong>Oracle</strong> <strong>Advanced</strong> <strong>Queuing</strong> by Example A-83

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

Saved successfully!

Ooh no, something went wrong!