IBM Support

Avoiding Lock Contention and Backorders with yfs.nodecapacity Property Tuning

Troubleshooting


Problem

Orders are being backordered even when inventory and capacity are available in the store. The issue is observed after enabling node capacity locking properties intended to prevent over-allocation:
<Property Name="yfs.nodecapacity.threshold" Value="100"/>
<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.timeout and yfs.nodecapacity.maxLockRetry settings, 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 setting yfs.nodecapacity.threshold to 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

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSGTJF","label":"IBM Sterling Order Management System"},"ARM Category":[{"code":"a8m0z000000cxzTAAQ","label":"Inventory"}],"ARM Case Number":"TS019628092","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":""}]

Document Information

Modified date:
22 August 2025

UID

ibm17242012