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

Résumé: 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. ...

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

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.  

Résolution

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

 

Informations supplémentaires

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
            }
        }
    ]
}

Produits

NetWorker
Propriétés de l’article
Numéro d’article: 000172472
Type d’article: Solution
Dernière modification: 01 janv. 2026
Version:  10
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.