Mis on ummikseisu ohver?

Ummikseisu ohver on arvutikasutaja, kes tegutseb serveriga ühendatud kliendina, kelle ühenduse serveri host on otsustanud ummikseisu lahendamiseks katkestada. Seda tüüpi ummik tekib sageli siis, kui kaks erinevat protsessi üritavad kasutada samu ressursse, mis põhjustab mõlema protsessi lukku. Selle probleemi lahendamiseks suudavad paljud serveri andmebaasisüsteemid tuvastada ummikseisu ja seejärel otsustada katkestada kahest protsessist ühe ühenduse. Ummikuohvri saab programm meelevaldselt valida, kuigi tavaliselt valitakse kasutaja, kes saab süsteemiga kõige hõlpsamini uuesti ühenduse luua.

Mõistet “ummiku ohver” kasutatakse tavaliselt vea- või eranditeates, mille süsteem kuvab kasutajale, kui tema ühendus katkeb. See viga ilmneb olukorras, mida tavaliselt nimetatakse ummikseisuks. Üldiselt tekib ummikseisu, kui kaks serveriga ühendatud kasutajat üritavad juurdepääsu samadele ressurssidele viisil, mis loob süsteemi lukustuse. Näiteks kui kasutaja A kasutab ressurssi 1 ja peab kasutama ka ressurssi 2, samas kui kasutaja B kasutab ressurssi 2 ja peab kasutama ka ressurssi 1, tekib ummik, kuna kumbki kasutaja ei saa oma protsessi lõpetada.

Selles näites valib süsteem ummikseisu ohvriks ühe kahest kasutajast ja tema ühendus serveriga katkestatakse. Kui see juhtub, saab teine ​​kasutaja oma protsessi lõpetada, lõpetades ummikseisu ja ummikseisu ohver saab serveriga uuesti ühenduse luua. Enamik serveri andmebaasiprogramme on loodud ummikseisu tuvastamisega, mis tavaliselt tuvastab ummikseisu teatud aja möödudes. Kuigi ummikseisu ei pruugi olla suur probleem, võib see kasutajatele, eriti ummikseisu ohvriks valitud kasutajatele, häirida ja osutada ühele või mitmele veale serveri andmebaasi programmeerimisel.

Viis, kuidas server ummikseisu ohvrit valib, võib olla erinev. Mõned programmid valivad ohvri puhtalt juhuslikult. Kuigi see võib olla üsna tõhus, kuna iga valik viib lahenduseni ja ummikseisu lõppemiseni, ei ole see alati ideaalne meetod. Server on tavaliselt programmeeritud hindama kahte kasutajat, et valida see, kes saaks kõige hõlpsamini uuesti ühenduse luua või kes kaotab ühenduse katkemise tõttu kõige vähem andmeid.