咨询关于com.enterprisedt.net.ftp.FTPClient 在 Timer下使用的问题

zb_86 zb_86 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我使用com.enterprisedt.net.ftp.FTPClient 到服务器用Timer定时下载数据处理,但当网络不好的时候出现了有时系统会停的异常情况,系统部署在Sunone9下。
程序代码如下:
try{
...
ftp.connect();
ftp.login(username, password);
ftp.setTimeout(Global.ftp_time_out);
ftp.setConnectMode(FTPConnectMode.PASV);
ftp.setType(FTPTransferType.BINARY);

...
ftp.chdir(remotepath);
String[] files = ftp.dir(".", false);
...
} catch(IOException e){
log.debug("[FTP Client]从FTP服务器下载文件失败。 ", e);
} catch(FTPException e){
...
} catch(Exception e){
...
} finally{
try {
if(ftp.connected()){
ftp.cancelTransfer();
ftp.quit();
log.info("[FTP Client]关闭FTP连接");
}
}catch (IOException e) {
e.printStackTrace();
}catch (FTPException e) {
e.printStackTrace();
}
}

系统停的时候打出的异常信息如下:
2007-11-15 15:15:16 DEBUG [FTP Client]从FTP服务器下载文件失败。
java.io.IOException: 同级重置连接
at sun.nio.ch.FileDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
at sun.nio.ch.IOUtil.read(IOUtil.java:206)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)
at com.sun.enterprise.server.ss.ASInputStream.read(ASInputStream.java:75)
at com.sun.enterprise.server.ss.ASInputStream.read(ASInputStream.java:66)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.enterprisedt.net.ftp.FTPControlSocket.readReply(FTPControlSocket.java:681)
at com.enterprisedt.net.ftp.FTPControlSocket.sendCommand(FTPControlSocket.java:649)
at com.enterprisedt.net.ftp.FTPClient.dir(FTPClient.java:2046)
at com.neusoft.lbmp.gas.processor.ftp.Clients.downloadAll(Clients.java:78)
at com.neusoft.lbmp.gas.processor.timer.SynProcessor.run(SynProcessor.java:42)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

系统在网络不好的时候有时会出现这种情况,从日志上看,dir方法抛出IOException,但被捕获了。
一般情况下,系统在FTP连接上了后,如果此时网络断了,进入dir方法后,就会抛出这个异常,但是测试结果证明系统不会停。系统用Timer不停的跑
人为的断网可以比较容易的让系统出现这种异常情况,就是在ftp连接上后马上断网,但是系统并不会停。而拿出去的系统却有时会停。
大家遇到过这种情况吗?为什么会停呢?望大家解决
...全文

相关推荐

《模式识别与数据挖掘》配套PPT课件

《模式识别与数据挖掘》配套PPT课件

Bryan Ding

科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?_8.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核

人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核

Bryan Ding

跨境电商供应链管理(AIGC版)课件+教案+参考答案

跨境电商供应链管理(AIGC版)课件+教案+参考答案

Bryan Ding

110KV单电源电网三段式电流保护+距离继电保护整定计算说明报告(23页+6000字)

内容概要:本文是一份关于110kV单电源电网继电保护整定计算的综合性技术报告,全文共23页、约6000字,系统阐述了三段式电流保护与距离保护的设计原理及其整定计算方法。报告深入分析了电力系统在短路故障条件下的电流与阻抗特性,详细推导了电流保护Ⅰ、Ⅱ、Ⅲ段的动作范围、整定原则、灵敏度校验及时间配合机制,确保满足继电保护的选择性、速动性、灵敏性和可靠性“四性”要求。同时,针对长距离或重要输电线路,补充介绍了距离保护的阻抗整定计算方法,并可能结合Matlab进行仿真验证与辅助计算,提升整定结果的准确性与工程实用性。; 适合人群:适用于电气工程及其自动化相关专业的高年级本科生、研究生,以及从事电力系统继电保护设计、运行维护的工程技术人员;要求读者具备电力系统分析、短路计算及继电保护的基础理论知识。; 使用场景及目标:①掌握110kV单电源辐射型电网中三段式电流保护的整定流程与实际计算步骤;②理解距离保护的工作原理及其在复杂工况下的应用优势;③完成实际工程项目的保护配置与整定计算任务,或作为课程设计、毕业设计及科研课题的技术参考资料;④结合Matlab工具实现整定计算的程序化处理与动作特性仿真验证。; 阅读建议:建议读者结合《电力系统继电保护原理》等相关教材同步学习,重点研读整定公式的推导过程与典型算例的计算细节,注意区分电流保护与距离保护的适用场景与配置逻辑,有条件时应利用Matlab等工具对保护动作行为进行建模与仿真,以深化对保护协调配合机制的理解。

欢多天天写代码
评论 23
收藏 已收藏
分享
返回顶部
zb_86
Web 开发 81,108 成员 341,721 内容