3 · Infraestructura·8 min de lectura

El dueño no podía entrar a su propio sistema. La explicación obvia culpaba a un empleado, y era falsa.

10 sep 2026InfraestructuraMétodoERP

El mensaje llegó por WhatsApp, a las 12:44 de la tarde, del dueño de la empresa:

«Ingresé para dar de alta el cliente solicitado. Pero al momento de abrir el sistema entro como si alguien lo estuviera ocupando. ¿Es normal?»

No, no es normal. Y lo interesante es que desde afuera todo estaba bien: el túnel respondía, la base de datos contestaba en 130 milisegundos, el servicio llevaba 986 horas sin reiniciarse. Ningún tablero tenía un solo foco en rojo mientras el dueño de la empresa se quedaba fuera de su propio ERP.

Lo primero que uno cree#

El instinto dice: alguien dejó sesiones abiertas. Y había con qué sostenerlo. En ese servidor viven cuentas de escritorio remoto desconectadas, que no es lo mismo que cerradas — una sesión desconectada conserva todos sus programas corriendo:

salida
USUARIO          ID   ESTADO   INACTIVO   DESDE
administrador     1   Desc      12:37     31/07/2026
soporte          57   Activo    ninguno   07/08/2026
contabilidad2   328   Desc       1:24     04/09/2026
Salida de query user, el comando de Windows que lista quién está dentro del servidor. Desc = desconectado. Una lleva 41 días así.

Cuarenta y un días. Ahí estaba la historia: sesiones fantasma acaparando licencias. Es limpia, es culpable de alguien, y es falsa — ninguna de esas dos sesiones tenía una licencia tomada en ese momento. Buena historia, cero evidencia.

Lo segundo que uno cree#

Entonces fuimos al gestor de licencias, que vive dentro del servidor y publica su estado en una dirección local. Y ahí apareció el que parecía el culpable de verdad:

salida
Ventas   usuario=planta4  sesion=375   12:48:15
Ventas   usuario=planta4  sesion=375   12:48:17
La misma estación abrió el mismo módulo dos veces, con dos segundos de diferencia. Y de ese módulo sólo existen dos asientos.

Es casi perfecto. Una persona, dos clics, el 100% de la licencia de Ventas consumida por una sola estación, y el dueño chocando contra la pared un minuto antes. Escribimos la explicación, la mandamos, y empezamos a diseñar la alarma: «una sesión tiene dos asientos del mismo módulo».

Y antes de programarla, fuimos a leer cómo cuenta ese gestor.

salida
fid=6  Ventas        cnt=Station   0/2
fid=8  Compras       cnt=Station   1/1
fid=4  Inventarios   cnt=Station   2/2
El campo cnt dice el modo de conteo. Station = se cuenta por estación, no por programa abierto.

Por estación. Es decir: abrir el mismo módulo dos veces desde el mismo lugar no gasta un segundo asiento. El desperdicio que habíamos encontrado, y casi publicado, no existía. Esa persona no hizo nada malo.

La alarma que estuvimos a punto de dejar corriendo habría señalado a alguien —por nombre, con hora exacta— todos los días, por un comportamiento que no cuesta nada.

Lo que realmente pasaba#

salida
Ventas               2 / 2   lleno
Inventarios          2 / 2   lleno
Cuentas por pagar    2 / 2   lleno
Compras              1 / 1   lleno
Bancos               1 / 2
Contabilidad         0 / 2
Cuentas por cobrar   0 / 2
Nómina               0 / 1
Asientos ocupados contra asientos contratados, en el minuto exacto del bloqueo.

El límite de ese ERP no es «una licencia por persona». Es un tope por módulo, y los topes son de uno o dos. Con seis personas trabajando, dos no pueden estar en Ventas a la vez. Punto. Los dos asientos los tenían dos estaciones distintas, haciendo su trabajo, y el dueño era el tercero.

No había nada que limpiar. No había culpable. Había cuatro de ocho módulos sin un lugar libre y una empresa que creció más rápido que su licencia.

Y de rebote, dos renglones más abajo en la misma página que nadie había abierto nunca: la licencia completa vencía en catorce días. Los ocho módulos, el mismo viernes.

Por qué esto se repite#

La explicación que culpa a una persona siempre gana, y no porque seamos malos: es que es la única que trae una acción clara al final. «Faltan licencias» cuesta dinero y hay que sostenerlo frente a alguien. «Sujeto X abrió el programa dos veces» se arregla con un mensaje.

Es la misma trampa que ya nos había mordido con una cifra inflada: el dato que más conviene es el que menos se revisa.

Lo que hicimos#

Ninguna alarma sobre duplicados. En su lugar, medición: cada quince minutos queda registrado, desde dentro del servidor, cuántos asientos tiene ocupados cada módulo y quién los tiene.

Y el detector no dispara cuando un módulo se llena —eso es uso normal, y avisarlo cada vez enseña a ignorar el aviso—, sino cuando un módulo pasa más del 30% de la jornada sin un lugar libre, medido sólo en horas de trabajo, sobre siete días.

Hoy ese detector devuelve cero hallazgos, y eso está bien: cero no es «todo bien», es «todavía no hay semana». En siete días habrá una curva, y esa curva es la diferencia entre llegar a pedir presupuesto con un dato o con una corazonada.


Caso real, anonimizado. Las cuentas y los nombres de máquina fueron sustituidos; los topes, los horarios y el comportamiento de las herramientas son los que medimos.