¿Usas algún bloque TRY...EXCEPT o TRY...FINALLY? Lo digo porque es posible que salte alguna excepción que, al no ser tratada adecuadamente, deje la conexión "colgada" (por ejemplo, porque no se cierra la conexión). De hecho, al usar transacciones estás creando una especie de "burbuja de seguridad" que hace que, si hay un error, no se ejecute el programa SQL y por eso te deja de dar error ahora. El problema es que, si cuando hay error no se cierra correctamente la transacción (no se hace roll-back) esa transacción se quede ahí hasta que se cierra el programa, con los problemas que puedan derivarse de ello (en el mejor de los casos, desperdicio de memoria).
Por supuesto, hay que usar transacciones siempre que se hace un programa que posibilite a varios usuarios acceder a una misma base de datos.
|