

### 前提

WebDAVを使用したサーバから  
ファイルをダウンロードするプログラムを作成しています。  
クライアントは約5秒に1回、サーバにアクセスします。  
サーバとクライアントはLANケーブルで直結しています。  
クライアントはWin10、サーバはLinux(ディストリビューションは記載できません。)  
(開発環境についても特定の可能性があるためすみませんが記載できません。)

### 実現したいこと

まれにWebDAVサーバから  
ファイルをダウンロードするのに失敗します。  
(頻度は、半年稼働して1度程度)

それ以外は問題なくファイルダウンロードは行えています。  
現在の状況下でファイルのダウンロードに失敗する要因としては、どのようなものが考えられますでしょうか。  
ちなみに、サーバからクライアントへファイルのURIをTCP通知してから  
クライアントはそのURIを使ってファイルダウンロードをしますので  
URI、ファイル名の間違いはありません。

※ダウンロード失敗時にエラーログを取っておけばよかったのですが  
エラーログを記録するように作っていなかったため、  
原因がわかりかねています。今後はログを残すようにしますが、現状で考えられる要因について知りたいです。  
可能性は低いですが、当方でもケーブル断線の可能性は考えています。


CC BY-SA 4.0
2022-09-02T10:52:43.970
90902
2022-09-27T11:41:23.933
54246
question
linux
WebDAVを使用したファイルダウンロードが失敗する要因について


例えばテスト環境の用意があり

  * WebDAV サーバー: (実績のある) nginx, Apache などで構築
  * クライアント: (実績のある) curl, wget など (GET or POST 可能)  
これらの環境で, ログを最大限取れるように設定

この場合, 仮に 通信に問題が出るとしたら以下が考えられるかも

  1. 「サーバからクライアントへファイルのURIをTCP通知してから」の部分
  2. (ハード的な問題で 例えば) コネクターが抜けかけている … など

前者は, コードが示されていない以上 処理内容が不明で, そこが間違ってる可能性は捨てきれない (取得のタイミングの問題とか)。  
ソフト側になにか問題が出るとしたら, 消去法でそれしか残らない。  
(ダウンロードサイズの問題もあるかもだけど)

#### LabVIEW アプリ？

上記環境からクライアントを LabVIEW を使ったアプリへ置き換えるなら, 上記に加え アプリの作りが問題になるでしょう。  
(TCPとして) ストリーム型通信 / streaming communication (ストリーム指向) に基づいているのか, が問題。

業務プログラムかなんらかで, ソースは公開できない・開発環境も公開は控えたい, というのはもちろんあるだろうけど, 例えば他の言語での **テストコード**
でも示されていれば何らかの指摘が可能になるかもです

* * *

#### 追記

コメントで @cubick さんが示している通りで, 再度示すと

  * 提示されている情報だけでは何も出来ない, 不足していること
  * 第三者は憶測を並べるだけになること

なので

> 現在の状況下でファイルのダウンロードに失敗する要因としては、どのようなものが考えられますでしょうか。

に対する回答としては, 上記に示したとおりです  
(漠然とした質問なので, 回答もこのようにならざるを得ない, 範囲も広くならざるを得ない)

(上記回答から)  
取れる手段をいくつか上げるとするなら

  1. テスト環境で (実績のある) WebDAV サーバー ＆ クライアント curl, wget などで構築し, 「サーバからクライアントへファイルのURIをTCP通知してから」の部分を検証する。その際 タイミングずらしてアクセスするなど考慮が必要
  2. 「サーバからクライアントへファイルのURIをTCP通知してから」,「LabVIEW アプリ」がユーザーアプリと思われ, その部分の公開可能にしたようなコード, 公開できない分を省いたコード, 疑似コード … を示し, 問題点が無いか問う
  3. コード公開が無理そう ＆ ストリーム指向とはなんぞや … と思うなら, それを問う

追加質問があるのなら, 質問に追記してみてください。  
その範囲が広くなりそうなら新たな別の質問にするとよいでしょう


CC BY-SA 4.0
2022-09-24T06:11:44.633
91272
2022-09-27T11:41:23.933
2022-09-27T11:41:23.933
43025
43025
90902
answer