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.