[pgpool-general: 2219] Re: More I/O Error in Tomcat

Lachezar Dobrev l.dobrev at gmail.com
Fri Oct 25 17:24:21 JST 2013


  You might solve that by adding a time-out on the Tomcat side.
  http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
  What you should set is (AFAIK):
    minIdle (default is 10, set to 0)
    timeBetweenEvictionRunsMillis (default 5000)
    minEvictableIdleTimeMillis    (default 60000)

  This will try every 5 seconds and close any connections that were
not used in the last 60 seconds. If you keep the sum of both numbers
below the client time-out on the pgpool size connections should be
closed at Tomcat side before they time-out on the pgpool side.

  It is also beneficial to set the
    testOnBorrow (default false, set to true)
    validationQuery (default none, set to 'SELECT version();' no quotes)
  This will help with connections should they expire while waiting,
without supplying a disconnected connection to the application.

2013/10/25 Josh Berkus <josh at agliodbs.com>:
> On 10/24/2013 05:22 PM, Tatsuo Ishii wrote:
>>>> This error happens between Tomcat and pgpool.  I suspect Tomcat
>>>> establishes persistent connections to pgpool and pgpool disconnects it
>>>> because client_idle_limit is not 0. Is this your case?
>>>
>>> Yes, that sounds likely.  If we need to disable client_idle_timeout,
>>> though, the number of DB connections bloats hopelessly; this is an
>>> application with many databases, so we end up with several idle pgPool
>>> connections per database.  Without client_idle_timeout, how would we
>>> handle this?
>>
>> Why don't you turn off Tomcat side persistent connections?
>
> I can check on that as an option.  Might not be feasible.


More information about the pgpool-general mailing list