WebLogic Server Retries Rollback Request Threads Until Server is Out of Resources
Last updated on MAY 24, 2017
Applies to:Oracle WebLogic Server - Version 9.2 to 10.3.3
Information in this document applies to any platform.
***Checked for relevance on 27-May-2014***
Customers were facing a scenario where one of the database queries doesn't complete within the duration specified by the JTA timeout (default is 600 seconds). As this transaction timed-out, WLS creates another execute thread, say T1, to rollback this transaction. However, this thread could not complete the rollback as the original thread (the one that is executing the query) holds a lock on the connection. The new thread (T1) waits for the original thread to release the lock (which doesn't happen immediately). Meanwhile, WLS keeps creating new execute threads T2, T3 etc while attempting to roll back the timed-out transaction, thereby slowing up the whole application server.
For example, look at the following thread dump snippet. ONE thread hangs here:
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms