API REST NetWorker : Les demandes HTTP GET expirent par intermittence
Riepilogo: L’API (Application Program Interface) de NetWorker Representational State Transfer (REST) est utilisée pour demander des informations (HTTP GET) à un NetWorker Server dans l’environnement. Les requêtes de l’API REST expirent par intermittence et le restapi.log affiche un message d’erreur interne du serveur en raison d’un délai d’expiration du socket. ...
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]
Une commande curl envoyée à l’API REST du NetWorker Server affiche les éléments suivants :
[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
L’API REST appelle «v3/global/backups" et "v3/global/jobs" seule est une requête gourmande en ressources et peut entraîner l’expiration de la demande dans des environnements de plus grande taille.
Les services d’API REST NetWorker sont hébergés sur un conteneur de servlet Java Apache Tomcat exécuté sur une machine virtuelle Java (JVM). L’API REST utilise la mémoire JVM pour traiter chaque demande, et il a été démontré que toute la mémoire n’est pas libérée après une requête gourmande en ressources. L’augmentation de l’utilisation de la mémoire JVM peut éventuellement entraîner l’expiration d’autres demandes d’expiration de l’API REST moins gourmandes en ressources.
Risoluzione
Évitez d’utiliser des requêtes gourmandes en ressources pour récupérer des informations à partir du NetWorker Server. Par exemple, l’option «v3/global/backups« ou »v3/global/clients/CLIENT_NUMBER/backups« avec une plage de temps définie peut être utilisée à la place de la variable globale »v3/global/backups» pour récupérer toutes les sauvegardes.
Par exemple, limitez les résultats de saveTime entre n’importe quelle plage horaire spécifiée. Exemple de requête pour les tâches qui se sont terminées au cours des dernières 24 heures :
.. Exemple avec l’option /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 les demandes d’API REST moins gourmandes en ressources arrivent à expiration, les services du serveur NetWorker peuvent être redémarrés pour libérer l’utilisation de la mémoire JVM existante.