Troubleshooting
Problem
Deadlocks are observed while trying to invoke adjustInventory API.
Symptom
Deadlocks are detected as shown in the error trace below :
java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:281)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement. java:205)
at
Resolving The Problem
Enabling below mentioned property will help in resolving the problem, as it will lock items in alphabetical order.
yfs.yfs.inventory.sortandlock=Y in customer_overrides.properties or yfs.inventory.sortandlock=Y in yfs.properties.
Setting this property to Y will prevent dead locks on YFS_Inventory_Item table during
order creation and when synchronizing changes from a shipment back to the order. This
parameter is only used if the order contains a logical kit, or when a shipment lines are created for different orders.
Setting this property to Y will result into holding lock on YFS_Inventory_Item table for longer period. So, this may degrade overall system performance. Because of this reason, this property should be set to Y only if excessive dead locks are occurring on YFS_Inventory_Item table.
Was this topic helpful?
Document Information
Modified date:
10 May 2022
UID
swg21625219