NetWorker REST API: HTTP GET istekleri zaman zaman aşımına uğruyor
Riepilogo: NetWorker temsili durum aktarımı (REST) uygulama programı arayüzü (API), ortamdaki bir NetWorker Sunucusundan bilgi istemek (HTTP GET) için kullanılır. REST API sorguları zaman zaman zaman zaman aşımına uğruyor ve restapi.log, Yuva Zaman Aşımı nedeniyle dahili bir sunucu hata mesajı gösteriyor. ...
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]
NetWorker Sunucusu REST API'sinde curl komutu şunları gösterir:
[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, "v3/global/backups" ve "v3/global/jobs" tek başına yoğun kaynak kullanan bir sorgudur ve isteğin daha büyük ortamlarda zaman aşımına uğramasına neden olabilir.
NetWorker REST API hizmetleri, Java Sanal Makinesi'nde (JVM) çalıştırılan bir Apache Tomcat Java servlet kapsayıcısında barındırılır. REST API, her isteği işlemek için JVM belleğini kullanır ve yoğun kaynak kullanan bir sorgudan sonra belleğin tamamının serbest bırakılmadığı gösterilmiştir. JVM bellek kullanımındaki artış, daha az kaynak kullanan diğer REST API isteklerinin zaman aşımına uğramasına neden olabilir.
Risoluzione
NetWorker Sunucusundan bilgi almak için yoğun kaynak kullanımlı istekler kullanmaktan kaçının. Örneğin, "v3/global/backups" veya "v3/global/clients/CLIENT_NUMBER/backups" belirli bir zaman aralığı ile global kullanmak yerine kullanılabilir "v3/global/backups" tüm yedekleri almak için.
Örneğin, saveTime sonuçlarını belirtilen bir zaman aralığı arasında kısıtlayın. Son 24 saat içinde tamamlanan işler için bir sorgu örneği:
.. /global/backups örneği:
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"]
Daha az kaynak kullanan REST API istekleri zaman aşımına uğruyorsa mevcut JVM bellek kullanımını serbest bırakmak için NetWorker Sunucusu hizmetleri yeniden başlatılabilir.