On 7/1/16 11:35 PM, Nir Dweck wrote: > -----Original Message----- > From: Phil Steitz [mailto:phil.ste...@gmail.com] > Sent: Friday, July 01, 2016 9:16 PM > To: users@tomcat.apache.org > Subject: Re: tomcat 7 connection pool validation interval > > On 7/1/16 7:14 AM, Nir Dweck wrote: >> -----Original Message----- >> From: Phil Steitz [mailto:phil.ste...@gmail.com] >> Sent: Thursday, June 30, 2016 6:57 PM >> To: Tomcat Users List >> Subject: Re: tomcat 7 connection pool validation interval >> >> >> >>>>> On Jun 30, 2016, at 9:32 AM, Nir Dweck <n...@vasco-de.com> wrote: >>>>> >>>>> I am using tomcat connection pool (tomcat 7) in my application (java >>>>> application) to connect to a remote Oracle DB on an Azure machine. My >>>>> connection pool configuration is as follow: >>>>> >>>>> PoolProperties p = new PoolProperties(); >>>>> p.setUrl(connString); >>>>> p.setUsername(user); >>>>> p.setPassword(password); >>>>> p.setDriverClassName("oracle.jdbc.OracleDriver"); >>>>> p.setValidationQuery("SELECT 1 from dual"); >>>>> p.setValidationInterval(1 * 60000/2); >>>>> p.setTimeBetweenEvictionRunsMillis(1 * 60000/2); >>>>> p.setTestOnBorrow(true); >>>>> p.setTestWhileIdle(true); >>>>> p.setMinIdle(10); >>>>> p.setInitialSize(10); >>>>> However looking at the capture file, I see that the connections are not >>>>> checked every 30 seconds as I expected. One connection is checked >>>>> correctly, the others are checked after 3 times the configuration (180 >>>>> second). then again only some of the connections are checked and after a >>>>> while it seems to stable on twice the configuration period (every 60 >>>>> seconds). >>>>> >>>>> I tested it with different configured time and different pool size, all >>>>> had a instability period in which each time only part of the connections >>>>> were checked and eventually it stabled on checks of all the connections >>>>> every twice the configured time. >>>>> What am I missing? >>>>> Thanks, >>>> Most likely the connections not being tested are checked out to clients >>>> when the pool maintenance runs. Assuming you are using the default DBCP >>>> pool, >>only idle connections (meaning waiting in the pool) are tested by >>>> the maintenance thread. >>>> Phil >>> No, all connection are idle, but still looking at wireShark the validation >>> query is sent every twice the TimeBetweenEvictionRunsMillis. >> I am sorry I should have been more clear. The term, "idle" is a little >> confusing here. I should have said connections are only checked when they >> are not >checked out to client threads. A connection can be "idle" from the >> DB standpoint but still checked out to a client. A connection that is >> checked out to a >client will not be tested by the pool maintenance thread. >> Are there clients using the pool while you are running this test? >> I notice now a parameter not supported by DBCP, so I guess you must be using >> the tomcat-jdbc pool. It looks to me like it defines "idle" the same way >> DBCP does - in other words above statements are true for that pool too. >> It is also possible that setting validationInterval to a value <= >> timeBetweenEvictionRuns may cause some validations to be suppressed, since >> the former is a >max frequency. >> Phil > Hi Phil, > I understood you correctly, none of the connections are held by any client. > All are idle in the pool. I tried also setting timeBetweenEvictionRuns to > half validationInterval, but still, the best I get is that the connections > are validated in half the frequency I requested (every 2 * > validationInterval). And yes I am using tomcat-jdbc pool.
Sorry I misunderstood you. Try going the other way - making sure that validationInterval >> timeBetweenEvictionRuns, or get rid of the validationInterval parameter altogether. The validationInterval setting is designed to *suppress* excess validation - i.e., to make sure that connections are not validated too frequently. See the description of this parameter in [1]. Phil [1] https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#Tomcat_JDBC_Enhanced_Attributes > > Nir >>> >> Nir >> >>> Nir >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org