From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

FTP転送にてエラー56が発生する

解決済み
解決策を見る

FTP転送でエラー56が発生してしまう問題について

 

状況:

 PXIコントローラからPCに複数ファイルをFTP転送しています。

 転送中にエラー56が発生してしまうことがあり、解決策を検討しています。

 

 ※ファイル名に日本語が使用されているとFTP転送は失敗しやすいとの情報もあるため

   ファイル名称は英語で作成しています。

 

方法:

 現状のプログラムはPC側からFTP通信をもちかけ、ファイルをダウンロードする形式です。

 

エラーの見え方:

 エラー56の内容はタイムアウトであり、またタスクマネージャを用いてCPUの使用率を確認していると

 急にCPU使用率が落ちるため、なんらかの失敗が発生の後、タイムアウトまで何もしていないように見えます。

 

検討した内容と質問:

 解決策を探していたところ下記に到達しました。

 http://digital.ni.com/public.nsf/allkb/9D365AC31326DB70862577450029FB64

 このページに記載されている 

 「MAXでのリモートタイムアウト値を調整するには、次のキーを下記のディレクトにの下に追加する必要があります。

  HKEY_CURRENT_USER\Software\National Instruments\Measurement & Automation Explorer\Remote」

 という内容はRemoteというキーを追加するということでしょうか?

 使用中のPCには・・・\Measurement & Automation Explorerまでしか存在しておらず

 Remoteというキーはありませんでした。

 また、mxTimeoutFtpChunkSizeやmxTimeoutFtpRetriesというDWORD値も

 自分で追加するということなのでしょうか。

 

追加内容:

 FTP転送を行う際にエラー56が発生したことがあり、解決方法を知っていれば教えていただけないでしょうか。

 

よろしくお願いします。

0 件の賞賛
メッセージ1/10
6,094件の閲覧回数

私の環境でも

HKEY_CURRENT_USER\Software\National Instruments\Measurement & Automation Explorer

までしかないので、Remoteをためしに追加してみました。

問題なく追加できました。

 

あとは資料にもあるようにDWORD値を追加してみてください、

キーを追加しただけだと特に意味の無いものとなるので、必ずDWORD値が必要だと思います。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/10
6,025件の閲覧回数

ご連絡いただきありがとうございます。

 

キーもDWORD値も追加してFTP通信を検証してみています。

ただ、変化がほとんどわかりません。

 

 http://digital.ni.com/public.nsf/allkb/9D365AC3132​6DB70862577450029FB64

上記のURLには「mxTimeoutFtpChunkSize」を2048または1024に削減と

書かれているのですが、むしろ数値は大きくしたほうが失敗しにくいようにも思えます。

 

この解決方法は本当に正しいのでしょうか?

 

それとも、もともとレジストリには表示されていないキーとDWORDを追加しているので

それを認識させるような手順などがあるのでしょうか?

0 件の賞賛
メッセージ3/10
5,997件の閲覧回数

ご連絡いただきありがとうございます。

 

キーもDWORD値も追加してFTPの検証を行ってみました。

結果は変化が良くわからないといった具合です。

失敗するときは失敗してしまいますし、成功するときは成功します。

 

http://digital.ni.com/public.nsf/allkb/9D365AC3132​6DB70862577450029FB64

上記のURLには「mxTimeoutFtpChunkSizeを2048または1024に削減」

と記載されているのですが、むしろ数値は上げたほうが成功しやすいように思えます。

 

この解決方法は正しいのでしょうか。

 

また、キーとDWORD値は追加したのですが、追加方法が間違っているのでしょうか。

もともとレジストリに表示されていなかったキーやDWORDですから、追加した後に

認識させるような手順があったりするのでしょうか?

 

ご存知であれば回答お願いします。

0 件の賞賛
メッセージ4/10
5,997件の閲覧回数

ご連絡ありがとうございます。

 

キーとDWORD値を追加しました。FTPの動作検証を行ったのですが、

