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.

Deploying AQ with XA<br />

} else<br />

/* check if OCI operation succeeded */<br />

static void checkOCIerr(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 />

if (status == OCI_ERROR)<br />

{<br />

OCIErrorGet((dvoid *) errhp, 1, (text *)0, &errcode, errbuf,<br />

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

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

}<br />

else<br />

printf("Error - %d\n", status);<br />

exit (-1);<br />

}<br />

void main(argc, argv)<br />

int argc;<br />

char **argv;<br />

{<br />

int msgno = 0; /* message being enqueued */<br />

OCIEnv *envhp; /* OCI environment handle */<br />

OCIError *errhp; /* OCI Error handle */<br />

OCISvcCtx *svchp; /* OCI Service handle */<br />

char message[128]; /* message buffer */<br />

ub4 mesglen; /* length of message */<br />

OCIRaw *rawmesg = (OCIRaw *)0; /* message in OCI RAW format */<br />

OCIInd ind = 0; /* OCI null indicator */<br />

dvoid *indptr = (dvoid *)&ind; /* null indicator pointer */<br />

OCIType *mesg_tdo = (OCIType *) 0; /* TDO for RAW datatype */<br />

XID xid; /* XA's global transaction id */<br />

ub4 i; /* array index */<br />

checkXAerr(xafunc->xa_open_entry(xaoinfo, 1, TMNOFLAGS), "xaoopen");<br />

svchp = xaoSvcCtx((text *)0); /* get service handle from XA */<br />

A-70 <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!