External client having intermittent FTP failures in Sterling File Gateway

Technote (troubleshooting)


Problem(Abstract)

FTP client connection fails intermittently while connecting to secure file gateway

Symptom

The following messages are recorded in [Sterling Install Root]/install/logs/ftpclient.log :

[2012-12-14 07:38:04.631] DEBUG <13828307>
StateMachine.handleCommand(IS,C,O) executed [PASV] successfully,
transitioning to state [WAITING_FOR_BIND].
[2012-12-14 07:38:04.631] DEBUG <13828307> psclientcommon.Session.setState(S, b) entered with current state
[ACCEPTING_ALL_COMMANDS], new state [WAITING_FOR_BIND] and
lastStateSuccessful [true].
[2012-12-14 07:38:04.631] DEBUG <13828307>psclientcommon.Session.setState(S, b) recognizes the state is changing.
[2012-12-14 07:38:04.631] DEBUG <13828307>psclientcommon.ftp.Session.changeState(S) transitioning from state [ACCEPTING_ALL_COMMANDS] to state [WAITING_FOR_BIND].
[2012-12-14 07:38:04.631] DEBUG <13828307> psclientcommon.Session.changeState(S) transitioning from state [ACCEPTING_ALL_COMMANDS] to state [WAITING_FOR_BIND].
[2012-12-14 07:38:04.631] DEBUG <13828307> State.invokeEntryExitHandler(IS,S) no method
[handleACCEPTING_ALL_COMMANDSExit], skipping.
[2012-12-14 07:38:04.631] DEBUG <13828307> State.invokeEntryExitHandler(IS,S) no method[handleWAITING_FOR_BINDEntry], skipping.
[2012-12-14 07:38:04.631] DEBUG <13828307>ControlConnection.extractCommand() entering.
[2012-12-14 07:38:04.631] DEBUG <13828307>ControlConnection.extractCommand() exiting.
[2012-12-14 07:38:04.631] DEBUG <13828307>ControlConnection.processInput() exiting.
[2012-12-14 07:38:04.631] DEBUG <17957138>DataServerAgent.canFinishBinding() entering.
[2012-12-14 07:38:04.631] DEBUG <17957138> DataServerAgent.canFinishBinding() exiting.
[2012-12-14 07:38:04.632] DEBUG <1311067685> Listener.finishBinding() entering ...
[2012-12-14 07:38:04.632] DEBUG <1311067685> Listener.finishBinding() exit.
[2012-12-14 07:38:04.632] ERROR <1311067685> DataServerAgent.handleDataServerFinishBindingEvent() caught IO exception on finishBinding.
[2012-12-14 07:38:04.632] ERROR <1311067685> [1355488684632] Bind failed: CloseCode.ALREADY_BOUND
[2012-12-14 07:38:04.632] ERRORDTL <1311067685>[1355488684632]java.io.IOException: Bind failed: CloseCode.ALREADY_BOUND at

com.sterlingcommerce.perimeter.api.conduit.ServerConduitApiImpl.finishBinding(ServerConduitApiImpl.java:120)
at com.sterlingcommerce.woodstock.services.psclientcommon.ftp.Listener.finishBinding(Listener.java:81)
at com.sterlingcommerce.woodstock.services.psclientcommon.ftp.DataServerAgent.handleDataServerFinishBindingEvent(DataServerAgent.java:118)
at
com.sterlingcommerce.woodstock.services.psclientcommon.ftp.DataServerAgent.access$000(DataServerAgent.java:33)
at
com.sterlingcommerce.woodstock.services.psclientcommon.ftp.DataServerAgent$1.run(DataServerAgent.java:69)
at
com.sterlingcommerce.perimeter.api.scheduler.DebugPooledExecutor$Worker.run(DebugPooledExecutor.java:784)
at java.lang.Thread.run(Thread.java:736)

[2012-12-14 07:38:04.632] ERROR <1311067685> 000000000000 GLOBAL_SCOPE
DataServerAgent.handleDataServerFinishBindingEvent() caught IO exception on finishBinding.
java.io.IOException: Bind failed: CloseCode.ALREADY_BOUND
at
com.sterlingcommerce.perimeter.api.conduit.ServerConduitApiImpl.finishBinding(ServerConduitApiImpl.java:120)
at
com.sterlingcommerce.woodstock.services.psclientcommon.ftp.Listener.finishBinding(Listener.java:81)
at
com.sterlingcommerce.woodstock.services.psclientcommon.ftp.DataServerAgent.handleDataServerFinishBindingEvent(DataServerAgent.java:118)
at
com.sterlingcommerce.woodstock.services.psclientcommon.ftp.DataServerAgent.access$000(DataServerAgent.java:33)
at
com.sterlingcommerce.woodstock.services.psclientcommon.ftp.DataServerAgent$1.run(DataServerAgent.java:69)
at
com.sterlingcommerce.perimeter.api.scheduler.DebugPooledExecutor$Worker.run(DebugPooledExecutor.java:784)
at java.lang.Thread.run(Thread.java:736) [2012-12-14 07:38:05.008] DEBUG <1074020356>
DataServerAgent.canAccept() entering.

[2012-12-14 07:38:05.008] DEBUG <1074020356> Listener.wantToAccept(b)entering ...
[2012-12-14 07:38:05.008] DEBUG <1074020356> Listener.wantToAccept(b)exit.
[2012-12-14 07:38:05.008] DEBUG <1074020356> DataServerAgent.canAccept() exiting.
[2012-12-14 07:38:05.008] DEBUG <35979813 SBBT_N1_FTP_ServerAdapter_1355488682519253086:67465769> Listener.wantToAccept(b) entering ...

Cause

If multiple FTP clients are connecting simultaneously, single port for Passive data port range is not enough. If the data port is already in use by FTP session, it can not be allocated for another session.

Resolving the problem

Use either one of these options to resolve the problem:

  • Leave Passive data port range blank i.e. do not specify port range. In this case, server will choose available system ports. This is the recommended option.
  • Increase the range of Passive data port e.g. 3301-4301. You have to make the range wide enough to accommodate multiple data connections simultaneously. Depending on the volume of simultaneous
    data connections, you will have to set this range.

Rate this page:

(0 users)Average rating

Document information


More support for:

Sterling File Gateway
Maintenance

Software version:

2.2

Operating system(s):

Linux

Reference #:

1622064

Modified date:

2013-02-04

Translate my page

Machine Translation

Content navigation