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