Work Scheduled For A Workmanager Does Not Execute Intermittently
(Doc ID 2003884.1)
Last updated on AUGUST 22, 2024
Applies to:
Oracle WebLogic Server - Version 12.1.3.0.0 and laterInformation in this document applies to any platform.
Symptoms
With Weblogic 12.1.3, intermittently, a Work you schedule does not get executed even though it should get executed according to the min-threads-constraint/max-threads-constraint associated with the WorkManager and the current state. In this test the WorkManager we use is “wm/NAME”. It has constraints of min=1 and max=1 (for test purposes). At the time we schedule the Work no other Work is being executed or scheduled for this WorkManager and yet the Work does not get executed. If you schedule additional Works after that the additional Works do get executed but the one that was not executed still does not get executed.
To reproduce:
Create a custom WorkManager with minthreadconstraint "1" and maxthreadconstraint "1". Deploy a simple application with a Test EJB. The Test EJB runs a loop where in each iteration it enqueues a TestJob via the custom workmanager and waits for it to complete using plain java wait/notifyAll.
All the TestJob does is to sleep for a random time up to 100 milliseconds. The Test throws a TestTimeoutException if a TestJob does not complete within a specified timeout. Below is the exception seen in client logs as well as in WLS thread dumps when the test timeout.
Changes
Upgraded to Weblogic 12.1.3
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |