Qu'est-ce qu'une victime de l'impasse?
Une victime d'interblocage est un utilisateur d'ordinateur, agissant en tant que client connecté à un serveur, dont l'hôte du serveur a choisi de mettre fin à la connexion pour résoudre un interblocage. Ce type de blocage se produit souvent lorsque deux processus différents tentent d'utiliser les mêmes ressources, ce qui provoque le blocage des deux processus. Afin de résoudre ce problème, de nombreux systèmes de base de données serveur peuvent détecter le blocage, puis choisir de mettre fin à la connexion de l'un des deux processus. Une victime d'interblocage peut être choisie arbitrairement par le programme, bien que l'utilisateur soit généralement choisi comme étant celui qui peut le plus facilement se reconnecter au système.
Le terme «victime d’un blocage» est généralement utilisé dans le message d’erreur ou d’exception affiché par le système à l’utilisateur lorsque sa connexion est interrompue. Cette erreur se produit dans une situation communément appelée impasse. En général, un blocage se produit lorsque deux utilisateurs connectés à un serveur tentent d'accéder aux mêmes ressources de manière à créer un verrou sur le système. Par exemple, si l'utilisateur A utilise la ressource 1 et doit également utiliser la ressource 2, alors que l'utilisateur B utilise la ressource 2 et doit également utiliser la ressource 1, un blocage se produit car aucun utilisateur ne peut terminer son processus.
Dans cet exemple, l'un des deux utilisateurs serait choisi par le système comme victime du blocage et sa connexion au serveur serait interrompue. Une fois que cela se produit, l'autre utilisateur peut terminer son processus, mettre fin au blocage et la victime de l'impasse peut se reconnecter au serveur. La plupart des programmes de base de données de serveur sont conçus avec la détection d'interblocage, qui détecte généralement un interblocage après un certain temps. Même si un blocage n'est pas nécessairement un problème majeur, il peut être une nuisance pour les utilisateurs, en particulier ceux choisis comme victime du blocage, et indique une ou plusieurs erreurs dans la programmation de la base de données de serveurs.
La manière dont un serveur choisit une victime d'un blocage peut varier. Certains programmes choisissent la victime sur une base purement aléatoire. Bien que cela puisse être assez efficace, chaque choix conduisant à une solution et à la fin de l'impasse, ce n'est pas toujours une méthode idéale. Un serveur est généralement programmé pour que les deux utilisateurs choisissent celui qui pourrait se reconnecter le plus facilement ou qui perdra le moins de données en raison d'une déconnexion.