Ik denk dat je de terminologie/het proces vereenvoudigt. Nadat de query is geparseerd en voordat deze wordt uitgevoerd, moet deze de nodige vergrendelingen verkrijgen. Op dit punt wordt vastgesteld dat:
- sessie 1 krijgt de exclusieve vergrendeling, omdat deze wordt ingevoegd en er geen andere vergrendelingen zijn
- sessie 2 en 3 komen in de wachtrij te staan voor de gedeelde vergrendeling omdat de exclusieve vergrendeling al is vastgehouden door sessie 1, en sessie 2 en 3 hebben een dubbele sleutelfout
Zoals hierboven beschreven, worden sessies 2 en 3 in de wachtrij geplaatst voor gedeelde sloten omdat ze een dubbele sleutelfout hebben. Wanneer sessie 1 echter de sleutel verwijdert en de exclusieve vergrendeling vrijgeeft, krijgen nu zowel sessie 2 als 3 gedeelde vergrendelingen. Op dit punt proberen beide een exclusief slot te bemachtigen om de insert te voltooien. Geen van beide kan echter, omdat de ander het gedeelde slot al vasthoudt. Dus aan geen van beide wordt exclusief slot verleend en ze lopen vast.