Search Postgresql Archives

Re: How to check for server availability? [v9.3.1, Linux]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/5/18 Tom Lane <tgl@xxxxxxxxxxxxx>:
> Vincenzo Romano <vincenzo.romano@xxxxxxxxxxx> writes:
>> I'd need to check from a C language program whether the server is
>> running or not.
>> I was planning to use either "PGPing PQping(const char *conninfo)" or
>> "ConnStatusType PQstatus(const PGconn *conn)".
>> I have my program running and checking from time to time whether the
>> connection is kicking and alive.
>> In order to test the things I've done the following: while the program
>> is waiting for input I simply restart the postgresql server.
>> The issue is thayt both functions return PQPING_OK and CONNECTION_OK
>> respectively.
>> When I forward the request, I get an error: "FATAL:  terminating
>> connection due to administrator command".
>> How can I reliably check the server status?
>
> You are not actually interested in checking the server status; you
> evidently want to know about the health of an existing connection.
> PQping will not help that because it is meant to see if the server
> would accept a new connection.  PQstatus is not tremendously helpful
> either since it doesn't issue any new server traffic; it's just for
> seeing if the operations so far were OK.  I think issuing a new
> dummy query (an empty string would do) is your best bet.  But why
> bother?  Just send your next command, whatever it is.  If you don't
> have another useful command to issue, you're just wasting bandwidth
> and server cycles.

Well, a reason to check the connection health is to understand whether
it neeeds a reconnection or not.
PQping is actually useless: if the database restarted, PQping says
it's OK, but the connection is gone.
You said enough about PQstatus. So issuing a "blank" command seems to
be a good idea. Possibly the only one.

Well, a "ping" function trying to use the current "PGconn*" to ping
the server would make a lot of sense, though.
Thanks a lot, Tom, for your hint.

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux