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. 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
If this error still persists, this error may be caused by product bugs. You can try to apply notes.
Note 1923357 - DM packages failed due to concurrency lock
Note 1748701 - Deadlock RSPCSYNCLOG/RSPCLOGCHAIN for parallel InfoPackages.
There are two KBAs as well regarding this error.
1960682 RUN_LOGIC : Error obtaining concurrency lock (foreign_lock) - BPC NW
2015143 - Error obtaining concurrency lock (foreign_lock) - the latest version in BPC 10.0 NW