Re: Questions regarding notify processing.

From: Terry Lee Tucker <terry(at)esc1(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Questions regarding notify processing.
Date: 2005-02-24 17:49:01
Message-ID: 200502241249.01525.terry@esc1.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks for the reply Tom. See comments below:

On Thursday 24 February 2005 12:06 pm, Tom Lane saith:
> Terry Lee Tucker <terry(at)esc1(dot)com> writes:
> > All this works great except for certain cases where one of the notify
> > messages, the one I'm really interested in, gets spooled, queued, or
> > something and is not delivered until I send another notification, after
> > the fact, from another client; then, I finally get the message delivered
> > along with the one I just sent.
>
> What PG version is this? Some of what you mention sounds a bit like old
> bugs, but not enough to be sure. Also, are you using SSL?
I never remember this until after I've sent the message. Here it is:
rnd=# select version ();
version
--------------------------------------------------------------------------------------------------------------
PostgreSQL 7.4.6 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.2.3
20030502 (Red Hat Linux 3.2.3-49)

>
> AFAIK the only gotcha on the server side in current code is that it
> won't send notify messages while you are within a transaction; so if you
> are using BEGIN/COMMIT that could be the source of the issue.

The message is being sent inside a transaction by an after update trigger that
updates values in another table.

>
> Looking at the source for PQconsumeInput, I note that depending on the
> kernel behavior it may not read all available data; so you might try
> turning that call into a loop
> while (PQconsumeInput(conn) > 0)
> /* loop */ ;
I will give this a try.

> Ordinarily this is not necessary because if the socket remains
> read-ready you should get another callback right away anyway. But
> perhaps the X toolkit is doing something weird that suppresses
> repeated callbacks.
>
> > I tried calling CheckForNotifies() from the interface code after the
> > save operation, but then, after two back to back updates, or sometimes
> > just one, the PQsendQuery call hangs up. The only way to "unhang it"
> > is to issue a NOTIFY from another client, which allows PQsendQuery to
> > continue.
>
> That's just plain bizarre. Can you get a stack trace to find out
> exactly where it's hung? And what is the server process doing at
> the same time?

I will be happy to do this if you or someone else will tell me how to do it.

>
> regards, tom lane

Thank you for your help ;o)

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message vinita bansal 2005-02-24 18:21:01 update queries taking lot of time
Previous Message Tom Lane 2005-02-24 17:11:09 Re: Unicode support problem