Re: [Orclib-users] subscriptions/callback for Oracle AQ
Open source C and C++ library for accessing Oracle Databases
Brought to you by:
vince_del_paris
From: Petr V. <pe...@ya...> - 2012-12-05 08:11:00
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 hi Vincent, yes, it makes perfect sense to me. I'm looking forward to it! p. On 12/5/12 9:07 AM, vincent rogier wrote: > Hi, > > > About coding, this is a secondary easy task that required only just few lines of code. > I'm more focused on how to integrate to OCILIB. > Is the following mock-up all right for you ? > > > #include "ocilib.h" > > #ifdef _WINDOWS > #define sleep(x) Sleep(x*1000) > #endif > > #define PORT 5468 > #define TIMEOUT 0 > > void event_handler(OCI_Event *event); > void error_handler(OCI_Error *err); > > int main(void) > { > OCI_Connection *con; > OCI_Subscription *sub; > OCI_Dequeue *deq1; > OCI_Dequeue *deq2; > > OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT | OCI_ENV_EVENTS | OCI_ENV_THREADED); > > con = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT); > sub = OCI_SubscriptionRegister(con, "SUB-MSG", OCI_CNT_MESSAGE, event_handler, PORT, TIMEOUT); > inf = OCI_TypeInfoGet(con, "MY_MESSAGE", OCI_TIF_TYPE); > deq1 = OCI_DequeueCreate(inf, "MY_QUEUE"); > deq2 = OCI_DequeueCreate(inf, "MY_QUEUE"); > > OCI_DequeueSetConsumer(deq1, "CONSUMER1"); > OCI_DequeueSetConsumer(deq2, "CONSUMER2"); > > OCI_SubscriptionAddDequeue(sub, deq1); > OCI_SubscriptionAddDequeue(sub, deq2); > > sleep(MAX_INT); > > OCI_DequeueFree(deq1); > OCI_DequeueFree(deq2); > OCI_SubscriptionUnregister(sub); > OCI_ConnectionFree(con); > > OCI_Cleanup(); > > return EXIT_SUCCESS; > } > > void error_handler(OCI_Error *err) > { > printf("*** error : %s\n", OCI_ErrorGetString(err)); > } > > void event_handler(OCI_Event *event) > { > OCI_Dequeue *deq = OCI_EventGetDequeue(event); > OCI_Msg *msg = OCI_DequeueGet(deq); > > /* process payload */ > } > > > > On Tue, Dec 4, 2012 at 8:57 PM, Petr Vaněk <pe...@ya... <mailto:pe...@ya...>> wrote: > > OCI_SubscriptionAddDequeue > > > > > -- > Vincent Rogier -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with undefined - http://www.enigmail.net/ iQEcBAEBAgAGBQJQvwGAAAoJEC8yRjM4uE2t7MwH/iYJyM13uHjr7pEYewQJ+cLV 5iYQTyB6RrD5TCVDXyid9KB55AVHHtef4yr24HDkMTxAit0D+ayP3T51EqV7ojuf ncqMR895TJMleK01+NSy9W0jzevj81/K8Tia3QO6QdXJd7EPNHiBY0m2EYJaTPbI AY1H47IKTWadMs2VCEuvV5zMzTf/RP7765FpKB/91/+Tm14A6A4SUY1QRc9mLRJ2 +vCy6UU8MXhEngKmFUKB+ZBte7YB8GdxrNeStM2vIHTYuRqYEgvzZLmU3oIwubw6 kOSOy1evKLuXNqe9DxbIwfMdE2T1DMvEtryLGUrHLG3UR35r5LwkhIW7Fp00VD8= =vGEd -----END PGP SIGNATURE----- |