Hello,
I've been testing with 2.0M2 and the Jul 14 SNAPSHOT.  I setup a simple loop
test using 2 routes where camel is running on my windows box.  The first
route takes files from a local folder and ftps them to a remote box.  The
second route pulling from the ftp server and putting back in the same local
folder:

public void configure() throws Exception {
        // Route 1      
        from("file://C:/cameltest?sortBy=file:modifed")

.to("ftp://u...@server/ftptest?password=password&reconnectDelay=10000&maximumReconnectAttempts=-1";)
                     
        .errorHandler(  
deadLetterChannel("direct:retry").redeliverDelay(10000).maximumRedeliveries(-1)
        );
        // Route 2      

from("ftp://u...@server/ftptest?password=password&reconnectDelay=10000&maximumReconnectAttempts=-1";)
        .to("file://C:/cameltest")                      
        .errorHandler(                  
deadLetterChannel("direct:retry").redeliverDelay(10000).maximumRedeliveries(-1)
        );              
}

I threw a few files in the local folder.  Everything worked fine until I
unplugged my box from the network.  As expected it start throwing errors and
retrying.  I then plugged the cable back in.  Route 1 was able to recover
and pushed its files.  Route 2 wasn't as lucky it was stuck in a loop trying
every second to list files on the remote directory and throwing the
exception below.  Is there a way to get it to try to reconnect when this
happens?


Exception:

35339 [Camel thread 0: FtpComponent] WARN
org.apache.camel.impl.DefaultPollingConsumerPollStrategy  - Consumer
Consumer[ftp://u...@server/ftptest?maximumReconnectAttempts=-1&password=password&reconnectDelay=10000]
could not poll endpoint:
ftp://u...@server/ftptest?maximumReconnectAttempts=-1&password=password&reconnectDelay=10000
caused by: File operation failed:  socket write error: Connection reset by
peer.. Code: 150
org.apache.camel.component.file.GenericFileOperationFailedException: File
operation failed:  socket write error: Connection reset by peer.. Code: 150
        at
org.apache.camel.component.file.remote.FtpOperations.listFiles(FtpOperations.java:385)
        at
org.apache.camel.component.file.remote.FtpConsumer.pollDirectory(FtpConsumer.java:50)
        at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:68)
        at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.SocketException: socket write error: Connection reset by
peer.
        at jrockit.net.SocketNativeIO.writeBytesPinned(Native Method)
        at jrockit.net.SocketNativeIO.socketWrite(SocketNativeIO.java:73)
        at java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:137)
        at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
        at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:263)
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:191)
        at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)
        at java.io.BufferedWriter.flush(BufferedWriter.java:236)
        at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:472)
        at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
        at org.apache.commons.net.ftp.FTP.port(FTP.java:862)
        at
org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:463)
        at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
        at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
        at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2048)
        at
org.apache.camel.component.file.remote.FtpOperations.listFiles(FtpOperations.java:382)
        at
org.apache.camel.component.file.remote.FtpConsumer.pollDirectory(FtpConsumer.java:51)
        at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:71)
        at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        ... 1 more


-- 
View this message in context: 
http://www.nabble.com/FTP-Component-Network-Failure-Recovery-Problem-tp24517828p24517828.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to