Inifinite socket send from backend to java servlet
От | Rich Ryan |
---|---|
Тема | Inifinite socket send from backend to java servlet |
Дата | |
Msg-id | 00ab01bf25b8$1192b260$9befaace@usedcars.com обсуждение исходный текст |
Ответ на | pgbash-1.2.1 released (SAKAIDA <sakaida@psn.co.jp>) |
Ответы |
Re: [INTERFACES] Inifinite socket send from backend to java servlet
|
Список | pgsql-interfaces |
I'm running RH Linux 5.2, Jdk 1.1.7v3 on machine A, and RH Linux 6.1, postgres 6.5.2 on machine B. Some queries made from A to B never return. It looks like the java servlet on machine A skipped out on the query or the thread died or got interrupted or something, and machine B is infinitely waiting for it to read query results. Doing a ps -x will show several postmaster processes doing SELECT's, but just sitting there, ( not SELECT waiting), but not consuming any cpu time either. When I restart the web server on machine A and then immediately look at the postgres log file on machine B, I get a ton of these messages... FATAL: pq_endmessage failed: errno=32 pq_flush: send() failed: Broken pipe Within a half day or so, my database connection pool is exhausted because there taken up by these infinite waits. Of course, I could write a db connection timeout thread that closes these lazy connections, and I suspect that the postmaster processes on machine B would detect the broken connection and go away also, but still... seems like pretty icky behavior. Any comments? Rich
В списке pgsql-interfaces по дате отправления: