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ørgsler giver 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 API bruges til at anmode om oplysninger (HTTP GET) fra en NetWorker-server i miljøet. REST API-forespørgslerne giver 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]

A curl Kommandoen 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 ses, 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 en hård hætte på 3600 sekunder (1 time) for hele overførslen (DNS, connect, TLS, anmodning og svartekst) - Hvis hele operationen ikke er færdig inden for 1 time, curl Stopper med en timeout-fejl.
--connect-timeout 60 Begrænser den tid, det tager at oprette TCP/TLS-forbindelsen, til 60 sekunder. Hvis ikonet curl kan ikke oprette forbindelse inden for 60 sekunder, det mislykkes dette forsøg. Med --retry aktiveret, kan den derefter prøve igen (underlagt nedenstående regler for genforsøg). Denne værdi kan ændres efter eget skøn. 
--retry 3 Pålægger curl Sådan prøver du igen op til tre gange ved midlertidige 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 forsøg på at prøve igen - Efter en forbigående fejl, curl Venter 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: 30 أبريل 2026
Version:  12
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.