domingo, 5 de agosto de 2012

Otro caso de "brujería"

Creo que debería abrir un blog especial de brujeria porque a raiz de mi ultima entrada comencé a acordarme de varios casos "sin solución"

Escenario:
Una empresa con cuatro sucursales.
En cada sucursal hay una impresora fiscal marca Hasar y un programa escrito en Visual Basic corriendo bajo windows xp en un caso y vista en el resto. Ese programa se conecta con la impresora fiscal para emitir las facturas.

El problema:
En dos de las sucursales el texto correspondiente a la razón social sale truncado.
La providencia quiso que se pueda descartar el sistema operativo pues la version y service pack de aquel en el que sí funciona (windows vista) es la misma que en donde funciona mal. Ademas tampoco funciona en un terminal con windows xp.
El programador le atribuye el problema a la impresora.
Los de la impresora, a su vez, le atribuyen el problema al programa.

Las pruebas:
Los de la impresora hicieron "enroque" de impresoras y verificaron que el corte de texto se produce exclusivamente en la sucursal, por lo tanto no es problema de la impresora.
El programador dice que la version del programa es exactamente la misma en todas las sucursales. Por lo tanto tampoco es el programa.
Me contratan para que encuentre la causa del problema.

Mis pruebas:
Los sospechosos son: el puerto serie y el driver.
Me enfoco en el driver de la impresora fiscal.
Se llama fiscal.ocx.
Tomo nota de la versión del ocx en una sucursal y la comparo con el homonimo de la otra sucursal. Son la misma versión: 1.0.0.1

La solución:
Sospechando de la veracidad del informe de versión, hago una copia del fiscal.ocx de la sucursal en la que sí funciona.
Me voy a una sucursal con problemas y comparo ambos archivos con el comando fc. A pesar de que MS informa que ambos tienen la misma versión, son distintos. Lo reemplazo. Problema resuelto.

Conclusión:
La brujería no existe. No crean en todo lo que dice MS. No es necesario tener grandes conocimientos para resolver problemas complejos.




La brujeria no existe en computación

El escenario es el siguiente:

Una red de siete terminales, todos con windows xp, más un servidor windows 2000, más un NAS-235 Airlive.
Los terminales utilizan sin problemas archivos word, excel, etc., almacenados en el nas, del mismo modo que los almacenados en el servidor windows.
Los terminales ejecutan un programa compilado en Visual Basic que accede a una base de datos access.

El problema:
Si la base de datos access se aloja en el nas, el programa conecta algunas veces y otras no. Sin embargo conecta sin problemas cuando la base de datos reside en el servidor Windows.

Los antecedentes:
El administrador de la red informa que el problema ocurre en todas las pc de la red.
De esto hace ya mas de un año. El tecnico le pateó el problema al programador y se cruzó de brazos.
Entonces el programador me contrata para resolver el problema.

Las pruebas:
Hago las pruebas en cuatro pc de la red y efectivamente el comportamiento es como se describe en "el problema"
Instalo el nas en mi propia red y funciona perfecto.
Pienso: no habrá sido cuestion de reiniciar el nas????
Lo llevo nuevamente al lugar y sigue con el mismo problema.
Para aislar el problema de la red, conecto el nas directamente a una pc y el problema se repite. Ergo: la red no es
Pienso será la version del programa? Bueno eso es fácil: me llevo el ejecutable junto con el nas de nuevo para probar en mi red: funciona perfecto.
La conclusión es clara: no hay brujería, todas las pc de la red tienen un problema.
Yo había probado con cuatro, pero serían todas?
Comienzo a probar de a una. La prueba es muy simple: solo redireccionar el programa para que lea una base de datos de prueba alojada en el nas. Son cinco minutos por maquina.
Mientras hago las pruebas tomo nota del sistema operativo. Todas tienen Windows XP sp2.
A partir de ahi comienzo a sospechar del service pack. Sigo haciendo pruebas y ya hasta me animo a predecir el resultado segun el SP. En las pruebas que habia hecho en mi red era SP3 y si no encontraba un sp3 en esa otra red, no lograría hacer funcionar el programa. Esa era mi predicción.
Llego a la quinta pc y leo antes el SP: tiene sp3!! y pienso aca va a funcionar...Efectivamente, funcionó.

Conclusión:
No existe la brujería. El nas andaba perfecto, el programa tambien.
No hacen falta grandes conocimientos para resolver muchos de los problemas, solo intuición y ganas.
Alguien con grandes (o al menos medianos) conocimientos, tal vez hubiese instalado un analizador de protocolo para examinar cada paquete transmitido y llegar, luego de tal vez horas de análisis, que el problema estaba en el service pack por la falta de un parche.
La verdad, sería muy interesante analizar qué parche de todos los que contiene el sp3 es el que resuelve el problema, pero a mí me bastó encontrar la solución.
El tecnico se comprometió a actualizar el SO en todas las maquinas y problema resuelto.