I am trying to resolve a stuck thread issue involving multiple threads blocking on external middleware, which locks being help in the middleware client libraries. Unfortunately in the environment, most people (including those available at 2:00 AM when offshore is testing) have no access to the Linux user ID for the WebLogic JVM, so they can't issue a kill -3.
Thread dumps through the console (and through WLST) are insufficient, since they are not full thread dumps, i.e., they do not show which threads are holding the locks (they only show which threads are waiting for locks) - i.e., they do not contain lines like:
- locked <0x0000000798fc9e88> (a oracle.jdbc.driver.T4CConnection)
Is there some way of getting this programmatically or otherwise, short of being able to issue a sigquit (kill -3) as the same user WebLogic runs under?
WebLogic 10.3.5, Sun/Oracle Java 1.6.0_33 (64 bit) RHEL 5.6. And, FWIW, SonicMQ 8.5 - our WebLogic threads are apparently stuck trying to delist from an XA TX.
in Jrockit you can do a jrcmd PID print_threads
this will not kill the process either.
If you are using the HotSpot JVM you are stuck w/ the kill -3 / kill -6.
Edited by: 928953 on Nov 3, 2012 12:54 AM
There is a WebLogic Admin command to take thread dump. It is deprecated however you can still use it.
I have described few ways to take thread dump, check if you could able to use any one of them => http://weblogicserveradministration.blogspot.com/2010/10/taking-thread-dump.html