Our Products:   CompleteFTP  edtFTPnet/Free  edtFTPnet/PRO  edtFTPj/Free  edtFTPj/PRO
0 votes
13.8k views
in Java FTP by (560 points)
I am using the FileTransferClient API of edtFTPj/free in a Java app that allows users to transfer data to my server. In order to increase the transfer speed I have implemented a connection pool in my Java app with multiple simultaneous connections. The problem I'm encountering is that having multiple simultaneous connections only helps speed up the data transfers when using active mode (as opposed to passive mode). However, active mode does not seem to be supported by certain public wifi hotspots so I'd prefer to use passive mode instead. My guess is that I need to explicitly open separate ports on the ftp client side (beyond the default port 21) in order to allow simultaneous connections in passive mode, while in active mode this task is performed by the server.

Is my hunch correct? If so, how do I open multiple ftp ports using edtFTPj/free?

Any pointers in the right direction would be greatly appreciated. Thx

20 Answers

0 votes
by (161k points)
Best to post a log file showing us why a connection pool with multiple clients using passive mode doesn't work.
0 votes
by (560 points)
Below I'm attaching log files when using 2 simultaneous clients transferring a total of 6 files, both for the case of using passive mode and active mode. Looking at the time stamps from the first STOR command until the end, the passive mode takes about 1:46 minutes while the active mode takes only 1:08 minutes. When running with a single connection, both modes take the same amount of 1:46 minutes. When using more than 2 connections, only the time for the active mode decreases while it is impossible to speed up the transfer time for the passive mode. I've run similar experiments with other servers with the same results.

PASSIVE MODE:
======================
DEBUG [FTPClient] 19 Apr 2012 11:19:30.344 : Class: com.enterprisedt.net.ftp.FTPClient
Location: file:/C:/Users/Curious/Documents/Iconiq%20Studios/Software/Iconiq%20Tagger/ftp%20passive/lib/edtftpj.jar
Version: 2.3.0
Build timestamp: 26-Aug-2011 13:52:07 EST
Java version: 1.6.0_26
CLASSPATH: C:\Users\Curious\Documents\Iconiq Studios\Software\Iconiq Tagger\ftp passive\Iconiq_Tagger.jar
OS name: Windows Vista
OS arch: x86
OS version: 6.0

DEBUG [FTPClient] 19 Apr 2012 11:19:30.347 : Class: com.enterprisedt.net.ftp.FTPClient
Location: file:/C:/Users/Curious/Documents/Iconiq%20Studios/Software/Iconiq%20Tagger/ftp%20passive/lib/edtftpj.jar
Version: 2.3.0
Build timestamp: 26-Aug-2011 13:52:07 EST
Java version: 1.6.0_26
CLASSPATH: C:\Users\Curious\Documents\Iconiq Studios\Software\Iconiq Tagger\ftp passive\Iconiq_Tagger.jar
OS name: Windows Vista
OS arch: x86
OS version: 6.0

