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

Summary: 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. ...

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

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

Cause

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.  

Resolution

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

 

Additional Information

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

Products

NetWorker
Article Properties
Article Number: 000172472
Article Type: Solution
Last Modified: 01 يناير 2026
Version:  10
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.