Logged-in users cause errors in SDK calls

Overview

When there are too many users logged in, you receive the following error through the SDK calls:

<ErrorDetails>
<ErrorMessage>'[ErrorIn=Bizarro.Everest.Session.Open]' is not a valid GUID value</ErrorMessage>
<ErrorCode>8001FA00</ErrorCode>
</ErrorDetails>
at EverestAPI.eoCustomerClass.List(String sUID, String aQueryXML)
at EverestInterface.Service1.ViewCustomerCodeByEmail(String email)

Solution

The solution, in this case, is to clear the user locks from the database, to force the obsolete connections to log-off. To do this, please follow the steps below:

  1. Open SQL Server Management Studio
  2. In the Object Explorer, right-click on the Everest_System database and choose New query
  3. (Optional) Run the query below to retrieve the user locks:
    SELECT *
    FROM   everest_spm
    WHERE  uid IN (SELECT uid
                   FROM   everest_spm
                   WHERE  attribute = 23
                          AND value = 7) 
    
  4. Run the query below to clear the user locks:
    DELETE FROM everest_spm
    WHERE  uid IN (SELECT uid
                   FROM   everest_spm
                   WHERE  attribute = 23
                          AND value = 7) 
    
Note

The value passed in the queries above is set to 7, as it isolates the obsolete connections.

If you specify other values or without values (example: DELETE FROM EVEREST_SPM), then the query may clear out all processes, whether active or obsolete.
In this case, all logged-in users will also be disconnected.

Scheduled script

Optionally, you can minimize the chance of this issue manifesting again in the future by scheduling a script to clear the session nightly/weekly, by following the below steps:

  1. Open SQL Server Management Studio
  2. Expand the SQL Server Agent node, right-click the Jobs node, and choose New Job
  3. In the New Job window, open the General tab, and enter the name of the job and its description.
  4. Select Steps on the left-hand side of the window and click New at the bottom.
  5. In the Steps window enter a step name and select the database you want the query to run against.
  6. Paste in the T-SQL command "DELETE FROM EVEREST_SPM WHERE UID IN (SELECT UID FROM EVEREST_SPM WHERE ATTRIBUTE = 23 AND VALUE = 7)" to run into the Command window and click OK.
  7. Click on the Schedule menu on the left of the New Job window and enter the schedule information (e.g. daily and time 3 AM EST).
  8. Click OK to save the scheduled script.

MViKk.gif

Testing

To validate that the steps above worked and that the locks are cleared, when you run an SDK transaction, it goes through without any issues. If the issue still manifests, please contact support.

Comments

0 comments

Please sign in to leave a comment.