DEBUG [FileTransferClient] 19 Apr 2012 11:19:52.248 : Configured client
DEBUG [FTPClient] 19 Apr 2012 11:19:52.248 : Connecting to /63.225.118.8:21
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.501 : 220-FileZilla Server version 0.9.40 beta
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.501 : 220-written by Tim Kosse (Tim.Kosse@gmx.de)
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.501 : 220 Please visit http://sourceforge.net/projects/filezilla/
DEBUG [FileTransferClient] 19 Apr 2012 11:19:52.502 : Client connected
DEBUG [FileTransferClient] 19 Apr 2012 11:19:52.502 : Logging in
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.502 : ---> USER Curious
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.583 : 331 Password required for curious
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.584 : ---> PASS ********
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.663 : 230 Logged on
DEBUG [FileTransferClient] 19 Apr 2012 11:19:52.664 : Logged in
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.664 : ---> TYPE I
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.743 : 200 Type set to I
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.744 : ---> CWD /
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.823 : 250 CWD successful. "/" is current directory.
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.827 : ---> SYST
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.907 : 215 UNIX emulated by FileZilla
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.911 : ---> PWD
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.992 : 257 "/" is current directory.
DEBUG [FTPClient] 19 Apr 2012 11:19:52.993 : setupDirDetails() returning: /
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:52.993 : ---> PASV
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.072 : 227 Entering Passive Mode (63,225,118,8,213,235)
INFO [FTPControlSocket] 19 Apr 2012 11:19:53.073 : Substituting server supplied IP (63.225.118.8) with remote host IP (63.225.118.8)
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.214 : ---> LIST
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.296 : 150 Connection accepted
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.297 : 226 Transfer OK
DEBUG [FTPFileFactory] 19 Apr 2012 11:19:53.298 : Confirmed format UNIX
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.301 : ---> MKD timing_test
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.382 : 257 "/timing_test" created successfully
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.382 : ---> CWD timing_test
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.462 : 250 CWD successful. "/timing_test" is current directory.
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.463 : ---> PWD
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.543 : 257 "/timing_test" is current directory.
DEBUG [FTPClient] 19 Apr 2012 11:19:53.543 : setupDirDetails() returning: /timing_test
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.543 : ---> PASV
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.623 : 227 Entering Passive Mode (63,225,118,8,213,236)
INFO [FTPControlSocket] 19 Apr 2012 11:19:53.623 : Substituting server supplied IP (63.225.118.8) with remote host IP (63.225.118.8)
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.766 : ---> LIST
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.847 : 150 Connection accepted
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.848 : 226 Transfer OK
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.849 : ---> PWD
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.929 : 257 "/timing_test" is current directory.
DEBUG [FTPClient] 19 Apr 2012 11:19:53.930 : setupDirDetails() returning: /timing_test
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:53.930 : ---> PASV
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.010 : 227 Entering Passive Mode (63,225,118,8,213,237)
INFO [FTPControlSocket] 19 Apr 2012 11:19:54.010 : Substituting server supplied IP (63.225.118.8) with remote host IP (63.225.118.8)
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.154 : ---> LIST
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.235 : 150 Connection accepted
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.236 : 226 Transfer OK
DEBUG [FileTransferClient] 19 Apr 2012 11:19:54.238 : Configured client
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.239 : ---> CWD /
DEBUG [FTPClient] 19 Apr 2012 11:19:54.239 : Connecting to /63.225.118.8:21
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.323 : 250 CWD successful. "/" is current directory.
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.324 : ---> CWD timing_test
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.404 : 250 CWD successful. "/timing_test" is current directory.
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.405 : ---> PWD
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.407 : 220-FileZilla Server version 0.9.40 beta
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.408 : 220-written by Tim Kosse (Tim.Kosse@gmx.de)
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.408 : 220 Please visit http://sourceforge.net/projects/filezilla/
DEBUG [FileTransferClient] 19 Apr 2012 11:19:54.408 : Client connected
DEBUG [FileTransferClient] 19 Apr 2012 11:19:54.408 : Logging in
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.408 : ---> USER Curious
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.486 : 257 "/timing_test" is current directory.
DEBUG [FTPClient] 19 Apr 2012 11:19:54.486 : Attempt #1
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.486 : ---> PASV
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.487 : 331 Password required for curious
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.487 : ---> PASS ********
DEBUG [FTPControlSocket] 19 Apr 2012 11:19:54.567 : 227 Entering Passive Mode (63,225,
0 votes
by (161k points)
It might help to log thread names in the logging - it's hard to figure out what is happening. I assume you have each connection in a separate thread.
0 votes
by (560 points)
Yes, each connection is in a separate thread. Below please find the log files with thread information.


PASSIVE MODE
===============
DEBUG [AWT-EventQueue-0_FTPClient] 25 Apr 2012 10:09:39.555 : Class: com.enterprisedt.net.ftp.FTPClient
Location: file:/C:/Users/Curious/Documents/Iconiq%20Studios/Software/Iconiq%20Tagger/ftp%20passive%20thread/lib/edtftpj.jar
Version: 2.3.0
Build timestamp: 26-Aug-2011 13:52:07 EST
Java version: 1.6.0_26
CLASSPATH: C:\Users\Curious\Documents\Iconiq Studios\Software\Iconiq Tagger\ftp passive thread\Iconiq_Tagger.jar
OS name: Windows Vista
OS arch: x86
OS version: 6.0

DEBUG [AWT-EventQueue-0_FTPClient] 25 Apr 2012 10:09:39.557 : Class: com.enterprisedt.net.ftp.FTPClient
Location: file:/C:/Users/Curious/Documents/Iconiq%20Studios/Software/Iconiq%20Tagger/ftp%20passive%20thread/lib/edtftpj.jar
Version: 2.3.0
Build timestamp: 26-Aug-2011 13:52:07 EST
Java version: 1.6.0_26
CLASSPATH: C:\Users\Curious\Documents\Iconiq Studios\Software\Iconiq Tagger\ftp passive thread\Iconiq_Tagger.jar
OS name: Windows Vista
OS arch: x86
OS version: 6.0

DEBUG [pool-3-thread-1_FileTransferClient] 25 Apr 2012 10:10:03.093 : Configured client
DEBUG [pool-3-thread-1_FTPClient] 25 Apr 2012 10:10:03.094 : Connecting to /63.225.118.8:21
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.272 : 220-FileZilla Server version 0.9.40 beta
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.273 : 220-written by Tim Kosse (Tim.Kosse@gmx.de)
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.273 : 220 Please visit http://sourceforge.net/projects/filezilla/
DEBUG [pool-3-thread-1_FileTransferClient] 25 Apr 2012 10:10:03.274 : Client connected
DEBUG [pool-3-thread-1_FileTransferClient] 25 Apr 2012 10:10:03.274 : Logging in
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.274 : ---> USER Curious
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.354 : 331 Password required for curious
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.354 : ---> PASS ********
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.436 : 230 Logged on
DEBUG [pool-3-thread-1_FileTransferClient] 25 Apr 2012 10:10:03.436 : Logged in
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.436 : ---> TYPE I
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.517 : 200 Type set to I
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.517 : ---> CWD /
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.598 : 250 CWD successful. "/" is current directory.
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.621 : ---> SYST
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.702 : 215 UNIX emulated by FileZilla
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.706 : ---> PWD
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.787 : 257 "/" is current directory.
DEBUG [pool-3-thread-1_FTPClient] 25 Apr 2012 10:10:03.787 : setupDirDetails() returning: /
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.787 : ---> PASV
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.868 : 227 Entering Passive Mode (63,225,118,8,204,114)
INFO [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.868 : Substituting server supplied IP (63.225.118.8) with remote host IP (63.225.118.8)
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:03.998 : ---> LIST
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.080 : 150 Connection accepted
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.081 : 226 Transfer OK
DEBUG [pool-3-thread-1_FTPFileFactory] 25 Apr 2012 10:10:04.082 : Confirmed format UNIX
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.100 : ---> MKD timing_test
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.181 : 257 "/timing_test" created successfully
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.181 : ---> CWD timing_test
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.264 : 250 CWD successful. "/timing_test" is current directory.
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.265 : ---> PWD
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.345 : 257 "/timing_test" is current directory.
DEBUG [pool-3-thread-1_FTPClient] 25 Apr 2012 10:10:04.345 : setupDirDetails() returning: /timing_test
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.345 : ---> PASV
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.428 : 227 Entering Passive Mode (63,225,118,8,204,115)
INFO [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.428 : Substituting server supplied IP (63.225.118.8) with remote host IP (63.225.118.8)
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.556 : ---> LIST
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.638 : 150 Connection accepted
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.639 : 226 Transfer OK
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.640 : ---> PWD
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.722 : 257 "/timing_test" is current directory.
DEBUG [pool-3-thread-1_FTPClient] 25 Apr 2012 10:10:04.722 : setupDirDetails() returning: /timing_test
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.722 : ---> PASV
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.803 : 227 Entering Passive Mode (63,225,118,8,204,116)
INFO [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.803 : Substituting server supplied IP (63.225.118.8) with remote host IP (63.225.118.8)
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:04.929 : ---> LIST
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:05.010 : 150 Connection accepted
DEBUG [pool-3-thread-1_FTPControlSocket] 25 Apr 2012 10:10:05.011 : 226 Transfer OK
DEBUG [SwingWorker-pool-5-thread-1_FileTransferClient] 25 Apr 2012 10:10:05.013 : Configured client
DEBUG [SwingWorker-pool-5-thread-2_FTPControlSocket] 25 Apr 2012 10:10:05.013 : ---> CWD /
DEBUG [SwingWorker-pool-5-thread-1_FTPClient] 25 Apr 2012 10:10:05.014 : Connecting to /63.225.118.8:21
DEBUG [SwingWorker-pool-5-thread-2_FTPControlSocket] 25 Apr 2012 10:10:05.094 : 250 CWD successful. "/" is current directory.
DEBUG [SwingWorker-pool-5-thread-2_FTPControlSocket] 25 Apr 2012 10:10:05.094 : ---> CWD timing_test
DEBUG [SwingWorker-pool-5-thread-1_FTPControlSocket] 25 Apr 2012 10:10:05.175 : 220-FileZilla Server version 0.9.40 beta
DEBUG [SwingWorker-pool-5-thread-1_FTPControlSocket] 25 Apr 2012 10:10:05.175 : 220-written by Tim Kosse (Tim.Kosse@gmx.de)
DEBUG [SwingWorker-pool-5-thread-1_FTPControlSocket] 25 Apr 2012 10:10:05.175 : 220 Please visit http://sourceforge.net/projects/filezilla/
DEBUG [SwingWorker-pool-5-thread-2_FTPControlSocket] 25 Apr 2012 10:10:05.175 : 250 CWD successful. "/timing_test" is current directory.
DEBUG [SwingWorker-pool-5-thread-1_FileTransferClient] 25 Apr 2012 10:10:05.176 : Client connected
DEBUG [SwingWorker-pool-5-thread-1_FileTransferClient] 25 Apr 2012 10:10:05.176 : Logging in
0 votes
by (560 points)
BTW, it does not require a fancy connection pool to duplicate this overall behavior:
You can take any app that FTPs data using a single connection and simply run two separate instances of it at the same time. If the app uses passive mode, the completion times of both instances will add up. However, when the app uses active mode both instances will complete in the same time it takes for a single instance to complete.
0 votes
by (161k points)
This might be a limitation in the FTP server used because the source IP address is the same or something like that.
0 votes
by (560 points)
This issue seems to be running deeper than that:
I have tested this with various servers of which all of them let me boost the transmission speed by using multiple simultaneous connections in passive mode using a FileZilla client.
0 votes
by (560 points)
If you're having difficulties replicating the behavior I'm describing, I'm wondering if you could provide me with Java code of some simple vanilla-type mini-app that uses edtFTPj in active mode and runs just as fast when launched as a single instance as when launched as two separate instances. If your app behaves the same with my servers, I should be able to track down which API calls of your app make it behave differently from my app. And in case your app experiences the same problems with my servers, I will know to look for a configuration setting on my servers. Thx.
0 votes
by (560 points)
Oops, I meant to request a sample app that uses passive mode, of course ...
0 votes
by (51.2k points)
Try the following:
package com.enterprisedt.client.curious;

import java.lang.Thread;

import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.net.ftp.FTPProgressMonitor;
import com.enterprisedt.util.debug.Level;
import com.enterprisedt.util.debug.Logger;

public class TestConcurrent {

   private static Logger log = Logger.getLogger("TestConcurrent");
   private static String hostName, userName, password;
   
   public static void main(String[] args) {
      hostName = args[0];
      userName = args[1];
      password = args[2];
      Logger.setLevel(Level.DEBUG);
      new Thread() {
         public void run() {
            uploadFile("D:\\Temp\\test1.dat", "test1.dat");
         }
      }.start();
      new Thread() {
         public void run() {
            uploadFile("D:\\Temp\\test2.dat", "test2.dat");
         }
      }.start();
   }

   private static void uploadFile(String localFile, String remoteFile) {
      log.info("Starting upload: " + remoteFile);
      try {
         FTPClient ftp = new FTPClient();
         ftp.setRemoteHost(hostName);
         ftp.setConnectMode(FTPConnectMode.PASV);
         ftp.setTransferBufferSize(10000);
         ftp.setProgressMonitor(new ProgressMonitor(remoteFile), 10000);
         ftp.connect();
         ftp.login(userName, password);
         ftp.put(localFile, remoteFile);
         ftp.quit();
      } catch (Throwable t) {
         t.printStackTrace();
      }
      log.info("Finished upload: " + remoteFile);
   }
}

class ProgressMonitor implements FTPProgressMonitor
{
   private static Logger log = Logger.getLogger("ProgressMonitor");
   
   private String fileName;
   
   public ProgressMonitor(String fileName) {
      this.fileName = fileName;
   }
   
   public void bytesTransferred(long count) {
      log.info(fileName + " " + count + " bytes");
   }
}


Modify the file-names to suit. You need to provide host-name, user-name and password on the command-line.

When I ran it I got the following log:
DEBUG [FTPClient] 9 May 2012 14:18:27.403 : Attempt #1
DEBUG [FTPControlSocket] 9 May 2012 14:18:27.404 : ---> PASV
DEBUG [FTPControlSocket] 9 May 2012 14:18:27.503 : 257 "/" is your current location
DEBUG [FTPClient] 9 May 2012 14:18:27.503 : Attempt #1
DEBUG [FTPControlSocket] 9 May 2012 14:18:27.503 : ---> PASV
DEBUG [FTPControlSocket] 9 May 2012 14:18:27.763 : 227 Entering Passive Mode (67,225,246,158,5,115)
INFO [FTPControlSocket] 9 May 2012 14:18:27.763 : Substituting server supplied IP (67.225.246.158) with remote host IP (67.225.246.158)
DEBUG [FTPControlSocket] 9 May 2012 14:18:27.893 : 227 Entering Passive Mode (67,225,246,158,213,2)
INFO [FTPControlSocket] 9 May 2012 14:18:27.894 : Substituting server supplied IP (67.225.246.158) with remote host IP (67.225.246.158)
DEBUG [FTPControlSocket] 9 May 2012 14:18:28.145 : ---> STOR test1.dat
DEBUG [FTPControlSocket] 9 May 2012 14:18:28.273 : ---> STOR test2.dat
DEBUG [FTPControlSocket] 9 May 2012 14:18:28.563 : 150 Accepted data connection
INFO [ProgressMonitor] 9 May 2012 14:18:28.567 : test1.dat 10082 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:28.570 : test1.dat 20152 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:28.573 : test1.dat 30226 bytes
DEBUG [FTPControlSocket] 9 May 2012 14:18:28.693 : 150 Accepted data connection
INFO [ProgressMonitor] 9 May 2012 14:18:28.696 : test2.dat 10078 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:28.697 : test2.dat 20159 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:28.698 : test2.dat 30236 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:36.392 : test1.dat 40301 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:36.393 : test1.dat 50354 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:36.862 : test2.dat 40322 bytes
INFO [ProgressMonitor] 9 May 2012 14:18:36.863 : test2.dat 50405 bytes


This shows that the two transfers are occurring concurrently.

Please modify the example to illustrate the problem.

- Hans (EnterpriseDT)

Categories

...