Oracle Commerce Inventory Deadlocks Seen During Order Submission (Doc ID 1936339.1)

Last updated on OCTOBER 09, 2017

Applies to:

Oracle Commerce Platform - Version 10.2 and later
Information in this document applies to any platform.

Symptoms

You have a custom InventoryManager implementation. You may see errors when concurrent users are performing order submission with carts containing the same SKUs.

java.sql.SQLSyntaxErrorException: ORA-02049: timeout: distributed transaction waiting for lock
 
  at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
  at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
  at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
  at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
  at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
  at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
  at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)
  at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
  at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)

  
Upon investigating in the database, you may see the blocking SQL statements like the following for the same SKU (catalog_ref_id):
 

UPDATE dcs_inventory SET inventory_lock = :1 WHERE catalog_ref_id = :2 AND location_id IS NULL

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