NetWorker REST API: HTTP GET 요청이 간헐적으로 시간 초과됨
Summary: NetWorker REST(Representational State Transfer) API(Application Program Interface)는 환경의 NetWorker Server에서 정보(HTTP GET)를 요청하는 데 사용됩니다. REST API 쿼리가 간헐적으로 시간 초과되고 소켓 시간 초과로 인해 restapi.log에 내부 서버 오류 메시지가 표시됩니다. ...
Symptoms
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 Server REST API에 대한 curl 명령은 다음을 표시합니다.
[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
Cause
REST API가 "v3/global/backups" 및 "v3/global/jobs" 단독은 리소스를 많이 사용하는 쿼리이며 더 큰 환경에서는 요청 시간 초과가 발생할 수 있습니다.
NetWorker REST API 서비스는 JVM(Java Virtual Machine)에서 실행되는 Apache Tomcat Java 서블릿 컨테이너에서 호스팅됩니다. REST API는 JVM 메모리를 사용하여 모든 요청을 처리하며, 리소스를 많이 사용하는 쿼리 후에 모든 메모리가 해제되는 것은 아닌 것으로 나타났습니다. JVM 메모리 사용률이 증가하면 결국 리소스를 덜 사용하는 다른 REST API 요청이 시간 초과될 수 있습니다.
Resolution
리소스를 많이 사용하는 요청을 사용하여 NetWorker Server에서 정보를 검색하지 마십시오. 예를 들어, "v3/global/backups" 또는 "v3/global/clients/CLIENT_NUMBER/backups전역을 사용하는 대신 정의된 시간 범위와 함께 사용할 수 있습니다.v3/global/backups"를 클릭하여 모든 백업을 검색합니다.
예를 들어, saveTime에 대한 결과를 지정된 시간 범위 사이로 제한합니다. 지난 24시간 이내에 완료된 작업에 대한 쿼리의 예:
.. /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"]
리소스를 덜 사용하는 REST API 요청이 시간 초과되면 NetWorker Server 서비스를 재시작하여 기존 JVM 메모리 사용량을 해제할 수 있습니다.