API REST de NetWorker: Se agota el tiempo de espera de las solicitudes HTTP GET de forma intermitente
Riepilogo: La interfaz de programación de aplicaciones (API) de transferencia de estado representacional (REST) de NetWorker se utiliza para solicitar información (HTTP GET) desde un NetWorker Server en el ambiente. Se agota el tiempo de espera de las consultas de la API REST de forma intermitente y el restapi.log muestra un mensaje de error interno del servidor debido a un tiempo de espera agotado del conector. ...
Sintomi
YYYY-MM-DD HH:MM:SS INFO [https-jsse-nio-9090-exec-26] c.e.n.w.WebApiResponse - Response status Method: 'GET', URI:'v3/global/backups', Status '200'
YYYY-MM-DD HH:MM:SS INFO [https-jsse-nio-9090-exec-26] c.e.n.w.WebApiResponse - Response status Method: 'GET', URI:'v3/global/backups', Status '500'
...
YYYY-MM-DD HH:MM:SS ERROR [https-jsse-nio-9090-exec-11] c.e.n.w.WebApiExceptionMapper - Status 'Internal Server Error', msg: java.io.IOException: Broken pipe
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:333) ~[catalina.jar:9.0.10]
Un comando curl a la API REST de NetWorker Server muestra lo siguiente:
[root@NetworkerServer]# curl -X GET -H "Content-Type: application/json" "https://mynsr.mydomain.com:9090/nwrestapi/v3/global/backups" -u "administrator" -k -1
Enter host password for user 'administrator':
curl: (28) Operation timed out after 300406 milliseconds with 0 out of 0 bytes received
Causa
La API REST llama a "v3/global/backups" y "v3/global/jobs" por sí solo es una consulta de uso intensivo de recursos y puede hacer que se agote el tiempo de espera de la solicitud en entornos más grandes.
Los servicios de API REST de NetWorker se alojan en un contenedor de servlets Java Apache Tomcat que se ejecuta en una máquina virtual Java (JVM). La API REST utiliza la memoria de JVM para procesar cada solicitud y se ha demostrado que no toda la memoria se libera después de una consulta con uso intensivo de recursos. El aumento en la utilización de la memoria de JVM puede llegar a provocar que se agote el tiempo de espera de otras solicitudes de API REST con uso intensivo de recursos.
Risoluzione
Evite el uso de solicitudes con uso intensivo de recursos para recuperar información de NetWorker Server. Por ejemplo, la opción "v3/global/backups" o "v3/global/clients/CLIENT_NUMBER/backups" con un rango de tiempo definido se puede usar en lugar de usar el " globalv3/global/backups" para recuperar todos los respaldos.
Por ejemplo, restrinja los resultados de saveTime entre cualquier rango de tiempo especificado. Un ejemplo de una consulta de trabajos que se completaron en las últimas 24 horas:
.. Ejemplo de /global/backups:
https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/backups?q=saveTime:["START" TO "END"]
https://nsr.amer.lan:9090/nwrestapi/v3/global/backups?q=saveTime:["2024-07-24T00:00:01" TO "2024-07-24T23:59:59"]
../global/clients/client_resourceId_number/backups
https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/clients/client_resourceID_number/backups?q=saveTime:["START" TO "END"]
https://nsr.amer.lan:9090/nwrestapi/v3/global/clients/87.0.90.20.0.0.0.0.196.80.99.102.192.168.9.150/backups?q=saveTime:["2024-07-24T00:00:01" TO "2024-07-24T23:59:59"]
../global/jobs:
https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/jobs?q=endTime:["START" TO "END"]
https://nsr.amer.lan:9090/nwrestapi/v3/global/jobs?q=endTime:["2024-07-29T00:00:01" TO "2024-07-29T23:59:59"]
Si se agota el tiempo de espera de las solicitudes de API REST de uso intensivo de recursos, los servicios de NetWorker Server se pueden reiniciar para liberar el uso de memoria de JVM existente.