Work Scheduled For A Workmanager Does Not Execute Intermittently (Doc ID 2003884.1)

Last updated on MAY 01, 2015

Applies to:

Oracle WebLogic Server - Version 12.1.3.0.0 and later
Information 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/bpms_psc”. 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 timoeut. 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

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