currently I am trying to learn more on database, right now I'm on DB2, and have locktimeout setting on 30s to test it, I ran several thousand transaction simultaneously to stress test the server, and record the time taken for each stored procedure (SP) called. the timer start after declare line in the SP and end time recorded just before it ends. And I found that the transaction took much longer than 30 sec (even close to 70sec at some point). is there something that i did wrong (I only set LOCKTIMEOUT parameter in db cfg) or is it the way it is?
begin
//record the start time
//the actuan transaction
//record end time, and return the time as result sets
end
if lets say thread no 1,2,3 enter at the same time, thread 1 hold lock for 29sec, and thread 2 hold lock for 29sec, will the thread no 3 got killed for waiting for to long? if it doesnt get killed and completed the task in 10 sec, is the transaction time become 68sec or just 10sec?
Can anyone answer my confusion?