NetWorker REST API: HTTP GETリクエストが断続的にタイムアウトする
Zusammenfassung: NetWorker Representational State Transfer (REST)アプリケーション プログラム インターフェイス(API)は、環境内のNetWorkerサーバからの情報の要求(HTTP GET)に使用されます。REST APIクエリーが断続的にタイムアウトし、ソケット タイムアウトによる内部サーバー エラー メッセージがrestapi.logに表示されます。 ...
Symptome
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
Ursache
REST APIは「v3/global/backups」と "v3/global/jobs" 単独のクエリはリソースを大量に消費するため、大規模な環境では要求がタイムアウトする可能性があります。
NetWorker REST APIサービスは、JVM(Java仮想マシン)上で実行されるApache Tomcat Javaサーブレット コンテナでホストされます。REST APIは、JVMメモリーを使用してすべてのリクエストを処理しますが、リソースを大量に消費するクエリーの後に、一部のメモリーが解放されるわけではないことが示されています。JVMメモリー使用率が増加すると、最終的に、リソース消費の少ない他のREST API要求がタイムアウトする可能性があります。
Lösung
リソース負荷の高い要求を使用して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"]
リソースを大量に消費しないREST APIリクエストがタイムアウトした場合は、NetWorkerサーバー サービスを再起動して、既存のJVMメモリー使用量を解放することができます。