Bonjour
J'hérite de code SQL legacy capricieux et je suis face à un problème que je parviens pas à comprendre. Je sollicite donc vos lumières. J'ai une procédure stockée appelée depuis une application cliente de cette forme :
Maps1
Mon problème est le suivant : de temps en temps, mon catch capture les logs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Try EXEC maps2 -- dans cette ps en plein milieu du code , sans try catch, il y a un begin tran + commit tran et aucun rollback. Catch IF XACT_STATE() <> 0 ROLLBACK TRANSACTION --code pour tracer
Echec du traitement : un Rollback a été effectué.
Echec du traitement. Erreur n° 3930, La transaction actuelle ne peut pas être validée et ne prend pas en charge les opérations qui écrivent dans le fichier journal. Restaurez la transaction.
En résulte que l'application ne peut plus appeler uniquement la procedure "Maps1" qui tombe toujours en erreur 3930. Le rollback ayant été déclenché, pourquoi les ressources ne sont pas libérées ? Je n'ai pas non plus la cause de l'erreur de maps2.
Pour résoudre le problème je ferme l'application cliente.
Merci d'avance.
Partager