NetWorker REST API: U požadavků HTTP GET občas dochází k vypršení časového limitu
Riepilogo: Rozhraní aplikačního programu (API) NetWorker Representational State Transfer (REST) se používá k vyžádání informací (HTTP GET) ze serveru NetWorker v prostředí. Dotazy rozhraní REST API občas vyprší a restapi.log zobrazí interní chybovou zprávu serveru z důvodu vypršení časového limitu soketu. ...
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]
Příkaz curl pro rozhraní REST API serveru NetWorker zobrazí:
[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
Rozhraní REST API volá "v3/global/backups" a dále "v3/global/jobs" je dotaz náročný na prostředky a může způsobit vypršení časového limitu požadavku ve větších prostředích.
Služby rozhraní NetWorker REST API jsou hostovány v kontejneru Apache Tomcat Java servlet, který je spuštěn na virtuálním počítači Java (JVM). REST API používá paměť JVM ke zpracování každého požadavku a ukázalo se, že ne všechna paměť se uvolní po dotazu náročném na prostředky. Zvýšení využití paměti JVM může nakonec vést k vypršení časového limitu dalších požadavků rozhraní REST API méně náročných na prostředky.
Risoluzione
Nepoužívejte k načtení informací ze serveru NetWorker požadavky náročné na zdroje. Například "v3/global/backups" nebo "v3/global/clients/CLIENT_NUMBER/backups" s definovaným časovým rozsahem lze použít místo použití globálního "v3/global/backups" pro načtení všech záloh.
Můžete například omezit výsledky pro saveTime mezi libovolným zadaným časovým rozsahem. Příklad dotazu na úlohy, které se dokončily během posledních 24 hodin:
.. Příklad /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"]
Pokud vyprší časový limit požadavků rozhraní REST API méně náročných na prostředky, mohou být služby serveru NetWorker restartovány, aby se uvolnilo stávající využití paměti JVM.