NetWorker REST API: HTTP GET-forespørsler blir periodevis tidsavbrutt

Summary: API-en (NetWorker representational state transfer) (REST) brukes til å be om informasjon (HTTP GET) fra en NetWorker-server i miljøet. REST-API-spørringer blir periodevis tidsavbrutt, og restapi.log viser en intern serverfeilmelding på grunn av tidsavbrudd for socket. ...

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) (REST) brukes til å be om informasjon (HTTP GET) fra en NetWorker-server i miljøet. REST-API-spørringer blir periodevis tidsavbrutt, og restapi.log viser en intern serverfeilmelding på grunn av tidsavbrudd for socket.  

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 REST API-en for NetWorker-serveren 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-kallene "v3/global/backups", "v3/global/jobs", eller "v3/global/volumes" alene er ressurskrevende spørringer og kan føre til at forespørselen blir tidsavbrutt i større miljøer.  

MERK: Dette problemet er ikke begrenset til de oppførte REST API-endepunktene. Det kan forekomme på alle store globale endepunkter, og observasjonene kan variere fra server til server.

NetWorker REST API-tjenestene driftes i en Apache Tomcat Java-servletbeholder som kjøres på en Java Virtual Machine (JVM). REST API bruker JVM-minne til å behandle hver forespørsel, og det har vist seg at ikke alt minnet frigjøres etter en ressurskrevende spørring. Økningen i JVM-minneutnyttelse kan til slutt føre til andre mindre ressurskrevende REST API-forespørsler om tidsavbrudd.  

Resolution

Unngå å bruke ressurskrevende forespørsler til å hente informasjon fra NetWorker-serveren. For eksempel "v3/global/backups" eller "v3/global/clients/CLIENT_NUMBER/backups" med et definert tidsintervall kan brukes i stedet for å bruke den globale "v3/global/backups" for å hente alle sikkerhetskopiene.

Du kan for eksempel begrense resultatene for saveTime mellom et angitt tidsintervall. Et eksempel på en spørring etter jobber som ble fullført i løpet av de siste 24 timene:
 

../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"]
MERK: Endre ÅÅÅÅ-MM-DDT tt:mm:SS i START- og SLUTTIDSPUNKT tilsvarende. Disse eksemplene er kun ment som demonstrasjonsformål. Ytterligere REST API-spørringsspesifikasjoner eller filterfunksjoner kan være nødvendig for å returnere de ønskede dataene. Ytterligere informasjon og eksempler er tilgjengelige i dokumentasjonen for 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 utviklerveiledningen for REST API angående NetWorker API-kall, "spørringslistefilter" (q) og "Feltlistefilter" (fl) innstillinger.
REST API-feilsøking er definert i: NetWorker: Slik aktiverer du feilsøking

i REST APIAlternativt kan følgende testing brukes:

Bruk følgende alternativer i REST API-kommandoen:
 

Alternativ Purpose
--max-time 3600 Angir en hard grense på 3600 sekunder (1 time) for hele overføringen (DNS, tilkobling, TLS, forespørsel og svartekst). Hvis hele operasjonen ikke er ferdig innen 1 time, stopper curl med en tidsavbruddsfeil.
--connect-timeout 60 Begrenser tiden det tar å opprette TCP/TLS-tilkoblingen, til 60 sekunder. Hvis curl ikke kan koble til innen 60 sekunder, mislykkes det forsøket. Når --retry er aktivert, kan den prøve på nytt (underlagt reglene nedenfor for å prøve på nytt). Denne verdien kan endres etter eget skjønn. 
--retry 3 Gir beskjed om å prøve på nytt opptil tre ganger ved forbigående feil. Denne verdien kan endres etter eget skjønn. 
Typiske utløsere for nye forsøk:
  • Problemer på nettverksnivå (eksempel: Tidsavbrudd for tilkobling, DNS-problemer, TLS-håndtrykksfeil).
  • HTTP 5xx Serverfeil (eksempel: 500, 502, 503, 504).
--retry-delay 5 Angir en fast ventetid på 5 sekunder mellom nye forsøk. Etter en forbigående feil venter curl 5 sekunder før neste forsøk. Denne verdien kan endres etter eget skjønn. 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (Valgfritt.) Dette er bare nødvendig hvis NetWorker-verten som brukes til å behandle påloggingsforespørsler, er atskilt fra NetWorker-serveren i REST API-endepunktet. Se:
NetWorker REST API: Slik bruker du en ekstern AUTC-server når du behandler RESTAPI-forespørsler

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
MERK: -Depth 20 er en parameter for PowerShells ConvertTo-Json Cmdleten. Den kontrollerer hvor mange nivåer av nestede objekter og matriser som inkluderes når PowerShell serialiserer dataene til JSON. Antallet nestede objekter (hvis noen i det hele tatt) kan variere avhengig av REST API-endepunktet som brukes, og eventuelle potensielle "spørringslistefilter" (q) eller "feltlistefilter" (fl) parametere som brukes. 20 skal være mer enn tilstrekkelig for NetWorker REST API-kall.
Eksempel:
Eksempel på kommando for krøll
Eksemplet ovenfor opprettet volumes.json fil i katalogen som curl.exe ble kjørt. Innholdet i filen inkluderer REST API-nyttelasten:
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

Eksempel (uten -v for korthets 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 eksemplet vises filen "volumes.json" ble opprettet i samme katalog som kommandoen ble kjørt fra.
Ulike verktøy kan brukes til å analysere json-formateringen riktig, verktøyene som brukes kan variere avhengig av operativsystemet og programvaren som er installert.

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