Bonjour
Merci pour ta réponse, mais mon problème est quelque peu différent. En fait, il ne s'agit pas d'un interblocage "classique" durant lequel un utilisateur u1 bloque les ressources A puis B pendant que u2 bloque B puis A. Dans ce cas classique, u1 peut obtenir A pendant que u2 obtient B, les deux processus s'interblocant au moment de l'obtention de la ressource suivante...
Dans mon cas, les deux utilisateurs ne veulent obtenir un verrou que pour une seule ressource (matable1). Le problème est, je pense, un problème d'ordonnancement.
En effet, lorsque la ligne
ado.execute "Lock Table maTable1 in exclusivemode"
est exécuté par un utilisateur quelconque, IIS se met en attente de l'obtention de la ressource et aucune autre demande n'est traitée... Si un utilisateur différent avait obtenu cette ressource, IIS ne continue alors pas le traitement du code qui conduit à la libération de la ressource.
J'ai trouvé une première solution avec l'objet "monitor" qui permet de gérer les verrous directement pas asp.net. Dans ce cas, l'ordonnancement est correctement traité par IIS mais cette solution me pose des problèmes de performance et d'évolutivité : les lock table sont en fait dans des composants com, il me faudrait alors poser les verrous avant les appels de chaque fonction qui contient un lock table.
Partager