O que é uma vítima de impasse?
Uma vítima de impasse é um usuário de computador, agindo como um cliente conectado a um servidor cuja conexão o host do servidor optou por encerrar para resolver um impasse. Esse tipo de conflito geralmente ocorre quando dois processos diferentes estão tentando utilizar os mesmos recursos, o que causa o bloqueio de ambos os processos. Para resolver esse problema, muitos sistemas de banco de dados do servidor podem detectar quando ocorre um conflito e, em seguida, optar por encerrar a conexão de um dos dois processos. Uma vítima de conflito pode ser escolhida arbitrariamente pelo programa, embora o usuário seja normalmente escolhido como aquele que pode se reconectar mais facilmente ao sistema.
O termo "vítima de impasse" é normalmente usado na mensagem de erro ou exceção exibida pelo sistema ao usuário quando sua conexão é encerrada. Este erro ocorre em uma situação geralmente chamada de deadlock. Em geral, um conflito ocorre quando dois usuários conectados a um servidor estão tentando acessar os mesmos recursos de uma maneira que cria um bloqueio no sistema. Por exemplo, se o Usuário A estiver usando o recurso 1 e precisar usar também o recurso 2, enquanto o Usuário B estiver usando o recurso 2 e precisar usar também o recurso 1, ocorrerá um impasse, pois nenhum usuário poderá concluir seu processo.
Neste exemplo, um dos dois usuários seria escolhido pelo sistema como vítima do impasse e sua conexão com o servidor seria encerrada. Quando isso ocorre, o outro usuário pode concluir seu processo, encerrando o impasse e a vítima do impasse pode se reconectar ao servidor. A maioria dos programas de banco de dados do servidor é projetada com detecção de deadlock, que normalmente detecta um deadlock após um certo período de tempo. Mesmo que um impasse não seja necessariamente um grande problema, pode ser um incômodo para os usuários, especialmente aqueles escolhidos como vítima do impasse, e indica um ou mais erros na programação do banco de dados do servidor.
A maneira como um servidor escolhe uma vítima de conflito pode variar. Alguns programas escolhem a vítima de maneira puramente aleatória. Embora isso possa ser bastante eficaz, já que qualquer escolha leva a uma solução e ao fim do impasse, esse nem sempre é o método ideal. Um servidor geralmente é programado para avaliar os dois usuários para escolher aquele que poderia se reconectar com mais facilidade ou quem perderá a menor quantidade de dados devido à desconexão.