Troubleshooting
Problem
<Property Name="yfs.nodecapacity.lock" Value="Y"/>
When these properties are enabled, orders may backorder despite availability. Disabling them prevents backorders but reintroduces over-allocation issues.
Cause
The behavior is due to lock contention in the YFS_RES_POOL_CAPACITY_LOCK table when the ScheduleOrder Agent runs with multiple threads:
-
With a high threshold (e.g., 100%), capacity locking is triggered sooner, causing more contention.
-
Multiple threads attempting to schedule against the same capacity date and resource pool compete for the lock.
-
If a thread fails to acquire the lock within the configured
yfs.nodecapacity.timeoutandyfs.nodecapacity.maxLockRetrysettings, the system marks the capacity as unavailable, resulting in backorder. -
In some configurations, overconsumption is still possible if multiple threads access capacity simultaneously before locking begins.
Resolving The Problem
-
Check and Set Lock Retry Parameters
Ensure the following properties are configured to give threads sufficient retries before marking capacity unavailable
yfs.nodecapacity.timeout= 10
yfs.nodecapacity.maxLockRetry= 3 -
Tune Threshold Values
Avoid settingyfs.nodecapacity.thresholdto 100% unless necessary. Lowering this value can reduce early locking and contention. -
Optimize Thread Counts
Adjust ScheduleOrder Agent thread count to balance throughput and reduce the probability of simultaneous lock requests. -
Test in Lower Environments
Replicate production load patterns in a lower environment to fine-tune property values before applying changes to production. -
Upgrade to Latest Fixes
Apply the July 2025 release or later, which includes improvements to reduce lock contention for this feature.
https://www.ibm.com/docs/en/order-management?topic=updating-resolved-issues
Document Location
Worldwide
Was this topic helpful?
Document Information
Modified date:
22 August 2025
UID
ibm17242012