ftp连接数量过多

一、现象描述

通过ftp客户端代码登录ftp服务器向指定目录发布文件,发生FTPException异常,消息提示“Maximum login limit has been reached”,详情如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
_, ftpserver0_.CREATE_TIME as CREATE8_12_0_, ftpserver0_.UPDATE_TIME as UPDATE9_
12_0_, ftpserver0_.STATUS as STATUS12_0_, ftpserver0_.VIRTUAL_DIR as VIRTUAL11_1
2_0_ from FTPSERVER ftpserver0_ where ftpserver0_.ID=?
[INFO ][ 2015 - 12 - 20  21 : 56 : 26 ][com.xwood.pms.core.ftp.IssFTPClient.login(IssFTPClien
t.java: 74 )]:建立连接
it.sauronsoftware.ftp4j.FTPException [code= 421 , message= Maximum login limit has
  been reached.]
         at it.sauronsoftware.ftp4j.FTPClient.login(FTPClient.java: 1242 )
         at it.sauronsoftware.ftp4j.FTPClient.login(FTPClient.java: 1168 )
         at com.xwood.pms.core.ftp.IssFTPClient.login(IssFTPClient.java: 82 )
         at com.xwood.pms.util.publisher.FtpOms.upload(FtpOms.java: 171 )
         at com.xwood.pms.util.publisher.FtpOms.upload(FtpOms.java: 144 )
         at com.xwood.pms.service.impl.FilePublisher.createAndPublishWithMultiPorta
ls(FilePublisher.java: 306 )
         at com.xwood.pms.util.publisher.PublishRunnable.call(PublishRunnable.java:
59 )
         at com.xwood.pms.util.publisher.PublishRunnable.call(PublishRunnable.java:
1 )
         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
         at java.util.concurrent.FutureTask.run(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
[INFO ][ 2015 - 12 - 20  21 : 56 : 26 ][com.xwood.pms.core.ftp.IssFTPClient.login(IssFTPClien
t.java: 87 )]:登录FTP服务器失败!Maximum login limit has been reached.
java.lang.IllegalStateException: Client not authenticated
         at it.sauronsoftware.ftp4j.FTPClient.changeDirectory(FTPClient.java: 1610
)
         at com.xwood.pms.core.ftp.IssFTPClient.changeDirectory(IssFTPClient.java: 2
04 )
         at com.xwood.pms.util.publisher.FtpOms.upload(FtpOms.java: 172 )
         at com.xwood.pms.util.publisher.FtpOms.upload(FtpOms.java: 144 )
         at com.xwood.pms.service.impl.FilePublisher.createAndPublishWithMultiPorta
ls(FilePublisher.java: 306 )
         at com.xwood.pms.util.publisher.PublishRunnable.call(PublishRunnable.java:
59 )
         at com.xwood.pms.util.publisher.PublishRunnable.call(PublishRunnable.java:
1 )
         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
         at java.util.concurrent.FutureTask.run(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
com.xwood.pms.core.freemarker.exception.FtpException: ftp异常!file:/_site_domain_
/_root/ 5870 / 5930 / 5931 / 6189 / 6515 //E:/SaaServices/tomcat6-exe/webapps/ROOT/_root/5
870 / 5930 / 5931 / 6189 / 6515 /index.htmlClient not authenticated
         at com.xwood.pms.util.publisher.FtpOms.upload(FtpOms.java: 188 )
         at com.xwood.pms.util.publisher.FtpOms.upload(FtpOms.java: 144 )
         at com.xwood.pms.service.impl.FilePublisher.createAndPublishWithMultiPorta
ls(FilePublisher.java: 306 )

二、解决步骤

1.  从FTPException异常消息很明显,是因ftp客户端登陆数超上限造成的,所以需将ftp服务器的登录数限制配置参数调大

2.  这边是用的 apache-ftpserver-1.0.6 (如是其他服务器如vsftpd、ServU请修改其配置),启动命令是通过ftpd-typical.xml的xml配置参数进行初始化ftpserver对象

报FTPException:"code=421, message= Maximum login limit has  been reached"错误

3. 通过ftp默认启动,定位根目录common -> lib -> f tpserver-core-1.0.6.jar包文件

报FTPException:"code=421, message= Maximum login limit has  been reached"错误

4. 通过源码查找最大登录数相关配置文件及属性(max-logins最大登录数),找到如下图所示

报FTPException:"code=421, message= Maximum login limit has  been reached"错误

5.  找到ftpd-typical.xml初始化配置文件,配置了如下箭头所示属性(max-logins="999999")

报FTPException:"code=421, message= Maximum login limit has  been reached"错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< server  xmlns = "http://mina.apache.org/ftpserver/spring/v1"
     xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="
        http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd    
        "
     id = "myServer"  max-logins = "999999"   max-threads = "9999" >
     < listeners >
         < nio-listener  name = "default"  port = "21" >
             < ssl >
                 < keystore  file = "./res/ftpserver.jks"  password = "password"  />
             </ ssl >
         </ nio-listener >
     </ listeners >
     < file-user-manager  file = "./res/conf/users.properties"  encrypt-passwords = "clear" />
</ server >

6. 重启服务,一切正常

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值