tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Anderson <ranom...@gmail.com>
Subject Re: tomcat-jdbc PoolCleaner deadlock
Date Fri, 06 Feb 2015 18:14:19 GMT
Hi,

After a full week of normal usage, no deadlocks were found.


Thank you very much.

Robert



2015-01-30 16:38 GMT-03:00 Robert Anderson <ranomail@gmail.com>:

> Ok, Filip!
>
> Thanks,
>
> Robert
>
> 2015-01-30 16:31 GMT-03:00 Filip Hanik <filip@hanik.com>:
>
> Robert, kindly let us know if disabling the pool cleaner does resolve your
>> dead lock
>>
>> Filip
>>
>>
>> On Fri, Jan 30, 2015 at 12:25 PM, Robert Anderson <ranomail@gmail.com>
>> wrote:
>>
>> > Great, Filip!
>> >
>> > "Returns true if the pool sweeper is enabled for the connection pool.
>> The
>> > pool sweeper is enabled if any settings that require async intervention
>> in
>> > the pool are turned on boolean result =
>> > getTimeBetweenEvictionRunsMillis()>0; result = result &&
>> > (isRemoveAbandoned() && getRemoveAbandonedTimeout()>0); result =
result
>> ||
>> > (isTestWhileIdle() && getValidationQuery()!=null); return result;" [1]
>> >
>> > Best regards.
>> >
>> >
>> > [1]
>> >
>> >
>> https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/tomcat/jdbc/pool/PoolConfiguration.html#isPoolSweeperEnabled()
>> >
>> > 2015-01-30 16:13 GMT-03:00 Filip Hanik <filip@hanik.com>:
>> >
>> > > Are you seeing that message, cause it seems to be a defensive check,
>> but
>> > > wouldn't happen due to
>> > >
>> > > 509 public void initializePoolCleaner(PoolConfiguration properties) {
>> 510
>> > > //if
>> > > the evictor thread is supposed to run, start it now 511 if
>> (properties.
>> > > isPoolSweeperEnabled()) { 512 poolCleaner = new PoolCleaner(this,
>> > > properties
>> > > .getTimeBetweenEvictionRunsMillis()); 513 poolCleaner.start(); 514 }
>> > //end
>> > > if 515 }
>> > >
>> > > On Fri, Jan 30, 2015 at 12:05 PM, Robert Anderson <ranomail@gmail.com
>> >
>> > > wrote:
>> > >
>> > > > Filip,
>> > > >
>> > > > timeBetweenEvictionRunsMillis=0 does not disable PoolCleaner [1].
>> > > >
>> > >
>> > >
>> > >
>> > > >
>> > > >             if (sleepTime <= 0) {
>> > > >                 log.warn("Database connection pool evicter thread
>> > > > interval is set to 0, defaulting to 30 seconds");
>> > > >                 this.sleepTime = 1000 * 30;
>> > > >             } else if (sleepTime < 1000) {
>> > > >                 log.warn("Database connection pool evicter thread
>> > > > interval is set to lower than 1 second.");
>> > > >             }
>> > > >
>> > >
>> > >
>> > >
>> > > >
>> > > >
>> > > > [1]
>> > > >
>> > >
>> >
>> http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
>> > > >
>> > > >
>> > > > 2015-01-30 15:17 GMT-03:00 Robert Anderson <ranomail@gmail.com>:
>> > > >
>> > > > > Sorry,
>> > > > >
>> > > > > [1] https://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html
>> > > > >
>> > > > > 2015-01-30 15:15 GMT-03:00 Robert Anderson <ranomail@gmail.com>:
>> > > > >
>> > > > > Filip,
>> > > > >>
>> > > > >> however, disabling the pool cleaner it should yield better
>> results.
>> > > > >>
>> > > > >> The documention[1] says:
>> > > > >>
>> > > > >> "This value should not be set under 1 second"
>> > > > >>
>> > > > >> Isn't true?
>> > > > >>
>> > > > >>
>> > > > >>
>> > > > >> 2015-01-30 15:07 GMT-03:00 Filip Hanik <filip@hanik.com>:
>> > > > >>
>> > > > >> Looking at the locks that are involved in the dead lock,
it's
>> all in
>> > > the
>> > > > >>> intersys traces. Furthermore, it seems as intersys may
already
>> be
>> > > doing
>> > > > >>> pooling inside the driver. If that is the case, you have
two
>> > options
>> > > > >>>
>> > > > >>> 1. disable pooling in intersys OR
>> > > > >>> 2. don't use tomcat's jdbc pool since intersys already
does
>> pooling
>> > > > >>>
>> > > > >>> however, disabling the pool cleaner it should yield better
>> results.
>> > > > >>>
>> > > > >>> On Fri, Jan 30, 2015 at 11:02 AM, Filip Hanik <filip@hanik.com>
>> > > wrote:
>> > > > >>>
>> > > > >>> > Disable the pool cleaner
>> > > > >>> >
>> > > > >>> > timeBetweenEvictionRunsMillis=0
>> > > > >>> >
>> > > > >>> >
>> > > > >>> >
>> > > > >>>
>> > > > >>
>> > > > >>
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message