I just updated to 3.5, and this file is consistently failing.

I no longer receive the 

250 Transfer completed successfully.
200 OK

Replies. 

Log Snippet: 

2016-11-17 12:56:33.870 - 100 Percent Complete, Total Bytes Transferred: 
2101359588

        File Transfer Failed at: 2016-11-17 12:56:38.885
Error Occurred Transmitting File to Remote System, aborting...

Read timed out
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at sun.security.ssl.InputRecord.readFully(Unknown Source)
        at sun.security.ssl.InputRecord.read(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
        at sun.security.ssl.AppInputStream.read(Unknown Source)
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
        at sun.nio.cs.StreamDecoder.read(Unknown Source)
        at java.io.InputStreamReader.read(Unknown Source)
        at java.io.BufferedReader.fill(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:313)
        at org.apache.commons.net.ftp.FTP.__getReplyNoReport(FTP.java:303)
        at org.apache.commons.net.ftp.FTPClient$CSL.cleanUp(FTPClient.java:3839)
        at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:695)
        at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:643)
        at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:2034)
        at gov.nyc.ftputils.FTPConnection.sendFile(FTPConnection.java:695)
        at 
gov.nyc.ftputils.FTPPropertyProcessor.putFile(FTPPropertyProcessor.java:54)
        at 
gov.nyc.ftputils.FTPPropertyProcessor.putFile(FTPPropertyProcessor.java:96)
        at 
gov.nyc.ftputils.FTPPropertyProcessor.processFileProps(FTPPropertyProcessor.java:126)
        at gov.nyc.ftputils.FTPClientUtil.main(FTPClientUtil.java:378)
FTPClientUtil has Failed
QUIT
221 Quit command received. Goodbye.


-----Original Message-----
From: Seganti, Michael (DOF) [mailto:segan...@finance.nyc.gov] 
Sent: Thursday, November 17, 2016 12:34 PM
To: Commons Users List
Subject: RE: [net] FTPClient Transfer succeeds but fails in cleanUp

I need to do a quick test prior to pushing to production, but yes, that's my 
next step.  

I didn't see anything that stood out in the release notes.  It would make life 
easier if this was reproduceable... 

-----Original Message-----
From: Gary Gregory [mailto:garydgreg...@gmail.com]
Sent: Thursday, November 17, 2016 12:31 PM
To: Commons Users List
Subject: Re: [net] FTPClient Transfer succeeds but fails in cleanUp

Can you try version 3.5?

Gary

On Thu, Nov 17, 2016 at 9:19 AM, Seganti, Michael (DOF) < 
segan...@finance.nyc.gov> wrote:

