On Mon, May 26, 2014 at 1:34 PM, Dmitry Samonenko <shreddingw...@gmail.com>
wrote:
> 1. Connection to PSQL server is made without an option to specify
SO_RCVTIMEO and SO_SNDTIMEO. Why is that? Is setting socket timeouts
considered harmful?
> 2. PQexec ultimately leads to PQwait, which after some function calls
"lands" in pqSocketCheck and pqSocketPoll. These 2 functions have parameter
end_time. It is set (-1) for PQexec scenario, which leads to infinite poll
timeout in pqSocketPoll. Is it possible to implement configurable timeout
for PQexec calls? Is there some implemented features, which should be used
to handle situation like this?

Have you tried using Cancel functionality:
http://www.postgresql.org/docs/9.4/static/libpq-cancel.html

> Currently, I have changed Linux kernel tcp4 stack counters responsible
for retransmission, so OS actually closes socket after some period. This is
detected by pqSocketPoll's poll and libpq handles situation correctly -
error is reported to my application. But it's just a workaround.

There are certain tcp parameters which can be configured for connections.

tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_count


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Reply via email to