Pues heme aquí, sonrojado y con el mea culpa mas sincero que se pudiera sentir… a narrar la historia.
Era temprano por la mañana, y un usuario se quejaba de que en el sistema no podía confirmar un movimiento. Revisando el log, decidí reproduir el error, realizando yo el movimiento, en coordinación con el usuario claro está. Para ello, y aprovechando para ver como se comporta la versión de desarrollo/pruebas que próximamente subirá a producción, decidí, solo por esta vez, conectar mi aplicación a la base de datos de producción (primer error: que me costaba hacer un backup, y probar en local, con la data actualizada).
Yacía probando el error, y revise nuevamente el log. En eso, que me requieren para alguna reunión, coordinaciones, etc., luego que otra cosa por aquí, otra por allá, y al cabo de un rato regreso a mi PC. ¿Cuánto rato fue?, pues lo suficiente para olvidar algunas cosas, como el hecho que había dejado mi app conectada a la BD de producción.
Bien, entonces dije, ajá!, mugre error, veré más allá de lo evidente, y depuraré paso a paso… en eso, me siguen interrumpiendo constantemente, y muy confiado, dejo la depuracion a medio hacer (segundo error!!!). Cuando tenia ratos libres, me iba con los F11 revisando sentencias, resultados y flujos en el código. Derredor de media hora despues, algunas quejas de usuarios, sobre el hecho que no podían sacar algunos reportes en pdf desde el sistema, constituyen el primer campanazo. Revisando el log, me indica que lo que sucede es que el IIS espera y espera, y como el MSSQL no le responde, o se tarda en hacerlo, expira la solicitud. En eso, me llegan algunas cosas mas que hacer, las cuales son de prioridad, y decido posponer para despues la incomodidad de los usuarios y sus reportes (tercer error!!!!).
Nos vamos a almorzar, y como parte del mantenimiento que le aplicamos al servidor web, por estas fechas, le dimos una reiniciada, aprovechando para la instalación de las últimas actualizaciones. Regresados del almuerzo, nos topamos con que el sistema está muy lento, no salen los reportes, ocurren errores cuando graban, etc etc… horror!!!… manos a la obra, veamos que pasa.
Todo estaba relacionado con el servidor de base de datos, pues el problema de hace rato, el de tiempo expirado, se repetía ahora para casi cualquier operación en el sistema. Analizamos la situación, y nos percatamos que justo en la mañana, habíamos conectado al servidor de base de datos un nuevo PC que se encuentra implementando los reportes y consultas en reporting services. Decidido!, desconectar eso, pues alguna vez me fije en que el repoting se encuentra constantemente enviando acuses de recibo al servidor (por lo menos así lo vi en una máquina de desarrollo alguna vez atrás).
Erradicamos el servicio y su conexión a nuestra BD y todo seguía igual. Reviso la actividad actual del MSSQL en el administrador corporativo (Administracion/Actividad Actual) y tarán!!!!, encuentro 4 conexiones abiertas desde mi PC. Regreso a mi PC y encuentro lo que esperaba, unos query analyzer que había abierto hace poco para solucionar una barrabazada de un usuario, y… y… y… y me topo con mi Visual Studio abierto y depurando paso a paso, pausado en la linea de codigo no se cuantito, y recuerdo que estaba apuntando a producción…
Siempre fui yo, desde el inicio había sido yo!. No recorde apuntar a la BD en local para depurar, y en primer lugar, nunca debí de apuntar a la BD de producción, pero lo hice, y aprendí la lección
. Detuve la depuración, revise nuevamente la actividad actual en el servidor, y nos pusismos ha realizar pruebas en el sistema (léase generar reportes, revisar la velocidad de la carga, etc). TODO BIEN… es que, siempre fui yo, todo el tiempo fui yo.
Extendí las disculpas del caso a mis copmpañeros de labores dentro del área, y a los usuarios, pues les dijimos que Bla Bla Bla, Bla Bla Bla.
Moraleja: … pues hay muchas, para sintetizar: simplemente no hacer lo que yo hice