Sccext - Table Locking Errors When Updating Complex Costs For Component Item Cost Changes
(Doc ID 2847632.1)
Last updated on FEBRUARY 27, 2024
Applies to:
Oracle Retail Merchandising System - Version 16.0.3 and laterInformation in this document applies to any platform.
Symptoms
When a complex buyer pack has multiple items having cost changed across multiple cost changes and sccext is multi-threaded, the batch aborts with the following error:
err.sccext_16.Aug_11:sccext_16~20210811011648~process~~148~ -148: non-ORACLE exception ~INTERNAL STORED FUNCTION ERROR: function=COST_EXTRACT_SQL.BULK_UPDATE_COSTS, error=@0TABLE_LOCKED@1ITEM_SUPP_COUNTRY_LOC@2102282912,cost_chg=2010399
This is because when a component item has its cost changed, the code will then update the cost of all the complex packs associated to that component item. Since a complex pack can have many items, in the event these items are updated in multiple cost changes then multiple threads will try and lock/update the same ITEM_SUPP_COUNTRY_LOC records as the same time.
ERROR
-----------------------
err.sccext_16.Aug_11:sccext_16~20210811011648~process~~148~ -148: non-ORACLE exception ~INTERNAL STORED FUNCTION ERROR: function=COST_EXTRACT_SQL.BULK_UPDATE_COSTS, error=@0TABLE_LOCKED@1ITEM_SUPP_COUNTRY_LOC@2102282912,cost_chg=2010399
STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1) Identify a complex buyer pack with 40+ items, all ranged to over 2500+ locations.
2) Create individual cost changes for the component items.
3) Set sccext to be multi-thread with 16 threads.
4) Run sccext.
5) Notice most threads will abort.
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |