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

Rozhraní NetWorker REST API 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 zobrazuje 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]

A curl do rozhraní REST API serveru NetWorker se zobrazením:

[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 je vidět, ž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.

Omezte například 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 Zastaví se 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. V případě, že curl Pokud se počítač nemůže připojit během 60 sekund, tento pokus selže. S --retry povolit, 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 Pokyn curl Opakování až třikrát při přechodných selháních – tuto hodnotu je možné změnit podle vašeho uvážení. 
Typické triggery opakování:
  • Problémy na úrovni sítě (například: Vypršení časových limitů připojení, problémy se systémem DNS, selhání metody handshake protokolu TLS)
  • HTTP 5xx Chyby serveru (příklad: 500, 502, 503, 504)
--retry-delay 5 Nastaví pevné čekání 5 sekund mezi pokusy o opakování – po přechodném selhání curl Čeká 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:
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: 30 أبريل 2026
Version:  12
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.