On 10/29/15 7:14 AM, Christopher Schultz wrote:
> Simon,
>
> On 10/29/15 4:28 AM, simone.rodenbach....@devk.de wrote:
>> Thx,
>>
>> I hope this information helps: (The 
>> org.apache.commons.pool.impl.GenericObjectPool starts a timer ... )
>>
>> ava.util.TimerThread @ 0xc0772288                                            
>>            |Timer-0|          128 |           384 
>> |org.apache.catalina.loader.WebappClassLoader @ 0xc04bed30|true
>> |- at java.lang.Object.wait(J)V (Native Method)                              
>>             |       |              |               |                         
>>                                 |
>> |- at java.util.TimerThread.mainLoop()V (Timer.java:552)                     
>>             |       |              |               |                         
>>                                 |
>> |- at java.util.TimerThread.run()V (Timer.java:505)                          
>>             |       |              |               |                         
>>                                 |
>> |  '- <local> java.util.TimerThread @ 0xc0772288  Timer-0 Thread             
>>             |       |          128 |           384 |                         
>>                                 |
>> |     |- <class> class java.util.TimerThread @ 0xc0cd5080 System Class       
>>             |       |            0 |             0 |                         
>>                                 |
>> |     |- group java.lang.ThreadGroup @ 0xc048b400  main                      
>>             |       |           48 |           208 |                         
>>                                 |
>> |     |- contextClassLoader org.apache.catalina.loader.WebappClassLoader @ 
>> 0xc04bed30    |       |          200 |     1.314.384 |                       
>>                                   |
>> |     |- <Java Local>, queue java.util.TaskQueue @ 0xc0758a80 Busy Monitor   
>>             |       |           24 |         1.528 |                         
>>                                 |
>> |     |- <Java Local> java.util.TimerThread @ 0xc0772288  Timer-0 Thread     
>>             |       |          128 |           384 |                         
>>                                 |
>> |     |- name char[7] @ 0xc0772408  Timer-0                                  
>>             |       |           32 |            32 |                         
>>                                 |
>> |     |- inheritedAccessControlContext java.security.AccessControlContext @ 
>> 0xc0772428   |       |           40 |           104 |                        
>>                                  |
>> |     |- inheritableThreadLocals java.lang.ThreadLocal$ThreadLocalMap @ 
>> 0xc0772490       |       |           24 |           104 |                    
>>                                      |
>> |     |- blockerLock java.lang.Object @ 0xc07724f8                           
>>             |       |           16 |            16 |                         
>>                                 |
>> |     |- <Java Local> org.apache.commons.pool.impl.GenericObjectPool$Evictor 
>> @ 0xeefe76d0|       |           40 |            40 |                         
>>                                 |
>> |     |- <Java Local> java.lang.Object @ 0xeefe76f8                          
>>             |       |           16 |            16 |                         
>>                                 |
>> |     '- Total: 11 entries                                                   
>>             |       |              |               |                         
>>                                 |
>> '- Total: 3 entries                                                          
>>             |       |              |               |                         
>>                                 |
>> --------------------------------------------------------------------------------------------------------------------------------------------
> This was very difficult to interpret.
>
>> The stacktrace shows only:
>>
>> Timer-1
>>   at java.lang.Object.wait(J)V (Native Method)
>>   at java.util.TimerThread.mainLoop()V (Timer.java:552)
>>   at java.util.TimerThread.run()V (Timer.java:505)
> This was not, and it was about what I expected.
>
> Usually when a thread if blocked on a monitor, it will give you the hex
> address of the object being used as the monitor, and then you can do
> find out what object that is. In the case of the Timer, it might just be
> it's waiting on itself.
>
> Once you find out what that timer does when it wakes up, you'll probably
> find out who created the timer.
>
> If the timer thread truly is executing the GenericObjectEvictor, then
> there may be a bug in Tomcat. I don't see anything in the changelog that
> would explain this, but could you re-try your testing with Tomcat 6.0.44?

If it is a problem related to the Evictor, it is likely in commons
pool.  As Chris pointed out, the config specified the commons dbcp
datasource directly, rather than using the tomcat-provided
repackaged jar.  It would be good to know what versions of Commons
Pool and DBCP you have in the classpath.  If you remove the DS
override and upgrade to 6.0.44 you will pick up the latest
compatible versions.  If for some reason you want to keep the
override, you should check the versions and make sure that Pool is
1.5.7 (or 1.6) and DBCP is 1.4.

Phil
>
> -chris
>
> ---------------------------------------------------------------------
> 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

Reply via email to