problèmes avec le Coordinateur de transactions distribuées SQL Server provoque l'ouverture de session Trigger
-
16-10-2019 - |
Question
J'ai créé simple déclencheur d'ouverture de session suivante sur mon SQL Server 2005:
CREATE TRIGGER LOGON_RESTRICTION ON ALL SERVER
FOR LOGON
AS
BEGIN
PRINT 'Hello World'
END
GO
Ce qui semble fonctionner très bien dans la plupart des cas sauf chaque fois que le DTC est impliqué. Les messages d'erreur que je reçois sont:
The server failed to resume the transaction. Desc:4d00000273.
et
Process ID 77 attempted to unlock a resource it does not own: DATABASE: 36 . Retry the transaction, because this error may be caused by a timing condition. If the problem persists, contact the database administrator.
An error occurred during the changing of transaction context. This is usually caused by low memory in the system. Try to free up more memory.
Je suis venu à travers cet article qui va contribuer à expliquer la possible cause, mais la solution à la fin est pas tout à fait ce que je suis après.
En fin de compte, je voudrais utiliser le déclencheur pour restreindre l'accès de certaines adresses IP à certaines connexions.
La solution
Si vous creusez à travers la discussion dans les commentaires des articles, vous trouverez un lien vers KB951188 qui détaille un bogue dans le Service Pack 2 qui a été corrigé dans CU7. Vérifiez votre niveau de version pour voir si elle est applicable.