Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

timeouts sql 2000 dans application web

2 réponses
Avatar
Messenger of the red snake mountain
Bonjour à tous!

Je suis confronté à des timeouts mssql relativement fréquents entre le serveur
web et le serveur de données (ms-sql 2000). Il s'agit d'une application actuellement
en production.

J'ai effectué un audit de mon code en vérifiant qu'il n'y avait pas un oubli dans
le genre connexion.close ou datareader.close, rien ne m'a sauté aux yeux.

J'envisage de placer des balises de surveillance à certains endroits clés de mon
code afin d'obtenir des informations temps-réel sur les connexions ouvertes,
requêtes et appels en attente, datareaders ouverts, etc.

Avez-vous déjà été confronté à une telle situation ? Auriez-vous des conseils
pour me permettre d'identifier la source du problème ? Existe-il des 'best
practices' dans ce domaine ? (pour info, le site est hébergé en mutualisé, je
n'ai accès à la console de la machine mais je peux accéder au serveur via
query analyzer ou entreprise manager si nécessaire)

Merci d'avance,

Antonio

2 réponses

Avatar
Guillaume Davion
Regardes peut-être au niveau de tes requêtes sql, il est possible que
deux d'entre elles entrent en inter-blocage, genre une requete 1 qui
tente un select sur une table qui est lockée par une requête 2, et
que cette requête 2 attende que se libère le lock posé par la
requête 1. D'où blocage, d'où timeout.
Avatar
Messenger of the red snake mountain
>Regardes peut-être au niveau de tes requêtes sql, il est possible que
deux d'entre elles entrent en inter-blocage, genre une requete 1 qui
tente un select sur une table qui est lockée par une requête 2, et
que cette requête 2 attende que se libère le lock posé par la
requête 1. D'où blocage, d'où timeout.



Les verrous... argh ! J'ai regardé au niveau de la trace et je n'ai qu'une
série de SELECT, et un unique UPDATE entre cette série de SELECT.

Je n'avais jamais pensé qu'un verrou pouvait se produire dans cette situation.

Si tel est le cas, quels sont les outils à disposition du développeur pour
clairement identifier ce verrou ? Peut on savoir via une requête sql par
exemple quelles requêtes seraient en attente ou quelque chose du genre ?

Ce qui est étonnant c'est que cette séquence est répétée environ 1'000
fois par jour et se produit à intervalles irréguliers, entre 10 minutes et 1 heure
en moyenne...

En tous cas. merci pour votre réponse, cela me rebranche sur une direction
que je croyais non applicable dans ce cas.

Antonio