2016-08-19 0:52 GMT+09:00 Torsten Krah <krah...@gmail.com>: > Hi, > > looking at the doc: > > https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html > > there is: > > suspectTimeout > > (int) Timeout value in seconds. Default value is 0. > Similar to to the removeAbandonedTimeout value but instead of treating > the connection as abandoned, and potentially closing the connection, > this simply logs the warning if logAbandoned is set to true. If this > value is equal or less than 0, no suspect checking will be performed. > Suspect checking only takes place if the timeout value is larger than 0 > and the connection was not abandoned or if abandon check is disabled. If > a connection is suspect a WARN message gets logged and a JMX > notification gets sent once. > > To me this sounds like i should get a warning if i configure the pool > like this: > > logAbandoned="true" > suspectTimeout="120" > > after 2 minutes. > I don't want to remove the connections, i just want to get them logged. > > However i don't see such messages - looking at the code it seems that > suspect() from the connection is called from the pool in: > > pool.checkAbandoned(); > > but this is only called from the PoolCleaner in its run method when the > check: > > if (pool.getPoolProperties().isRemoveAbandoned()) > pool.checkAbandoned(); > > is true. > But i don't want to get them removed - i just want them logged like > suspect is promising - at least it sounds to me like that. > > Any thoughts about that? Shouldn't it read like: > > if (pool.getPoolProperties().isRemoveAbandoned() || > pool.getPoolProperties().getSuspectTimeout() > 0) > pool.checkAbandoned(); > > JavaDoc of setSuspectTimeout: > > /** > * Similar to {@link #setRemoveAbandonedTimeout(int)} but instead of > treating the connection > * as abandoned, and potentially closing the connection, this simply > logs the warning if > * {@link #isLogAbandoned()} returns true. If this value is equal or > less than 0, no suspect > * checking will be performed. Suspect checking only takes place if > the timeout value is larger than 0 and > * the connection was not abandoned or if abandon check is disabled. > If a connection is suspect a WARN message gets > * logged and a JMX notification gets sent once. > * @param seconds - the amount of time in seconds that has to pass > before a connection is marked suspect. > */ > public void setSuspectTimeout(int seconds); > > > does also imply this behaviour i would expect. > It seems you need to remove them (even with a large timeout set to get > suspect working) - javadoc reads i can have suspect without remove. > If this should be the case checkAbandoned() needs some work so that > shouldAbandon() does check the property - removeAbandoned - to make sure > it should really remove it, not just got to suspect in the else case - > or just have to methods ... don't mind which solution, something like > this ;). > > Should i open some ticket about that possible Bug or is it working as > intended? > > Hello Torsten
I'm not sure whether this is a bug. However, I prefer the suspectTimeout does not depend on the removeAbandoned. The suspectTimeout should work without abandoned connection. Please open the bugzilla. > kind regards > > Torsten > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > -- > Keiichi.Fujino > <users-h...@tomcat.apache.org> <users-h...@tomcat.apache.org>