NetWorker REST API: HTTP GET-begäranden överskrider ibland tidsgränsen

Summary: API:et (Representational State Transfer) för NetWorker-programgränssnittet (Representational State Transfer) används för att begära information (HTTP GET) från en NetWorker-server i miljön. REST API-frågorna överskrider tillfälligt tidsgränsen och restapi.log visar ett internt serverfelmeddelande på grund av en socket-timeout. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

API:et (NetWorker Representational State Transfer) används för att begära information (HTTP GET) från en NetWorker-server i miljön. REST API-frågorna överskrider tillfälligt tidsgränsen och restapi.log visar ett internt serverfelmeddelande på grund av en socket-timeout.  

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]

Ett curl-kommando till NetWorker-serverns REST API visar:  

[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-anropen "v3/global/backups", "v3/global/jobs" eller "v3/global/volumes" i sig är resurskrävande frågor och kan leda till att begäran överskrider tidsgränsen i större miljöer.  

Obs! Det här problemet är inte begränsat till de angivna REST API-slutpunkterna. Det kan inträffa på alla stora globala slutpunkter och observationerna kan variera beroende på server.

NetWorker REST API-tjänsterna finns på en Apache Tomcat Java-servletbehållare som körs på en virtuell Java-maskin (JVM). REST-API:et använder JVM-minne för att bearbeta varje begäran, och det har visat sig att inte allt minne släpps efter en resursintensiv fråga. Ökningen av JVM-minnesanvändningen kan så småningom leda till att andra mindre resurskrävande REST API-begäranden överskrider tidsgränsen.  

Resolution

Undvik att använda resursintensiva begäranden för att hämta information från NetWorker-servern. Till exempel "v3/global/backups" eller "v3/global/clients/CLIENT_NUMBER/backups" med ett definierat tidsintervall kan användas i stället för att använda den globala "v3/global/backups" för att hämta alla säkerhetskopior.

Du kan till exempel begränsa resultatet för saveTime mellan ett angivet tidsintervall. Ett exempel på en fråga för jobb som har slutförts under de senaste 24 timmarna:
 

../global/backups exempel:

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"]
Obs! Ändra ÅÅÅÅ-MM-DDTHH:mm:SS i START- och SLUT-tiderna i enlighet med detta. De här exemplen tillhandahålls endast i demonstrationssyfte. Ytterligare REST API-frågespecifikationer eller filterfunktioner kan krävas för att returnera önskade data. Mer information och exempel finns i REST API-dokumentationen: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

../global/volumes exempel:

https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/volumes?q=type:"MEDIA_TYPE"&fl=location,name,mode,pool,written
https://nsr.amer.lan:9090/nwrestapi/v3/global/volumes?q=type:"Data Domain"&fl=location,name,mode,pool,written

 

Additional Information

Se utvecklarhandboken för REST API angående NetWorker API-anrop, "frågelistfilter" (q) och "fältlistefilter" (fl) inställningar.
REST API-felsökning definieras i: NetWorker: Så här aktiverar du REST API-felsökning

Alternativt kan följande testning användas:

Använd följande alternativ i REST API-kommandot:
 

Alternativ Syfte
--max-time 3600 Anger ett hårt tak på 3600 sekunder (1 timme) för hela överföringen (DNS, anslutning, TLS, begäran och svarstext). Om hela åtgärden inte har slutförts inom 1 timme stoppas curl med ett timeout-fel.
--connect-timeout 60 Begränsar den tid som tillåts för att upprätta TCP/TLS-anslutningen till 60 sekunder. Om curl inte kan ansluta inom 60 sekunder misslyckas det försöket. Med --retry aktiverat kan den sedan försöka igen (med förbehåll för nedanstående regler för återförsök). Det här värdet kan ändras efter eget gottfinnande. 
--retry 3 Instruerar curl att försöka igen upp till tre gånger vid tillfälliga fel. Det här värdet kan ändras efter eget gottfinnande. 
Vanliga utlösare för återförsök:
  • Problem på nätverksnivå (exempel: Tidsgränser för anslutning, DNS-problem, TLS-handskakningsfel).
  • HTTP 5xx Serverfel (exempel: 500, 502, 503, 504).
--retry-delay 5 Ställer in en fast väntetid på 5 sekunder mellan nya försök. Efter ett tillfälligt fel väntar curl 5 sekunder innan nästa försök. Det här värdet kan ändras efter eget gottfinnande. 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (Valfritt.) Detta krävs endast om NetWorker-värden som används för att bearbeta inloggningsbegäranden är separat från NetWorker-servern i REST API-slutpunkten. Se:
NetWorker REST API: Så här använder du en fjärransluten AUTHC-server när du bearbetar RESTAPI-begäranden

Windows Powershell:

curl.exe -k -v --compressed `
  --max-time 3600 `
  --connect-timeout 60 `
  --retry 3 `
  --retry-delay 5 `
  -u NETWORKER_USERNAME:'PASSWORD' `
  -H "Accept: application/json" `
  "https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/volumes/ENDPOINT" `
| ConvertFrom-Json `
| ConvertTo-Json -Depth 20 `
| Out-File -Encoding UTF8 OUTPUT_FILE_NAME
Obs! -Depth 20 är en parameter för PowerShell ConvertTo-Json Cmdlet. Den styr hur många nivåer av kapslade objekt och matriser som ingår när PowerShell serialiserar dina data till JSON. Antalet kapslade objekt (om det finns några alls) kan variera beroende på vilken REST API-slutpunkt som används och eventuella "frågelistfilter" (q) eller "fältlistefilter" (fl) parametrar som används. 20 bör vara mer än tillräckligt för NetWorker REST API-anrop.
Exempel:
Exempel på curl-kommando
I exemplet ovan skapades volumes.json filen i den katalog från vilken curl.exe kördes. Innehållet i filen innehåller REST API-nyttolasten:
REST API-utdata

Linux:

curl -k -v --compressed \
  --max-time 3600 \
  --connect-timeout 60 \
  --retry 3 \
  --retry-all-errors \
  --retry-delay 5 \
  -u NETWORKER_USERNAME:'PASSWORD' \
  -H "Accept: application/json" \
  "https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/volumes/ENDPOINT" \
  -o volumes.json

Exempel (utan -v för korthet):

[root@nsr ~]# curl -k --compressed \
  --max-time 3600 \
  --connect-timeout 60 \
  --retry 3 \
  --retry-all-errors \
  --retry-delay 5 \
  -u Administrator:'!Password1' \
  -H "Accept: application/json" \
  "https://nsr.amer.lan:9090/nwrestapi/v3/global/volumes?q=type%3A%22Data%20Domain%22&fl=location,name,mode,pool,written" \
  -o volumes.json
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   908    0   908    0     0  22700      0 --:--:-- --:--:-- --:--:-- 22146

I det här exemplet visas filen "volumes.json" skapades i samma katalog som kommandot kördes från.
Olika verktyg kan användas för att tolka json-formateringen korrekt, de verktyg som används kan variera beroende på vilket operativsystem och vilken programvara som är installerad.

[root@nsr ~]# cat volumes.json | python -m json.tool
{
    "count": 6,
    "volumes": [
        {
            "location": "ddve01.amer.lan",
            "mode": "Appendable",
            "name": "nsr.amer.lan.dddefault.001",
            "pool": "Data Domain Default",
            "written": {
                "unit": "KB",
                "value": 429
            }
        },
        {
            "location": "ddve01.amer.lan",
            "mode": "Appendable",
            "name": "nsr.amer.lan.dddefault.002",
            "pool": "Data Domain Default",
            "written": {
                "unit": "KB",
                "value": 25917027
            }
        },
        {
            "location": "ddve01.amer.lan",
            "mode": "Appendable",
            "name": "VMBackupPool.001",
            "pool": "VMBackupPool",
            "written": {
                "unit": "KB",
                "value": 209818962
            }
        },
        {
            "location": "ddve01.amer.lan",
            "mode": "Appendable",
            "name": "VMBackupPool.002",
            "pool": "VMBackupPool",
            "written": {
                "unit": "KB",
                "value": 2308309500
            }
        },
        {
            "location": "ddve02.amer.lan",
            "mode": "Appendable",
            "name": "nsr.amer.lan_c.dddefault.001",
            "pool": "Data Domain Default Clone",
            "written": {
                "unit": "KB",
                "value": 36752
            }
        },
        {
            "location": "ddve02.amer.lan",
            "mode": "Appendable",
            "name": "VMClonePool.001",
            "pool": "VMClonePool",
            "written": {
                "unit": "KB",
                "value": 0
            }
        }
    ]
}

Products

NetWorker
Article Properties
Article Number: 000172472
Article Type: Solution
Last Modified: 01 Jan 2026
Version:  10
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.