どのように変化したのか、あまりわかりませんでした。

 

 http://digital.ni.com/public.nsf/allkb/9D365AC3132​6DB70862577450029FB64

上記に「mxTimeoutFtpChunkSizeを2048または1024に削減します。」

と記載されているものの、数値は大きくした方がよいのかとも思えました。

 

キーの追加やDWORDの追加ですが、もともとレジストリに表示されていなかったので

認識させる手順などはあったりするのでしょうか?

 

現状は追加したらそのままウィンドウを消すしかないのですが追加方法など間違いがあったりするのでしょうか?

 

0 件の賞賛
メッセージ5/10
5,997件の閲覧回数

こんにちは。

 

話がレジストリの方向に進んでいますが、FTP転送を行うだけのプログラムではタイムアウトのエラーは発生しますか。

もしFTP転送以外の処理も同時に行っていると、FTP転送の処理が捗らず、タイムアウトになっているという可能性もあります。

 

ちなみにVeristandについて色々と投稿されているみたいなので、PXI はRealTimeOSとみてよろしいでしょうか。

 

0 件の賞賛
メッセージ6/10
5,944件の閲覧回数

ご連絡いただきありがとうございます。

 

エラー56が出る状況ですが、FTP通信のみを行う専用のVIを作成して動作確認をしています。

 

複数のファイルを同時にFTPにて転送しようとすると、転送先では徐々にファイル数及びファイル容量が

大きくなっていることが確認できます。

LabVIEWでFTP通信を行う場合の関数では、デフォルトのタイムアウト設定時間は60秒となっています。

エラー56が発生する際は、このタイムアウトまでの60秒という時間にファイル数及びファイル容量が

一切変化しなくなるという状況が確認できております。

 

他の通信とは関係なく、FTP通信のどこかでエラーが発生してタイムアウトが発生するまで

一向に進まないという状態から、エラー56によるタイムアウトが発生します。

 

タイムアウトが発生する設定時間を短くし、タイムアウトが発生したらやり直しをするということも可能ですが

現状としては、エラーが発生することなくFTP通信が完了することを目的としています。

この状況を解決する方法はないでしょうか。

 

また、OSについてですがPharLapになります。

ご回答お待ちしております。

0 件の賞賛
メッセージ7/10
5,940件の閲覧回数

どの様なコードを使用されているのか気になりますので、もしよければ使用されているFTP転送用のテストVI を添付してください。

0 件の賞賛
メッセージ8/10
5,886件の閲覧回数

ご連絡ありがとうございます。プログラムを添付するのは難しいため、簡単ではありますが

こんなフローで処理をしているという説明をさせていただきます。

 

①FTPセッションオープン

②FTPログオン

③FTPディレクトリリスト取得

④ファイルであればダウンロード

⑤フォルダであれば③へ戻る

⑥FTPセッションクローズ

 

※⑤の戻るというのは再帰的プログラムにしてあります。

 

単純な処理しかしていないつもりです。

パラメータ等はデフォルトを使用しています。

たくさんのファイルを転送しています。

 

私としてはエラー56が発生してしまう原因は

プログラムの構造に問題があるというわけではないと思うのですが、

①~⑥の手順などでおかしい点がありましたらご指摘お願いします。

0 件の賞賛
メッセージ9/10
5,872件の閲覧回数
解決策
トピック作成者sMaSaToが受理

FTP通信についていろいろと調べてみました。

 

結果としては、まったく失敗せずに通信可能とはいえなさそう・・・

といった感じでした。LabVIEW以外でも失敗することもあるように思えました。

 

現状としまして、失敗するときは失敗するけど成功するときは成功します。

ので、失敗したときは、そのファイルを再度FTP転送してみるという処理を作成しました。

 

ただLANケーブルが抜けたとかで転送失敗になることもあると思いますので、

再度FTP転送する回数に上限を設けて対応しようと思います。

0 件の賞賛
メッセージ10/10
5,767件の閲覧回数