Thank you guys for your replies!

It is definitely something wrong with my code, here is the thread which does
the listening:
http://mitek.id.au/flex/DBListener.cpp

The rest of application is fairly big and does not relate to the database.
For libpq calls I am using the SPTK (http://sptk.net) library. I've added
additional wrappers for PGsocket, PQfreemem.

So the current code works without any problem, but as soon as I remove
subcribe() function from the loop and call it just once, daemon eventually
will stop getting notifications.
There is nothing wrong with the socket or db connections - all possible
error will be logged.


Cheers,
Dmitri.


On Mon, Mar 23, 2009 at 10:00 PM, Dmitri Girski <mi...@lizardsw.com> wrote:

> Hi everybody,
> I've got a weird problem with LISTEN/NOTIFY.
>
> My C++ app subscribes for the notifications, just like in libpq examples:
> http://www.postgresql.org/docs/8.3/static/libpq-example.html
>
> The only difference, that I am setting the timeout on select just to check
> if application wants to exit.
>
> //open session
>
> //subscribe
>
> while(!exit)
> {
>     sock = PGsocket(conn)
>
>     res = select(sock);
>
>     if (res)
>
>    //check if it timeout
>    //or if there was a notification
>
>
> }
>
> The problem that I am facing is that after some time notifications stop
> coming.
> select() returns on timeout and nothing else.
>
> Just as a test a included UNLISTEN/LISTEN sequence into the loop, so after
> timeout or event application re-subscribes. And this helps.
>
> The question is, what I am doing wrong with the code in the first place?
>
> Any help is appreciated.
>
> Cheers,
> Dmitri.
>
>
>
>
>
>
>
>
>
>
> --
> @Gmail
>



-- 
@Gmail

Reply via email to