none
ftp.exeを多重起動してはいけないのでしょうか? RRS feed

  • 質問

  • いつもお世話になっております。
    最近、以下の事象が発生しており、困っております。
    Windowsのftp.exeは多重起動してはいけないものなのでしょうか?

    PORTコマンドにてFTPサーバに通知しているFTPクライアントポートが
    処理中に入れ替わってしまうようです。

    そんなことあるのでしょうか。

    どなたか技術情報をお持ちでないでしょうか。


    ■FTPの環境
    FTPクライアント:Windows Server 2008 R2
    FTPサーバ:Solaris 10 ...PORTモードで20,21番ポートを使用


    ■現象
    バッチにて、同じFTPクライアントから、同じ時間に、
    同じFTPサーバへ、同じユーザを使用して
    FTPコマンド(MGET)を同時実行しています。

    このバッチは毎日毎時1回ずつ
    ジョブから定期実行されています。

    過去2か月間の約1440回の実績のうち、
    4回ほど障害が発生しております。

    障害内容は以下のとおりです。

    バッチAとバッチBが実行される。
     ↓
    バッチAのプロンプト・・・バッチBで実行したMGETの結果が返ってくる(下記バッチAログの★部分)
    バッチBのプロンプト・・・何も返ってこない

    最終的にバッチAもバッチBも対象のファイルが取得できず
    エラーとなります。

    なお、FTPサーバ側となるSolarisのログに
    FTPデーモンのログが出力されるのですが
    以下の事象と同様に、MGETのタイミングで
    プロセスIDが、バッチAとバッチBで入れ替わります。

    FTPクライアント側となるWindowsからSolarisへ
    PORTコマンドにて通知しているFTPクライアントポートが
    AとBで入れ替わってしまっているように見えます。

    --------------------------------------------------------------------------------
    バッチAのログ
    --------------------------------------------------------------------------------
    ftp> open hostname
    220 HOSTNAME FTP server ready.
    331 Password required for userftp.
    230 User userftp logged in.

    ftp> ftp> lcd D:\aaaFol

    cd /var/data/aaaFol
    250 CWD command successful.

    ftp> ls -l
    200 PORT command successful.
    150 Opening ASCII mode data connection for /bin/ls.
    合計 8

    -rwxrwxrwx   1 root     sys         3987 11月  6日  01:50 aaa.txt

    226 Transfer complete.
    ftp> 0.0118.20bin
    200 Type set to I.
    ftp> ftp> prompt
    mget aaa.*
    200 Type set to I.
    200 PORT command successful.
    550 bbb.txt: No such file or directory. (★)

    ftp> bye
    221-You have transferred 0 bytes in 0 files.
    221-Total traffic for this session was 737 bytes in 1 transfers.
    221-Thank you for using the FTP service on HOSTNAME.
    221 Goodbye.
    --------------------------------------------------------------------------------
    バッチBのログ
    --------------------------------------------------------------------------------
    ftp> open hostname
    220 HOSTNAME FTP server ready.
    331 Password required for userftp.
    230 User userftp logged in.

    ftp> ftp> lcd D:\bbbFol

    cd /var/data/bbbFol
    250 CWD command successful.

    ftp> ls -l
    200 PORT command successful.
    150 Opening ASCII mode data connection for /bin/ls.
    合計 2

    -rwxrwxrwx   1 root     sys           53 11月  6日  01:50 bbb.txt

    226 Transfer complete.
    ftp> 0.0022.75bin
    200 Type set to I.
    ftp> ftp> prompt
    mget bbb.*
    200 Type set to I.
    ftp> bye
    221-You have transferred 0 bytes in 0 files.
    221-Total traffic for this session was 714 bytes in 2 transfers.
    221-Thank you for using the FTP service on HOSTNAME.
    221 Goodbye.
    --------------------------------------------------------------------------------

    2015年11月6日 7:49

回答

  • チャブーンです。

    この件あくまで想定ですが、FTP commandのmget時に排他がかかることで、他のftp.exeからファイルやディレクトリが見えなくなり、結果このようなエラーが出ているようにも思えます。

    ftp.exeは大昔からあるWindowsのクライアントアプリケーションで、バッチ等による同時起動/同時アクセスは想定していないように思えます(サポート外とかいう話しではなく、そもそも想定されていないのでどんな動作になるのか考慮されていない)。

    ftp.exeが複数プロセスの同時利用に対応しているか、はMS有償サポートに聞いていただくしかわからないと思いますが、挙動から当座、排他を意識した動作(同一ディレクトリへの同時mgetは避ける)ようなつくりをおこなうべきかと思われます。

    追記:solaris側でのログ結果を示していただいていますが、状況からおっしゃるような仮説は現状考えにくいため、ひとまずsolaris側の考慮は除いてコメントしています。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2015年11月9日 3:14
    モデレータ

すべての返信

  • チャブーンです。

    この件あくまで想定ですが、FTP commandのmget時に排他がかかることで、他のftp.exeからファイルやディレクトリが見えなくなり、結果このようなエラーが出ているようにも思えます。

    ftp.exeは大昔からあるWindowsのクライアントアプリケーションで、バッチ等による同時起動/同時アクセスは想定していないように思えます(サポート外とかいう話しではなく、そもそも想定されていないのでどんな動作になるのか考慮されていない)。

    ftp.exeが複数プロセスの同時利用に対応しているか、はMS有償サポートに聞いていただくしかわからないと思いますが、挙動から当座、排他を意識した動作(同一ディレクトリへの同時mgetは避ける)ようなつくりをおこなうべきかと思われます。

    追記:solaris側でのログ結果を示していただいていますが、状況からおっしゃるような仮説は現状考えにくいため、ひとまずsolaris側の考慮は除いてコメントしています。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。


    2015年11月9日 3:14
    モデレータ
  • こんにちは、swimwater さん
    フォーラムオペレータの佐伯 玲 です。

    チャブーンさんからの返信はご覧いただけておりますでしょうか?
    ご確認いただけましたらご返信いただきご参考になれば「回答としてマーク」いただきますようお願い致しますね。


    宜しくお願い致します。

    TechNet Community Support 佐伯 玲

    2015年11月18日 5:17