Have you encountered “Error obtaining concurrency lock (foreign_lock)”?
I see a lot of people encountered error “Error obtaining concurrency lock (foreign_lock)” when running data package, even when sending data from EPM Add-in. If you are on BPC on HANA, you may see the error “Database returned the SQL code 131. Error text: transaction rolled back by lock wait timeout: Lock timeout occurs while waiting RECORD_LOCK of mode EXCLUSIVE(TRANSACTION_ID=70,UPDATE_TRANSACTION_ID=325118715)”
By searching SAP KBA/Note, you may get solution that increase value of RECLEVEL_NR to make it larger than another parameter PACKAGE_SIZE. Actually, this is wrong, make it even worse. (Therefore, this kba is not visible to customer, but you still can find it by Google. On other websites, see http://www.saptechies.com/runlogic-error-obtaining-concurrency-lock-foreignlock-bpc-n/ ).
Now, let’s see what RECLEVEL_NR means. Below is the description from BPC admin guide.
See what you found, the default value is 10. Not like what is mentioned in that KBA – it should be bigger than PACKAGE_SIZE(which is wrong). According to the description, the record-based locking will be performed if the number of the records is less or equal to the value you set. If you change RECLEVEL_NR larger(e.g. 42000) than package_size(which has default value 40000) , every time the data generated by your package or EPM Add-in nearly reaches to 42000, 42000 records locking will be performed on your BI server. If your BI server is not strong enough, the locking may fail to implement the lock. As a result, you will see error “Error obtaining concurrency lock (foreign_lock)”.
So next time you see this error, you can try to change the value of RECLEVEL_NR to default value 10. To change the value, you can follow the steps below.
- Logon ABAP server.
- Execute transaction SPRO ->SAP reference IMG ->Planning and consolidation ->Configuration parameters ->Set model parameters
- Find Environment/Model.
- Edit parameter RECLEVEL_NR
By the way, changing the parameter doesn’t release the lock. It just prevents the lock issue from happening again. As an option, you can restart the BW server to release the lock.
If this error still persists, this error may be caused by product bugs. You can try to apply notes.
BW Note fix updated on Nov 26, 2016.
There are two KBAs as well regarding this error.