EIS – Nueva información de log en servicio HTTPX
Nueva información que se muestra en el log del servicio HTTPX de EIS cuando se produce un error, a partir de el release 2023.2.0.1.
El siguiente es un ejemplo en donde se ve la nueva información en formato JSON al final de la línea:
SERV Error 01/01/2024 12:00:00.0000000 ‘192.168.1.1:12345’-> Error al invocar al servicio remoto [Los headers de la respuesta HTTP no coinciden con los esperados [El header ‘Content-Type’ posee el valor ‘application/json; charset=utf-8’ y se esperaba ‘text/xml’.].]. {RemoteHost: sti-nb-999, RemoteAddress: /SvcEngage/SvcEngageSecureRest.svc/securerest/GetLen, ConnectionName: https, ConnectionLimit: 12, CurrentConnections: 1, MaxIdleTime: 0 00:01:40.0000000, IdleSince: 2024-01-01 12:00:00.0000000}.
Donde:
- RemoteHost: es el nombre del host remoto.
- RemoteAddress: es el path base de la URL, sin el host ni los parámetros de querystring.
Nota: Tanto “RemoteHost” como “RemoteAddress” son útiles para determinar a qué URL se está invocando, sin necesidad de tener el nivel de log en Verbose o Information.
- ConnectionName: es el nombre de la conexión en el ServicePoint. La documentación está en este link: https://learn.microsoft.com/en-us/dotnet/api/system.net.servicepoint.connectionname?view=netframework-4.8
- ConnectionLimit: es el valor que se define en el parámetro “configuration/system.net/connectionManagement/maxconnection” del archivo de configuración del servicio de EIS. Si por algún motivo ese valor no se corresponde con el que está en el archivo de configuración, entonces hay que reportarlo y analizar porqué sucede. Cabe destacar que se pueden informar distintos valores de “maxconnection” para cada URL, por ejemplo:
<configuration>
…
<system.net>
<defaultProxy useDefaultCredentials=”true” />
<connectionManagement>
<clear />
<add address=”*” maxconnection=”12″ />
<add address=”https://demo.engage.com.ar” maxconnection=”96″ />
</connectionManagement>
<settings>
<performanceCounters enabled=”false” />
</settings>
</system.net>
…
</configuration>
En donde se asignan 12 conexiones concurrentes por default para todas las URLs, y 96 para https://demo.engage.com.ar en particular. La documentación de “ConnectionLimit” está en este link https://docs.microsoft.com/en-us/dotnet/api/system.net.servicepoint.connectionlimit?view=netframework-4.8
- CurrentConnections: es la cantidad real de conexiones abiertas para un ServicePoint, y debería ser menor o igual que “ConnectionLimit”. Si se supera el límite, el resto de las conexiones se encolan hasta que alguna se libere. Y el tiempo de espera para efectuar la conexión no puede ser mayor que el timeout definido en el mensaje del servicio HTTPX. La documentación está en este link https://docs.microsoft.com/en-us/dotnet/api/system.net.servicepoint.currentconnections?view=netframework-4.8
- MaxIdleTime: es la cantidad de tiempo en que una conexión asociada a un ServicePoint puede quedar inactiva antes de cerrarse automáticamente. El valor por ahora es fijo (1 minuto 40 segundos) y se expresa como “dias horas:minutos:segundos.milisegundos” La documentación está en este link: https://learn.microsoft.com/en-us/dotnet/api/system.net.servicepoint.maxidletime?view=netframework-4.8
- IdleSince: es la fecha/hora de la última conexión del ServicePoint contra el servidor remoto. La documentación está en este link: https://docs.microsoft.com/en-us/dotnet/api/system.net.servicepoint.idlesince?view=netframework-4.8