tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルFTPサーバーのファイルコピーについて
記事No16330
投稿日: 2017/06/26(Mon) 13:39
投稿者ぶん
VB6で作成したプログラムをWinXP環境下で使用していなのですが、
装置の老朽化に伴いWindows Embedded Standard 7のコンニューターに
セットアップしたのですが、Inetを使用したFTPサーバーのファイルコピーで
処理時間が長くなってしまいました。(数秒だったので数十分以上)

On Error GoTo ERRtrp
    With Inet1
        On Error GoTo ERRtrp
        .Execute , "CD DUMMY_DATA"
        'ビジーの間待つ
        MSG.Caption = "待ち1"
        Do While .StillExecuting = True
            DoEvents
        Loop
        '選択されたファイルをリモートホストへコピー
        .Execute , "PUT " & FNAME1 & " " & FNAME2
        'ビジーの間待つ
        MSG.Caption = "待ち2"
        Do While .StillExecuting = True
            DoEvents
        Loop
        MSG.Caption = "待ち完"
        '現在のディレクトリの一覧を要求
        .Execute , "DIR"
    End With
    
    MSG.Caption = "データ転送完了"
    Exit Sub

このような処理になっていますが、PUTまでは早いのですが
PUTの後のビジー待ちで5分程度の待ちで、DIRで数十分以上かかって
います。
どなたか、原因が分かる方は教えて頂けないでしょうか。

宜しくお願い致します。

[ツリー表示へ]
タイトルRe: FTPサーバーのファイルコピーについて
記事No16331
投稿日: 2017/06/26(Mon) 14:36
投稿者魔界の仮面弁士
> Inetを使用したFTPサーバーのファイルコピーで
> 処理時間が長くなってしまいました。(数秒だったので数十分以上)

元の端末は、XP Embedded ではなく、XP Professional だったのでしょうか。

まずはネットワーク設定の問題なのか、OS 側の問題なのかの切り分けが
必要可と思いますので、従来の XP クライアントからの通信時と、
今回の WES7 クライアントからの通信時とで、サーバー側に到達するコマンドに
差異が無いかどうか、FTP サーバー側のアクセスログを比較してみてはいかがでしょう。


それから、DoEvents による待機ループは避けるようにしてください。
無駄に CPU リソースを食いつぶしてしまいますし、プロセスの優先順位設定にも依存します。

StillExecutingが変化するまでループする、という作りをやめて、
StateChanged イベントで処理する方が望ましいです。手元に VB6 が無いので未確認ですが、
過去に他のサイトで回答したときのログが残っていたので、参考までに。
http://www.papy.in/bbs/vb2/200404/04040049.html

[ツリー表示へ]
タイトルRe^2: FTPサーバーのファイルコピーについて
記事No16332
投稿日: 2017/06/26(Mon) 16:09
投稿者ぶん
魔界の仮面弁士様

回答有難うございます。
変更前のOSは、Windows XP Professional for Embedded Systemsでした。

FTPサーバーがある場所は、部外者が立ち入り禁止なので、システム課の
人に相談してみます。

DoEventsの箇所は、気にはなっていましたが、そのままにしていました。
この機会にStateChangedイベントに変更したいと思います。

有難う御座いました。

[ツリー表示へ]