NetWorker REST API: U požadavků HTTP GET občas dochází k vypršení časového limitu

Shrnutí: Rozhraní aplikačního programu (API) NetWorker Representational State Transfer (REST) se používá k vyžádání informací (HTTP GET) ze serveru NetWorker v prostředí. Dotazy rozhraní REST API občas vyprší a restapi.log zobrazí interní chybovou zprávu serveru z důvodu vypršení časového limitu soketu. ...

Tento článek se vztahuje na Tento článek se nevztahuje na Tento článek není vázán na žádný konkrétní produkt. V tomto článku nejsou uvedeny všechny verze produktu.

Příznaky

Aplikační programové rozhraní (API) NetWorker Representational State Transfer (REST) se používá k vyžádání informací (HTTP GET) ze serveru NetWorker v prostředí. Dotazy rozhraní REST API občas vyprší a restapi.log zobrazí interní chybovou zprávu serveru z důvodu vypršení časového limitu soketu.  

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]

Příkaz curl pro rozhraní REST API serveru NetWorker zobrazí:  

[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

Příčina

Rozhraní REST API volá "v3/global/backups", "v3/global/jobs", nebo "v3/global/volumes" jsou dotazy náročné na prostředky a můžou způsobit vypršení časového limitu požadavku ve větších prostředích.  

POZNÁMKA: Tento problém není omezen na uvedené koncové body rozhraní REST API. Může k němu dojít na jakémkoli velkém globálním koncovém bodě a pozorování se mohou lišit podle serveru.

Služby rozhraní NetWorker REST API jsou hostovány v kontejneru Apache Tomcat Java servlet, který je spuštěn na virtuálním počítači Java (JVM). REST API používá paměť JVM ke zpracování každého požadavku a ukázalo se, že ne všechna paměť se uvolní po dotazu náročném na prostředky. Zvýšení využití paměti JVM může nakonec vést k vypršení časového limitu dalších požadavků rozhraní REST API méně náročných na prostředky.  

Řešení

Nepoužívejte k načtení informací ze serveru NetWorker požadavky náročné na zdroje. Například "v3/global/backups" nebo "v3/global/clients/CLIENT_NUMBER/backups" s definovaným časovým rozsahem lze použít místo použití globálního "v3/global/backups" pro načtení všech záloh.

Můžete například omezit výsledky pro saveTime mezi libovolným zadaným časovým rozsahem. Příklad dotazu na úlohy, které se dokončily během posledních 24 hodin:
 

../global/backups Příklad:

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"]
POZNÁMKA: Upravte odpovídajícím způsobem hodnotu RRRR-MM-DDT HH:mm:SS v časech START a END. Tyto příklady slouží pouze pro demonstrační účely. K vrácení požadovaných dat mohou být vyžadovány další specifikace dotazů rozhraní REST API nebo funkce filtru. Další informace a příklady najdete v dokumentaci k rozhraní REST API: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

../global/volumes Příklad:

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

 

Další informace

Přečtěte si příručku pro vývojáře rozhraní REST API týkající se volání rozhraní NetWorker API "query list filter" (q) a "filtr seznamu polí" (fl) nastavení.
Ladění REST API je definováno v: NetWorker: Jak povolit ladění

REST APIAlternativně lze použít následující testování:

V příkazu REST API použijte následující možnosti:
 

Možnost Účel
--max-time 3600 Nastaví pevný limit 3600 sekund (1 hodina) pro celý přenos (DNS, připojení, TLS, text požadavku a odpovědi). Pokud se celá operace nedokončí do 1 hodiny, curl se zastaví s chybou vypršení časového limitu.
--connect-timeout 60 Omezuje dobu potřebnou k navázání připojení TCP/TLS na 60 sekund. Pokud se curl nemůže připojit do 60 sekund, tento pokus se nezdaří. Když je --retry povolená, může to zkusit znovu (v souladu s níže uvedenými pravidly opakování). Tuto hodnotu lze podle vašeho uvážení změnit. 
--retry 3 Instruuje curl, aby se při přechodných selháních opakoval až třikrát. Tuto hodnotu lze podle vašeho uvážení změnit. 
Typické triggery opakování:
  • Problémy na úrovni sítě (například: Vypršení časových limitů připojení, problémy DNS, selhání handshake protokolu TLS).
  • HTTP 5xx Chyby serveru (příklad: 500, 502, 503, 504).
--retry-delay 5 Nastaví pevné čekání 5 sekund mezi opakovanými pokusy. Po přechodném selhání curl počká 5 sekund před dalším pokusem. Tuto hodnotu lze podle vašeho uvážení změnit. 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (Volitelné.) To je vyžadováno pouze v případě, že je hostitel NetWorker, který se používá ke zpracování požadavků na přihlášení, oddělen od serveru NetWorker v koncovém bodě rozhraní REST API. Viz:
Rozhraní NetWorker REST API: Jak používat vzdálený server AUTHC při zpracování požadavků RESTAPI

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
POZNÁMKA: -Depth 20 je parametrem pro PowerShell ConvertTo-Json . Určuje, kolik úrovní vnořených objektů a polí je zahrnuto, když PowerShell serializuje data do formátu JSON. Počet vnořených objektů (pokud vůbec existuje) se může lišit v závislosti na použitém koncovém bodu rozhraní REST API a případném "filtru seznamu dotazů" (q) nebo "filtr seznamu polí" (fl) parametry. 20 by mělo být více než dostačující pro volání rozhraní NetWorker REST API.
Příklad:
Příklad příkazu curl
Výše uvedený příklad vytvořil volumes.json v adresáři, ze kterého curl.exe byl spuštěn. Obsah souboru zahrnuje datovou část rozhraní REST API:
Výstup rozhraní REST API

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

Příklad (bez -v pro stručnost):

[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

V tomto příkladu je soubor "volumes.json" byl vytvořen ve stejném adresáři, ze kterého byl příkaz spuštěn.
Ke správné analýze formátování json lze použít různé nástroje, použité nástroje se mohou lišit v závislosti na nainstalovaném operačním systému a softwaru.

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

Produkty

NetWorker
Vlastnosti článku
Číslo článku: 000172472
Typ článku: Solution
Poslední úprava: 01 Jan 2026
Verze:  10
Najděte odpovědi na své otázky od ostatních uživatelů společnosti Dell
Služby podpory
Zkontrolujte, zda se na vaše zařízení vztahují služby podpory.