KB Article #181847
Mainframe cannot transfer files or list folders when working with ST 5.5
Problem
In some cases, a successful connection can be established from a Mainframe to ST 5.5 over FTPS, but when the Mainframe FTP client tries to open a passive connection (for example when listing files/folders, or when transfering files), the connection can fail with the below errors logged in the Mainframe logs:
>>> PASV 227 Entering Passive Mode (10,11,12,13,85,55) >>> LIST 150 Opening ASCII mode data connection for file list. protDataConnAttls: Issuing SIOCTTLSCTL to query policy state protDataConnAttls: AT-TLS policy set as application controlled. TTLSRule: Default_FTP~1 TTLSGroupAction: gAct1 TTLSEnvironmentAction: eAct~FTP~1 TTLSConnectionACtion: eAct~FTP~1 protDataConnAttls: reusable Peer_ID set and session reuse is allowed protDataConnAttls: Issuing SIOCTTLSCTL to start handshake protDataConnAttls: ioctl() failed on SIOCTTLSCTL - EDC8121I Connection reset. (errno2=0x77A9733D) getNegotiatedTLSvalues: ioctl() failed on SIOCTTLSCTL - EDC8124I Socket not connected. (errno2=0x77B77221) CA1582 SETCEC code = 17 TLS security mechanism negotiation failed - data connection closed 425 Can't build data connection: Connection refused. setClientRC: entered setClientRC: std_rc=14425, rc_type=STD, rc=14425 Std Return Code = 14425, Error Code = 00017 >>> QUIT 221 Goodbye.
On ST's side, the following error may be observed in the FTP log:
com.axway.st.server.ftpd.handler.StFtpHandler - Exception caught, closing session java.io.IOException: Connection reset by peer at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method) at java.base/sun.nio.ch.SocketDispatcher.read(Unknown Source) at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) at java.base/sun.nio.ch.IOUtil.read(Unknown Source) at java.base/sun.nio.ch.IOUtil.read(Unknown Source) at java.base/sun.nio.ch.SocketChannelImpl.read(Unknown Source) at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280) at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:1) at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:695) at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668) at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$9(AbstractPollingIoProcessor.java:654) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)
Resolution
In the Mainframe FTP client configuration (FTP.DATA configuration) check for the SECURE_SESSION_REUSE
option, and if the value is ALLOWED set it to NONE and retry the transfers.