NetWorker REST-API: HTTP GET-anmodninger får periodisk timeout

Summary: NetWorker REST-applikationsprogramgrænsefladen (REST) bruges til at anmode om oplysninger (HTTP GET) fra en NetWorker-server i miljøet. REST API-forespørgslerne får periodisk timeout, og restapi.log viser en intern serverfejlmeddelelse på grund af 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

NetWorker REST-applikationsprogramgrænsefladen (REST) bruges til at anmode om oplysninger (HTTP GET) fra en NetWorker-server i miljøet. REST API-forespørgslerne får periodisk timeout, og restapi.log viser en intern serverfejlmeddelelse på grund af 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]

En curl-kommando til NetWorker Server REST API viser:  

[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 kalder "v3/global/backups", "v3/global/jobs", eller "v3/global/volumes" alene er ressourcekrævende forespørgsler og kan medføre, at anmodningen timeout i større miljøer.  

BEMÆRK: Dette problem er ikke begrænset til de anførte REST API-slutpunkter. Det kan forekomme på ethvert stort globalt slutpunkt, og observationerne kan variere fra server til server.

NetWorker REST API-tjenesterne hostes på en Apache Tomcat Java servlet-beholder, der køres på en Java Virtual Machine (JVM). REST API bruger JVM-hukommelse til at behandle alle anmodninger, og det har vist sig, at ikke al hukommelsen frigives efter en ressourceintensiv forespørgsel. Stigningen i JVM-hukommelsesudnyttelse kan i sidste ende føre til andre mindre ressourceintensive REST API-anmodninger om timeout.  

Resolution

Undgå at bruge ressourceintensive anmodninger om at hente oplysninger fra NetWorker-serveren. For eksempel "v3/global/backups" eller "v3/global/clients/CLIENT_NUMBER/backups" med et defineret tidsinterval kan bruges i stedet for at bruge den globale "v3/global/backups" for at hente alle sikkerhedskopierne.

Du kan f.eks. begrænse resultaterne for saveTime mellem et angivet tidsinterval. Et eksempel på en forespørgsel om job, der er fuldført inden for de seneste 24 timer:
 

../global/backups eksempel:

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"]
BEMÆRK: Rediger ÅÅÅÅ-MM-DDTHH:mm:SS i START- og SLUTTIDERNE i overensstemmelse hermed. Disse eksempler er kun til demonstrationsformål. Det kan være nødvendigt med yderligere REST API-forespørgselsspecifikationer eller filterfunktioner for at returnere de ønskede data. Du kan finde yderligere oplysninger og eksempler i dokumentationen til REST API: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

../global/volumes eksempel:

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 udviklervejledningen til REST API vedrørende NetWorker API-kald, "forespørgselslistefilter" (q) og "feltlistefilter" (fl) indstillinger.
REST API-fejlfinding er defineret i: NetWorker: Sådan aktiveres REST API-fejlfinding

Alternativt kan følgende test bruges:

Brug følgende indstillinger i REST API-kommandoen:
 

MULIGHEDER Formål
--max-time 3600 Indstiller et hårdt loft på 3600 sekunder (1 time) for hele overførslen (DNS, connect, TLS, request og response body). Hvis hele operationen ikke er færdig inden for 1 time, stopper krøllen med en timeout-fejl.
--connect-timeout 60 Begrænser den tid, det tager at oprette TCP/TLS-forbindelsen, til 60 sekunder. Hvis curl ikke kan oprette forbindelse inden for 60 sekunder, mislykkes det forsøg. Når --try er aktiveret igen, kan den prøve igen (underlagt nedenstående regler for genforsøg). Denne værdi kan ændres efter eget skøn. 
--retry 3 Instruerer curl i at prøve igen op til tre gange ved forbigående fejl. Denne værdi kan ændres efter eget skøn. 
Typiske udløsere til genforsøg:
  • Problemer på netværksniveau (eksempel: Timeout for forbindelse, DNS-problemer, TLS-håndtryksfejl).
  • HTTP 5xx Serverfejl (eksempel: 500, 502, 503, 504).
-retry-delay 5 Indstiller en fast ventetid på 5 sekunder mellem gentagne forsøg. Efter en forbigående fejl venter curl 5 sekunder før næste forsøg. Denne værdi kan ændres efter eget skøn. 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (Valgfrit.) Dette kræves kun, hvis den NetWorker-vært, der bruges til at behandle loginanmodninger, er adskilt fra NetWorker-serveren i REST API-slutpunktet. Se:
NetWorker REST API: Sådan bruges en ekstern AUTHC-server, når du behandler RESTAPI-anmodninger

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
BEMÆRK: -Depth 20 er en parameter for PowerShells ConvertTo-Json Cmdlet. Den styrer, hvor mange niveauer af indlejrede objekter og arrays der medtages, når PowerShell serialiserer dine data til JSON. Antallet af indlejrede objekter (hvis der overhovedet er nogen) kan variere afhængigt af det anvendte REST API-slutpunkt og et eventuelt "forespørgselslistefilter" (q) eller "feltlistefilter" (fl) anvendte parametre. 20 bør være mere end tilstrækkeligt til NetWorker REST API-kald.
Eksempel:
Eksempel på curl-kommando
Ovenstående eksempel oprettede volumes.json fil i den mappe, hvorfra curl.exe blev kørt. Indholdet af filen indeholder REST API-data:
REST API-output

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

Eksempel (uden -v For korthedens skyld):

[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 dette eksempel vil filen "volumes.json" blev oprettet i den samme mappe, hvorfra kommandoen blev kørt.
Forskellige værktøjer kan bruges til at analysere json-formateringen korrekt, de anvendte værktøjer kan variere afhængigt af det installerede operativsystem og software.

[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.