OVH Cloud OVH Cloud

Histoire de verrous

1 réponse
Avatar
Ait Abdelhalim
Voilà, j'ai un sérieux problème au niveau de gestion de verrous

j'ai une procedure stockée comme suit, avec le plus faible niveau d'isolation

ALTER procedure p_halimappelant
As
BEGIN
DECLARE @TRANSACTION_NAME varchar(20)
SELECT @TRANSACTION_NAME = 'myTransaction'

-- Set The Transaction isolation level to uncommited the same in
integration22.asp
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED


BEGIN DISTRIBUTED TRANSACTION @TRANSACTION_NAME
-- Call Remote stored procedure p_halim Appelé
declare @val varchar(10)
declare @ind int
while (@ind < 10) BEGIN
INSERT INTO MATABLE VALUES('VAL')
WAITFOR DELAY '00:00:02'
END

COMMIT TRANSACTION @TRANSACTION_NAME
-- Restore the the default isomation level value
SET TRANSACTION ISOLATION LEVEL READ COMMITTED


end


je lance cette procédure stockée dans query analyseur

et dans un autre query Analyser :

J'exécute cette instruction Transact

update MATABLE
set valeur = 'AFFECTATION'
where valeur = 'VAL'

cette instruction est bloquée tant que la procédure stockée n'est pas
terminée.

Est ce qu'il y a un moyen de forcer son exécution (hint ou autre chose)

Merci davantage

1 réponse

Avatar
lionelp
Bonjour,

L'insert ne peut se faire en read uncommitted
DTC ouvre des gransaction en mode serializable

il est donc normal que l'update soit bloqué tant que l'insert n'est pas
committé.

Cordialement,
LionelP


"Ait Abdelhalim" wrote:

Voilà, j'ai un sérieux problème au niveau de gestion de verrous

j'ai une procedure stockée comme suit, avec le plus faible niveau d'isolation

ALTER procedure p_halimappelant
As
BEGIN
DECLARE @TRANSACTION_NAME varchar(20)
SELECT @TRANSACTION_NAME = 'myTransaction'

-- Set The Transaction isolation level to uncommited the same in
integration22.asp
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED


BEGIN DISTRIBUTED TRANSACTION @TRANSACTION_NAME
-- Call Remote stored procedure p_halim Appelé
declare @val varchar(10)
declare @ind int
while (@ind < 10) BEGIN
INSERT INTO MATABLE VALUES('VAL')
WAITFOR DELAY '00:00:02'
END

COMMIT TRANSACTION @TRANSACTION_NAME
-- Restore the the default isomation level value
SET TRANSACTION ISOLATION LEVEL READ COMMITTED


end


je lance cette procédure stockée dans query analyseur

et dans un autre query Analyser :

J'exécute cette instruction Transact

update MATABLE
set valeur = 'AFFECTATION'
where valeur = 'VAL'

cette instruction est bloquée tant que la procédure stockée n'est pas
terminée.

Est ce qu'il y a un moyen de forcer son exécution (hint ou autre chose)

Merci davantage