> I'm having a sporadic issue transferring files to a Mainframe, was 
> wondering if anyone else has run into this.  I'm trying to figure out 
> if this is a Mainframe issue, or a net commons issue.
>
> I'm using Java 1.7 and commons-net-3.3.jar
>
> The file transfer completes, but it looks like either the 200 OK is 
> sent over the wrong connection, or is not properly being parsed and is 
> causing the cleanup to fail.
>
> According to the reply: IBM FTP CS V2R2 is the version where the issue 
> occurs.
>
> I have a second mainframe that is running IBM FTP CS V1R13 that 
> doesn't seem to have this issue
>
> In a normal transfer, you would see:
>
> 250 Transfer completed successfully.
>        File Transfer Completed Successfully at: 2016-11-17
> 04:30:51.569 QUIT
> 221 Quit command received. Goodbye.
>
> This is what we are getting on the failures:
>
> 250 Transfer completed successfully.
> 200 OK
>
>        File Transfer Failed at: 2016-11-17 04:36:50.246 Error Occurred 
> Transmitting File to Remote System, aborting...
>
> Read timed out
>
> Here's the full log from the failed transfer:
>
> Using FTPS Connection with Protocol: TLS and Explicit Security Request
> 220-FTPSECR1 IBM FTP CS V2R2 at MVSP.XXX, 09:27:29 on 2016-11-17.
> 220 Connection will close if idle for more than 5 minutes.
> AUTH TLS
> 234 Security environment established - ready for negotiation Connected 
> to mvsp.xxx on xxxx PBSZ 0
> 200 Protection buffer size accepted
> PROT P
> 200 Data connection protection set to private USER *******
> 331 Send password please.
> PASS *******
> 230 C836PTS is logged on.  Working directory is "C836PTS.".
> PWD
> 257 "'C836PTS.'" is working directory.
>
> Using a Packet Size of: 4096
> Control KeepAliveTimeOut: 60
> Control KeepAliveReplyTimeOut: 5000
> FEAT
> 211- Extensions supported
> AUTH TLS
> PBSZ
> PROT
> 211 End
>
> ...FTPClientUtil Connected Successfully!
> SITE TRAIL
> 200 SITE command was accepted
> SITE CYLINDERS PRIMARY=2100 SECONDARY=250
> 200 SITE command was accepted
> SITE RECFM=FB LRECL=1915 BLKSIZE=30640
> 200 SITE command was accepted
> SITE CONDDISP=delete
> 200 SITE command was accepted
>
>
> Sending:
>                 Local: d:\LargeExtracts\full.txt
>                 Remote: 'A836.ORG.CAMA2.FULL'
>                 Starting at: 2016-11-17 09:27:34.798 Total Bytes To
> Send: 2101359588 PASV
> 227 Entering Passive Mode (xx,xx,x,xx,xx,xx) STOR 
> 'A836.ORG.CAMA2.FULL'
> 125 Storing data set A836.ORG.CAMA2.FULL
> 2016-11-17 09:27:47.721 - 5 Percent Complete, Total Bytes Transferred:
> 105070592
> 2016-11-17 09:28:01.190 - 10 Percent Complete, Total Bytes Transferred:
> 210137088
> ...
> 2016-11-17 09:32:21.127 - 100 Percent Complete, Total Bytes Transferred:
> 2101359588
> 250 Transfer completed successfully.
> 200 OK
>
>                 File Transfer Failed at: 2016-11-17 09:32:26.127 Error 
> Occurred Transmitting File to Remote System, aborting...
>
> Read timed out
> java.net.SocketTimeoutException: Read timed out
>                 at java.net.SocketInputStream.socketRead0(Native Method)
>                 at java.net.SocketInputStream.read(Unknown Source)
>                 at java.net.SocketInputStream.read(Unknown Source)
>                 at sun.security.ssl.InputRecord.readFully(Unknown Source)
>                 at sun.security.ssl.InputRecord.read(Unknown Source)
>                 at sun.security.ssl.SSLSocketImpl.readRecord(Unknown
> Source)
>                 at
> sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown
> Source)
>                 at sun.security.ssl.AppInputStream.read(Unknown Source)
>                 at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
>                 at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
>                 at sun.nio.cs.StreamDecoder.read(Unknown Source)
>                 at java.io.InputStreamReader.read(Unknown Source)
>                 at java.io.BufferedReader.fill(Unknown Source)
>                 at java.io.BufferedReader.readLine(Unknown Source)
>                 at java.io.BufferedReader.readLine(Unknown Source)
>                 at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:314)
>                 at org.apache.commons.net.ftp.FTP.__getReplyNoReport(FTP.
> java:304)
>                 at org.apache.commons.net.ftp.FTPClient$CSL.cleanUp(
> FTPClient.java:3697)
>                 at org.apache.commons.net.ftp.FTPClient._storeFile(
> FTPClient.java:669)
>                 at org.apache.commons.net.ftp.FTPClient.__storeFile(
> FTPClient.java:624)
>                 at org.apache.commons.net.ftp.
> FTPClient.storeFile(FTPClient.java:1976)
>                 at gov.nyc.ftputils.FTPConnection.sendFile(
> FTPConnection.java:695)
>                 at gov.nyc.ftputils.FTPPropertyProcessor.putFile(
> FTPPropertyProcessor.java:54)
>                 at gov.nyc.ftputils.FTPPropertyProcessor.putFile(
> FTPPropertyProcessor.java:96)
>                 at
> gov.nyc.ftputils.FTPPropertyProcessor.processFileProps(
> FTPPropertyProcessor.java:126)
>                 at gov.nyc.ftputils.FTPClientUtil.main(
> FTPClientUtil.java:378)
> FTPClientUtil has Failed
> QUIT
> 221 Quit command received. Goodbye.
>
>
> Here's a code snippet of the transfer code:
>
> try{
>             if (trace){
>                                                 
> System.out.println("Total Bytes To Send: " + localFile.length());
>                                                 CopyStreamListener 
> listener = new ProgressStreamListener(localFile.length());
>                                                 
> ftp.setCopyStreamListener( listener);
>                                 }
>
>                 InputStream input = new FileInputStream(localFileName);
>                 boolean result = ftp.storeFile(tempRemoteFileName, input);
>                 input.close();
>
>                 if (result){
>                                 System.out.println("\tFile Transfer 
> Completed Successfully at: " + sdf.format(Calendar.
> getInstance().getTime()));
>                                 ...
>                 }
>                 else
>                                 System.out.println("\tFile Transfer 
> Failed
> at: " + sdf.format(Calendar.getInstance().getTime()));
>
>                 return result;
> }catch (CopyStreamException cse){
>                 System.err.println("\n\tFile Transfer Failed at: " +
> sdf.format(Calendar.getInstance().getTime()) + ", Failure occurred 
> after " + cse.getTotalBytesTransferred() + " Bytes Transferred");
>                 System.err.println("Error Occurred Transmitting File 
> to Remote System, aborting...\n");
>                 cse.printStackTrace(System.err);
>                 System.err.println("\n\nIOException Stack Trace that 
> Caused the Error:\n");
>                 cse.getIOException().printStackTrace(System.err);
>                 return false;
> }catch (IOException ioe){
> System.err.println("\n\tFile Transfer Failed at: " + sdf.format(Calendar.
> getInstance().getTime()));
>                 System.err.println("Error Occurred Transmitting File 
> to Remote System, aborting...\n");
>                 System.err.println(ioe.getMessage());
>                 ioe.printStackTrace(System.err);
>                 return false;
> }catch (Exception e){
>                 System.err.println("\n\tFile Transfer Failed at: " + 
> sdf.format(Calendar.getInstance().getTime()));
>                 System.err.println("Error Occurred Transmitting File 
> to Remote System, aborting...\n");
>                 e.printStackTrace(System.err);
>                 return false;
> }
> }
>
>
> Thanks,
>
> Mike...
>



--
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with 
Hibernate, Second Edition 
<https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
JUnit in Action, Second Edition
<https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
Spring Batch in Action
<https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to