REST API NetWorker: Запити HTTP GET періодично виходять за межами часу

Summary: Інтерфейс програми NetWorker representational state transfer (REST) використовується для запиту інформації (HTTP GET) від сервера NetWorker у цьому середовищі. Запити REST API періодично виходять на тайм-аут, а restapi.log показує повідомлення про помилку сервера через тайм-аут сокета. ...

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 Representational State Transfer (REST) використовується для запиту інформації (HTTP GET) від сервера NetWorker у цьому середовищі. Запити REST API періодично виходять на тайм-аут, а restapi.log показує повідомлення про помилку сервера через тайм-аут сокета.  

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]

Команда curl до REST API NetWorker Server показує:  

[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 викликає "v3/global/backups", "v3/global/jobs", або "v3/global/volumes" самі по собі є ресурсомісткими запитами і можуть спричинити тайм-аут запиту у більших середовищах.  

ПРИМІТКА. Ця проблема не обмежується лише вказаними кінцевими точками REST API. Вона може виникати на будь-якій великій глобальній кінцевій точці, і спостереження можуть відрізнятися залежно від сервера.

Сервіси REST API NetWorker розміщені на контейнері Apache Tomcat Java servlet, який запускається на віртуальній машині Java (JVM). API REST використовує пам'ять JVM для обробки кожного запиту, і було показано, що не вся пам'ять звільняється після ресурсомісткого запиту. Збільшення використання пам'яті JVM може зрештою призвести до інших менш ресурсомістких запитів REST API на тайм-аут.  

Resolution

Уникайте використання ресурсомістких запитів для отримання інформації з сервера NetWorker. Наприклад, "v3/global/backups" або "v3/global/clients/CLIENT_NUMBER/backups" з визначеним часовим діапазоном можна використовувати замість використання глобального "v3/global/backups" щоб забрати всі резервні копії.

Наприклад, обмежте результати для saveTime між будь-яким заданим часовим діапазоном. Приклад запиту для завдань, виконаних протягом останніх 24 годин:
 

../global/backups Приклад:

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"]
ПРИМІТКА. Відповідно змініть YYYY-MM-DDTHH:mm:SS у часах START і END. Ці приклади наведені виключно для демонстрації. Для повернення потрібних даних можуть знадобитися додаткові специфікації запитів REST API або функції фільтра. Додаткова інформація та приклади доступні в документації REST API: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

../global/volumes Приклад:

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

Дивіться Посібник розробника REST API щодо викликів API NetWorker, «фільтр списку запитів» (q) та «фільтр списку полів» (fl) налаштування
.Відлагодження REST API визначено так: NetWorker: Як увімкнути налагодження

REST APIАльтернативно, можна застосувати наступне тестування:

Використовуйте наступні опції в команді REST API:
 

Опція Мета
--max-time 3600 Встановлює жорсткий ліміт у 3600 секунд (1 година) для всього перенесення (DNS, connect, TLS, запит і тіло відповіді). Якщо вся операція не завершена протягом 1 години, закручування зупиняється через помилку тайм-ауту.
--connect-timeout 60 Обмежує час встановлення TCP/TLS-з'єднання 60 секундами. Якщо curl не вдається зачепити протягом 60 секунд, спроба не вдається. З увімкненим --retry він може спробувати знову (за умови наведених нижче правил повтору). Це значення можна змінити на власний розсуд. 
--retry 3 Інструкція керлу повторювати до трьох разів при тимчасових невдачах. Це значення можна змінити на власний розсуд. 
Типові тригери повторної спроби:
  • Проблеми на рівні мережі (приклад: Тайм-аути з'єднання, проблеми з DNS, невдачі під час TLS Handshake).
  • HTTP 5xx Помилки сервера (приклад: 500, 502, 503, 504).
--retry-delay 5 Встановлює фіксований час очікування у 5 секунд між спробами повтору. Після тимчасового невдачі керл чекає 5 секунд перед наступною спробою. Це значення можна змінити на власний розсуд. 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (За бажанням.) Це потрібно лише тоді, коли хост NetWorker, який використовується для обробки запитів на вход, відокремлений від сервера NetWorker у кінцевій точці REST API. Див.:
NetWorker REST API: Як використовувати віддалений сервер AUTHC при обробці запитів 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
ПРИМІТКА. -Depth 20 є параметром для PowerShell ConvertTo-Json командир. Він контролює, скільки рівнів вкладених об'єктів і масивів включено, коли PowerShell серіалізує ваші дані в JSON. Кількість вкладених об'єктів (якщо взагалі є) може змінюватися залежно від кінцевої точки REST API та потенційного «фільтра списку запитів» (q) або «фільтр списку полів» (fl) використані параметри. 20 має бути більш ніж достатньо для викликів REST API NetWorker.
Приклад:
Приклад команди curl
Наведений вище приклад створив volumes.json файл у каталозі, з якого curl.exe була втечена. Вміст файлу включає корисне навантаження REST API:
Вихід 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

Приклад (без -v Для стислості):

[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

У цьому прикладі файл "volumes.jsonбула створена в тому ж каталозі, з якого запускалася команда.
Різні інструменти можуть використовуватися для правильного розбору форматування json, але інструменти можуть відрізнятися залежно від ОС та встановленого програмного забезпечення.

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