Artículo
· 22 jul, 2021 Lectura de 3 min

Cómo evitar el registro de conexiones superfluas en las interfaces TCP

Posiblemente te hayas encontrado con esto y no supiste cómo evitarlo; o tal vez ni siquiera te diste cuenta...

Pero cuando se tienen componentes empresariales de la Producción de Interoperabilidad TCP (por ejemplo, un business service HL7), probablemente tienes (dependiendo de tu configuración de StayConnected) muchas entradas en el Registro de Eventos (Event log) de tipo Info. Cada entrada registraría una conexión o desconexión.

Por ejemplo:

Y:

Esta información puede ser útil para depurar, por ejemplo, o para vigilar el funcionamiento de las conexiones. Pero de forma continua, especialmente si StayConnected no es permanente (-1), podría generar una gran cantidad de entradas.

Si quieres evitar este tipo de registros (y convertir las entradas en eventos configurables de Trace, en vez de los que pertenecen a Info), puedes hacerlo realizando los pasos que se describen a continuación.

Primero, se necesitan algunos antecedentes.

El código en el Adaptador TCP, responsable de este registro, es condicional (para registrar un evento del tipo INFO o uno TRACE), y depende de una propiedad en el Adaptador llamada [%logconnections](https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cl...).

El valor predeterminado de esta propiedad es 1 (uno), para que pueda registrar estos eventos de conexión y desconexión (como eventos INFO).

Al iniciar el Adaptador TCP de Entrada o Salida (en el método OnInit()), el Adaptador verifica el valor de un Parámetro de Clase en la clase del servidor (por ejemplo, la clase *Business Service* o *Business Operation*). El nombre de este Parámetro de Clase es LOGCONNECTIONS.

Por ejemplo:

 If 0=..BusinessHost.%GetParameter("LOGCONNECTIONS") Set ..%logConnections=0

Así que para evitar que los eventos sean registrados (como eventos INFO), simplemente puedes crear un Parámetro de Clase llamado LOGCONNECTIONS en la clase de tu componente y establecer su valor en 0 (cero).

Suponiendo, por ejemplo, que tienes un Business Service entrante HL7, los pasos serían:

  1. Crea una Clase que extienda EnsLib.HL7.Service.TCPService
  2. Añade un Parámetro de Clase llamado LOGCONNECTIONS con un valor de 0
  3. Cambia la clase de tu Business Service en tu Producción para que sea la nueva clase creada.

Aquí puedes consultar un ejemplo de clase, según lo señalado anteriormente:

Class Test.BS.HL7.TCPService Extends EnsLib.HL7.Service.TCPService
{

  Parameter LOGCONNECTIONS As %Boolean = 0;

}

Y en el Business Service de mi producción tengo:

Ahora las conexiones no se registrarán para nada.

O, si necesitas ver los registros para depuración o para cualquier otro propósito, activa el seguimiento de tu componente y verás ahora los eventos de Trace (en vez de los de Info que teníamos antes).

Por ejemplo:

Y:


Espero que esto te ayude a mantener tu Registro de Eventos más limpio y con un mejor tamaño.

Comentarios (0)2
Inicie sesión o regístrese para continuar