Symptom
CPQ system is experiencing significant slowness, with pages continuously stuck in a loading state.
And in Event logs, you see error logs like (Title: WriteLoginDataForUserId(); Logger: UserPersistentManager).
"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."
Environment
SAP SALES CLOUD CPQ
Cause
- When you see such logs, look closely into them, and we can see that the integration caused this problem as many parallel requests are being made at the same time, and the previous script execution is not completed.
- So look for the custom api call logs and look for the part in the log that will point us to where the custom api is being called in parallel.
- For example, the log will contain something like this:
/wsAPI/wssrv.asmx /customapi/executescript?scriptname=<script_name>/wsAPI/CPQAPI.asmx
- The problem with slowness is the consequence of the DB query timeouts that may occur in case of excessive usage of database tables.
- The problem with large number of requests executing in parallel, especially in case of API calls, is that all requests that are logging the user in (like SOAP API or custom REST API) are writing the user login data which leads to User DB table locking and causing some of the requests that are waiting for this table to be unlocked to fail due to timeout.
Resolution
So this can only be prevented by consuming the API calls correctly by preventing parallel execution as much as possible and performing the maintenance API calls outside of the working hours to allow regular users to use application normally.
Keywords
slowness, CPQ, loading, stuck, WriteLoginDataForUserId(), UserPersistentManager, parallel, api call, script, DB query timeouts , KBA , CEC-SAL-CPQ , Sales Cloud CPQ , Problem