[Progress Communities] [Progress OpenEdge ABL] Forum Post: Concurrent record locks are withheld from client/servers sessions for an excessive amount o

Status
Not open for further replies.
D

dbeavon

Guest
We have started using client/server connections from PASOE to our database. I was troubleshooting a performance issue with database locks. I've noticed that if *multiple* client/server connections are accessing the same record, it takes quite a long time for the record to be made available to each of them in turn. Even if the work that needs to be done with the record takes 100 ms, the record won't become available to another client connection for two seconds. Here is some sample code that will be run concurrently from multiple ABL sessions. DEFINE VARIABLE iFindTime1 AS INTEGER NO-UNDO. DEFINE VARIABLE iFindTime2 AS INTEGER NO-UNDO. L_LockUser: DO TRANSACTION: ETIME(TRUE). FIND FIRST gen_user WHERE gen_user.entity = "entity" AND gen_user.user-name = "me" EXCLUSIVE-LOCK. PAUSE 0.100. iFindTime1 = ETIME. UNDO L_LockUser, LEAVE L_LockUser. END. iFindTime2 = ETIME. LOG-MANAGER:WRITE-MESSAGE("Lock Wait Times" + STRING(iFindTime1) + " " + STRING(iFindTime2) ). Assuming five ABL sessions start running this same code at the same time, the output will appear like so: [18/12/14@11:06:26.521-0500] P-004840 T-015380 1 AS-81 APPL ... Running GetData... [18/12/14@11:06:26.521-0500] P-004840 T-027016 1 AS-79 APPL ... Running GetData... [18/12/14@11:06:26.522-0500] P-004840 T-023104 1 AS-77 APPL ... Running GetData... [18/12/14@11:06:26.526-0500] P-004840 T-028252 1 AS-80 APPL ... Running GetData... [18/12/14@11:06:26.526-0500] P-004840 T-016688 1 AS-78 APPL ... Running GetData... [18/12/14@11:06:26.675-0500] P-004840 T-027016 1 AS-79 APPL Lock Wait Times 103 103 [18/12/14@11:06:28.674-0500] P-004840 T-015380 1 AS-81 APPL Lock Wait Times 2102 2103 [18/12/14@11:06:30.678-0500] P-004840 T-023104 1 AS-77 APPL Lock Wait Times 4103 4104 [18/12/14@11:06:32.681-0500] P-004840 T-028252 1 AS-80 APPL Lock Wait Times 6104 6105 [18/12/14@11:06:34.682-0500] P-004840 T-016688 1 AS-78 APPL Lock Wait Times 8104 8105 Notice that the time waiting for the record to become available is about 2000 ms if it wasn't already available. And the work takes only 100 ms. Is there a way to configure that? I would think that releasing the lock after 50 or 100 ms would be high for most applications, but forcing users to wait 2000 ms seems excessive. Thanks in advance.

Continue reading...
 
Status
Not open for further replies.
Top