OVH Cloud OVH Cloud

blocage sql server 7

3 réponses
Avatar
Laurent
Bonjour,
le serveur sql se bloque, les requêtes partent en timeout, j'ai utilisé
sp_blocker_pss70 pour voir d'où venait le problème. Malheureusement j'ai du
mal à interpréter son analyse. Qui peut me dire s'il y a des anomalies dans
ce résultat :

http://195.140.140.60/jeu/blocker20050326.txt

Merci

3 réponses

Avatar
Philippe T [MS]
Bonjour,

Deadlock entre le process 15 et 17 ???
<<
Insert into Sessutil (Sessionid, numutilisateur, datemaj)
values('UR1R2D0DHBTH2GMR00AL08MS25R42TDD', 2588,getdate())






Gérez vous des transactions dans votre appli ?

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Laurent" wrote in message
news:
Bonjour,
le serveur sql se bloque, les requêtes partent en timeout, j'ai utilisé
sp_blocker_pss70 pour voir d'où venait le problème. Malheureusement j'ai


du
mal à interpréter son analyse. Qui peut me dire s'il y a des anomalies


dans
ce résultat :

http://195.140.140.60/jeu/blocker20050326.txt

Merci



Avatar
Laurent
Bonjour,

Merci pour votre aide.

15 ou 17 : cette requête est effectuée lors de l'identification sur le site
web, probablement une personne qui a été prise dans le "blocage" et essaye de
se reconnecter, mais ses tentatives partent en timeout.

d'ailleurs apparemment une seule personne sur le site (un seul identifiant
sessionsid)

de même pour 13 simple requête depuis le site.

11 bloque probablement tout le monde, il s'agit d'une procédure stockée qui
gére une transaction, un tablockx, et 4 appels à d'autres procédures stockées
(2500 lignes de code)

je gère les transaction dans la procédure stockée, mais pas dans celles qui
sont appelées.

la structure de le proc stock :

CREATE PROC ps_ListeComposantsOKessai (@SessionId char(32),
@NumDistributeur int, @NUMFAM int, @NUMFAM2 int = -1) AS
...
set XACT_ABORT ON
set NOCOUNT ON --on = no messages are returned to the caller
begin transaction ListeComposantsOKessai
SELECT @NB=Count(*) FROM SESSLISTCOMP WITH (tablockx) --takes an exclusive
lock on the table that is held until the end of the command or transaction
CREATE TABLE #tmp_famille
(
...
)
CREATE TABLE #tp_prix
(
...
)
...

exec dbo.psi_VCompatible1A @SessionIdBis, @NumDistributeur, @NUMFAM
exec dbo.psi_VCompatible1B @SessionIdBis, @NumDistributeur, @NUMFAM
exec dbo.psi_VCompatible1C @SessionIdBis, @NumDistributeur, @NUMFAM
exec dbo.psi_VerifRegleLivraison @SessionId, @NumDistributeur
...
if (@@ERROR <> 0) goto ROLLBACK_ON_ERROR
if @@TRANCOUNT > 0 COMMIT transaction ListeComposantsOKessai
RETURN

ROLLBACK_ON_ERROR:
if @@TRANCOUNT > 0 ROLLBACK transaction ListeComposantsOKessai
RETURN
Avatar
Laurent
un autre jour, blocage du sql server, relevés effectués à quelques secondes
d'intervalle :

http://195.140.140.60/jeu/valblock1.rpt
http://195.140.140.60/jeu/valblock2.rpt
http://195.140.140.60/jeu/valblock3.rpt
http://195.140.140.60/jeu/valblock4.rpt

Les requêtes partent en time-out, kill innopérant, shutdown with nowait
innopérant, une seule solution : reboot de la machine.
Est-ce un problème de blocage comme on l'entend en sql ?
je me le demande car le waittype est à 0x0081 (writelog)