3 · Infraestructura·7 min de lectura
Las cuentas se llamaban planta4 y contabilidad2. Nadie podía saber quién había ocupado la licencia.
Cuando el gestor de licencias de un ERP dice quién tiene un asiento ocupado, dice algo así:
Ventas usuario=planta4 sesion=375 asientos=1
planta4, en la sesión 375 del servidor.`planta4` no es nadie. Es una cuenta de Windows compartida, con nombre de puesto de trabajo, que usa quien se siente en esa máquina. No se le puede pedir que suelte el asiento, no se sabe a quién frenó, y no se puede escribir un reporte con eso.
Del otro lado, dentro del ERP, los usuarios sí son personas. Pero son otros nombres: iniciales, nombres de pila, el apellido de alguien. Dos padrones que describen a la misma gente y no se tocan en ningún punto.
Ése es el estado normal de casi cualquier servidor con años encima. Y es la razón por la que las alertas de infraestructura suelen terminar en «alguien dejó algo abierto» — porque alguien es literalmente todo lo que el sistema sabe.
El plan obvio, y por qué es malo#
Lo primero que se le ocurre a cualquiera —se nos ocurrió a nosotros— es levantar un censo. Preguntar quién usa qué cuenta, anotarlo en una hoja, y listo.
Ese documento es una foto, y las fotos se pudren. Alguien cubre una incapacidad, entra un empleado nuevo, dos personas se turnan la misma máquina en distintos horarios. A los quince días la hoja dice una cosa y el servidor otra, y como nadie recuerda cuándo se llenó, se le sigue creyendo.
Peor: un censo da trabajo nuevo —mantenerlo— para resolver un problema que nadie tenía ganas de resolver. Eso se abandona. Siempre.
Lo que el sistema ya guardaba#
La base de datos del ERP publica una tabla interna con todas las conexiones abiertas. Entre sus columnas hay una que casi nadie usa:
MON$USER quién se autenticó en el ERP
MON$REMOTE_PID el número de proceso del programa que se conectó
Y Windows, por su lado, sabe perfectamente en qué sesión corre cada proceso. El número de proceso es el mismo de los dos lados.
Es un gancho, y es de los buenos: no es una coincidencia de nombres, ni una heurística por horario, ni un parecido. Es el mismo número, puesto por el sistema operativo, que ninguno de los dos padrones eligió.
pid ERP sesión Windows
6248 ARANDA 372 planta6
15468 ARANDA 372 planta6
8480 OSORIO 373 planta7
12424 BELMONT 375 planta4
20468 BELMONT 375 planta4
Y de paso apareció algo que ningún censo habría capturado nunca:
1060 — 328 contabilidad2 (Microsip.exe, 148 h)
Es el lanzador, el menú inicial, abierto sin que nadie se haya autenticado. Parece un fantasma acaparando una licencia y no consume ningún asiento. Si hubiéramos hecho el censo, esa cuenta habría quedado apuntada como usuaria de un módulo que nunca abrió.
Por qué se guarda como acumulado y no como foto#
La tentación es tomar el cruce de hoy y llamarlo el padrón. No: se guarda cada observación, y cada pareja lleva la cuenta de cuántas veces se ha visto.
Así, si alguien cubre a un compañero un martes, esa pareja aparece una vez y no borra al titular, que lleva doscientas. Y si un cambio es de verdad —alguien se movió de puesto—, se nota porque la pareja nueva empieza a ganar terreno, no porque alguien avisó.
El padrón deja de ser una declaración y pasa a ser una medición. Nadie tiene que mantenerlo, y por lo tanto nadie lo va a abandonar.
Una trampa que casi nos come#
El cruce se hace contra la base del cliente, y esa consulta tiene una caché por si la base no responde. La primera versión aceptaba la respuesta viniera de donde viniera.
Un número de proceso sólo significa algo ahora. El sistema operativo los recicla: el proceso 6248 de hace dos horas y el 6248 de este momento no tienen por qué ser la misma persona. Cruzar una lista guardada contra procesos vivos no habría dado un error — habría dado parejas inventadas, con nombre y apellido, indistinguibles de las buenas.
Se corrigió para rechazar cualquier respuesta que no venga en vivo:
if (r.source !== 'bridge') → se descarta el cruce y se dice por qué
Lo que sigue#
Con una semana de observaciones, la conversación cambia de tono. Ya no es «hay que ponerle nombre a las cuentas» —que suena a orden y a trabajo para alguien— sino «esta máquina la usa esta persona el 94% del tiempo, aquí está el registro».
Es la misma diferencia de siempre: llegar con el dato o llegar con la corazonada. Y el dato ya estaba ahí, en una columna que nadie había abierto, esperando a que alguien se preguntara si el sistema ya sabía la respuesta antes de ir a preguntarle a la gente.
Caso real, anonimizado. Las cuentas, los usuarios y los nombres de máquina fueron sustituidos; los mecanismos, los tiempos y el comportamiento de las herramientas son los que medimos.