NetWorker REST API: HTTP GET istekleri zaman zaman aşımına uğruyor

Summary: NetWorker temsili durum aktarımı (REST) uygulama programı arayüzü (API), ortamdaki bir NetWorker Sunucusundan bilgi istemek (HTTP GET) için kullanılır. REST API sorguları zaman zaman zaman zaman aşımına uğruyor ve restapi.log, Yuva Zaman Aşımı nedeniyle dahili bir sunucu hata mesajı gösteriyor. ...

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 Temsili Durum Aktarımı (REST) uygulama programı arayüzü (API), ortamdaki bir NetWorker Sunucusundan bilgi (HTTP GET) istemek için kullanılır. REST API sorguları zaman zaman zaman zaman aşımına uğruyor ve restapi.log, Yuva Zaman Aşımı nedeniyle dahili bir sunucu hata mesajı gösteriyor.  

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]

NetWorker Sunucusu REST API'sinde curl komutu şunları gösterir:  

[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", veya "v3/global/volumes" tek başına yoğun kaynak kullanan sorgulardır ve isteğin daha büyük ortamlarda zaman aşımına uğramasına neden olabilir.  

NOT: Bu sorun, listelenen REST API uç noktalarıyla sınırlı değildir. Herhangi bir büyük genel uç noktada oluşabilir ve gözlemler sunucuya göre farklılık gösterebilir.

NetWorker REST API hizmetleri, Java Sanal Makinesi'nde (JVM) çalıştırılan bir Apache Tomcat Java servlet kapsayıcısında barındırılır. REST API, her isteği işlemek için JVM belleğini kullanır ve yoğun kaynak kullanan bir sorgudan sonra belleğin tamamının serbest bırakılmadığı gösterilmiştir. JVM bellek kullanımındaki artış, daha az kaynak kullanan diğer REST API isteklerinin zaman aşımına uğramasına neden olabilir.  

Resolution

NetWorker Sunucusundan bilgi almak için yoğun kaynak kullanımlı istekler kullanmaktan kaçının. Örneğin, "v3/global/backups" veya "v3/global/clients/CLIENT_NUMBER/backups" belirli bir zaman aralığı ile global kullanmak yerine kullanılabilir "v3/global/backups" tüm yedekleri almak için.

Örneğin, saveTime sonuçlarını belirtilen bir zaman aralığı arasında kısıtlayın. Son 24 saat içinde tamamlanan işler için bir sorgu örneği:
 

../global/backups örnek:

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"]
NOT: BAŞLANGIÇ ve BİTİŞ zamanlarındaki YYYY-AA-GGTHH:aa:SS değerlerini uygun şekilde değiştirin. Bu örnekler yalnızca tanıtım amacıyla verilmiştir. İstenen verileri döndürmek için ek REST API sorgu belirtimleri veya filtre işlevleri gerekebilir. Daha fazla bilgi ve örnek REST API belgelerinde mevcuttur: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

../global/volumes örnek:

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

NetWorker API çağrıları ile ilgili REST API Geliştirici Kılavuzu'nda yer alan "query list filter" (q) ve "alan listesi filtresi" (fl) ayarlarını seçin.
REST API hata ayıklaması şurada tanımlanır: NetWorker: REST API Hata Ayıklamasını

EtkinleştirmeAlternatif olarak aşağıdaki testler kullanılabilir:

REST API komutunda aşağıdaki seçenekleri kullanın:
 

Seçenek Amaç
--max-time 3600 Aktarımın tamamı (DNS, bağlantı, TLS, istek ve yanıt gövdesi) için 3600 saniyelik (1 saat) bir sabit sınır ayarlar. Tüm işlem 1 saat içinde bitmezse, curl bir zaman aşımı hatası ile durur.
--connect-timeout 60 TCP/TLS bağlantısı kurmak için izin verilen süreyi 60 saniyeyle sınırlar. curl 60 saniye içinde bağlanamazsa, bu girişim başarısız olur. --retry etkinleştirildiğinde yeniden deneyebilir (aşağıdaki yeniden deneme kurallarına tabidir). Bu değer sizin takdirinize göre değiştirilebilir. 
--retry 3 curl'e geçici hatalarda en fazla üç kez yeniden denemesini söyler. Bu değer sizin takdirinize göre değiştirilebilir. 
Tipik yeniden deneme tetikleyicileri:
  • Ağ düzeyindeki sorunlar (örnek: Bağlantı zaman aşımları, DNS sorunları, TLS el sıkışma hataları).
  • HTTP 5xx Sunucu hataları (örnek: 500, 502, 503, 504).
--retry-delay 5 Yeniden deneme denemeleri arasında 5 saniyelik sabit bir bekleme süresi ayarlar. Geçici bir hatadan sonra, curl bir sonraki denemeden önce 5 saniye bekler. Bu değer sizin takdirinize göre değiştirilebilir. 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (İsteğe bağlı.) Bu yalnızca oturum açma isteklerini işlemek için kullanılan NetWorker ana bilgisayarı, REST API uç noktasındaki NetWorker sunucusundan ayrıysa gereklidir. Bkz.:
NetWorker REST API: RESTAPI isteklerini işlerken uzak bir AUTHC sunucusu nasıl kullanılır?

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
NOT: -Depth 20 , PowerShell'in ConvertTo-Json cmdlet'i kullanın. PowerShell, verilerinizi JSON'a seri hale getirdiğinde kaç düzeyde iç içe nesne ve dizinin dahil edileceğini denetler. İç içe geçmiş nesnelerin sayısı (varsa), kullanılan REST API uç noktasına ve olası "sorgu listesi filtresine" (q) veya "alan listesi filtresi" (fl) kullanılan parametreler. NetWorker REST API çağrıları için 20 fazlası yeterli olacaktır.
Örneğin:
curl komutu örneği
Yukarıdaki örnek, volumes.json dosyasının hangi dizinden alınacağı curl.exe çalıştırıldı. Dosyanın içeriği REST API yükünü içerir:
REST API çıktısı

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

Örnek (olmadan -v Kısalık için):

[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

Bu örnekte, dosya "volumes.json", komutun çalıştırıldığı dizinde oluşturuldu.
Json biçimlendirmesini doğru bir şekilde ayrıştırmak için farklı araçlar kullanılabilir, kullanılan araçlar işletim sistemine ve yüklü yazılıma bağlı olarak değişebilir.

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