NetWorker REST API: HTTP GETリクエストが断続的にタイムアウトする

Résumé: NetWorker Representational State Transfer (REST)アプリケーション プログラム インターフェイス(API)は、環境内のNetWorkerサーバからの情報の要求(HTTP GET)に使用されます。REST APIクエリーが断続的にタイムアウトし、ソケット タイムアウトによる内部サーバー エラー メッセージがrestapi.logに表示されます。 ...

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

NetWorker REST(Representational State Transfer)アプリケーション プログラム インターフェイス(API)は、環境内のNetWorkerサーバーからの情報の要求(HTTP GET)に使用されます。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]

NetWorkerサーバーREST APIへのcurlコマンドでは、次のように表示されます。  

[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エンドポイントに限定されません。これは、任意の大規模なグローバル エンドポイントで発生する可能性があり、観察結果はサーバーによって異なる場合があります。

NetWorker REST APIサービスは、JVM(Java仮想マシン)上で実行されるApache Tomcat Javaサーブレット コンテナでホストされます。REST APIは、JVMメモリーを使用してすべてのリクエストを処理しますが、リソースを大量に消費するクエリーの後に、一部のメモリーが解放されるわけではないことが示されています。JVMメモリー使用率が増加すると、最終的に、リソース消費の少ない他のREST API要求がタイムアウトする可能性があります。  

Résolution

リソース負荷の高い要求を使用して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"]
メモ: 適宜、START時刻とEND時刻の YYYY-MM-DDTHH:mm:SSを変更します。これらの例は、デモンストレーションのみを目的としています。必要なデータを返すには、追加の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

 

Informations supplémentaires

NetWorker API コールの「 クエリー リスト フィルター」(q)と「フィールドリストフィルター」(fl)設定.
REST APIデバッグは、以下で定義されています。NetWorker:REST APIデバッグを有効にする方法

または、次のテストを使用できます。

REST APIコマンドで次のオプションを使用します。
 

オプション 目的
--max-time 3600 転送全体(DNS、接続、TLS、要求、応答本文)に対して3600秒(1時間)のハード キャップを設定します。すべての操作が1時間以内に完了しない場合、curlはタイムアウト エラーで停止します。
--connect-timeout 60 TCP/TLS接続の確立に許可される時間を60秒に制限します。curlが60秒以内に接続できない場合、その試行は失敗します。--retry を有効にすると、再試行できます (以下の再試行ルールに従います)。この値は、ユーザーの裁量に応じて変更できます。 
--retry 3 一時的な障害に対して最大3回再試行するようcurlに指示します。この値は、ユーザーの裁量に応じて変更できます。
一般的な再試行トリガー:
  • ネットワーク レベルの問題(例: 接続タイムアウト、DNSの問題、TLSハンドシェイクの失敗)。
  • HTTP 5xx サーバー エラー (例: 500502503504)を使用するシステムで一般的に行われる、繰り返しのプログラムおよび消去サイクルによって劣化しやすい傾向があります。
--retry-delay 5 再試行の間隔を 5 秒の固定待機時間に設定します。一時的な障害の後、curl は次の試行まで 5 秒間待機します。この値は、ユーザーの裁量に応じて変更できます。 
-H "X-NW-AUTHC-BASE-URL:REMOTE_AUTHC_SERVER_ADDRESS:9090" (オプション)これが必要なのは、ログイン要求の処理に使用されるNetWorkerホストが、REST APIエンドポイントのNetWorkerサーバーから分離されている場合のみです。参照:
NetWorker REST API: RESTAPI要求の処理時にリモートAUTHCサーバーを使用する方法

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 cmdletを使用して有効化します。これは、PowerShell がデータを JSON にシリアル化するときに含まれる入れ子になったオブジェクトと配列のレベル数を制御します。ネストされたオブジェクトの数(存在する場合)は、使用するREST APIエンドポイントと潜在的な「クエリリストフィルター」(q)または「フィールドリストフィルター」(fl)パラメータを使用します。NetWorker REST APIコールの場合は、20値で十分です。
Example:
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フォーマットを正しく解析するには、さまざまなツールを使用できます。使用するツールは、インストールされているOSやソフトウェアによって異なります。

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

Produits

NetWorker
Propriétés de l’article
Numéro d’article: 000172472
Type d’article: Solution
Dernière modification: 01 janv. 2026
Version:  10
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.