NetWorker REST API: HTTP GET-forespørsler blir periodevis tidsavbrutt
Riepilogo: API-en (NetWorker representational state transfer) (REST) brukes til å be om informasjon (HTTP GET) fra en NetWorker-server i miljøet. REST-API-spørringer blir periodevis tidsavbrutt, og restapi.log viser en intern serverfeilmelding på grunn av tidsavbrudd for 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]
En curl-kommando til REST API-en for NetWorker-serveren viser:
[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
REST API-kallene "v3/global/backups" og "v3/global/jobs" alene er en ressurskrevende spørring og kan føre til tidsavbrudd i større miljøer.
NetWorker REST API-tjenestene driftes i en Apache Tomcat Java-servletbeholder som kjøres på en Java Virtual Machine (JVM). REST API bruker JVM-minne til å behandle hver forespørsel, og det har vist seg at ikke alt minnet frigjøres etter en ressurskrevende spørring. Økningen i JVM-minneutnyttelse kan til slutt føre til andre mindre ressurskrevende REST API-forespørsler om tidsavbrudd.
Risoluzione
Unngå å bruke ressurskrevende forespørsler til å hente informasjon fra NetWorker-serveren. For eksempel "v3/global/backups" eller "v3/global/clients/CLIENT_NUMBER/backups" med et definert tidsintervall kan brukes i stedet for å bruke den globale "v3/global/backups" for å hente alle sikkerhetskopiene.
Du kan for eksempel begrense resultatene for saveTime mellom et angitt tidsintervall. Et eksempel på en spørring etter jobber som ble fullført i løpet av de siste 24 timene:
.. /global/backups eksempel:
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"]
Hvis mindre ressurskrevende REST API-forespørsler blir tidsavbrutt, kan NetWorker Server-tjenestene startes på nytt for å frigjøre eksisterende JVM-minnebruk.