程序 quartz 定时执行 FTP 上传功能,当使用 storeFile 函数上传文件时 会出现线程被僵死的问题。 17:14:14,324 DEBUG FileGatherer:537 - 150 Opening ASCII mode data connection for temp123334_log.temp. debug 信息 到这一步就程序就等在这里,不往下执行,线程就卡在这里。并没有抛异常。 这是 thread dump (大伙帮忙看看 这种情况有的时候几甚至正常运行十几天不出现,有的时候半天就出现了,希望有那位兄台给点意见,或者其他的解决方法也行,比如quartz 可以设置线程超时一样的东东。)
"DefaultQuartzScheduler_Worker-5" prio=1 tid=0x082ce7a0 nid=0x1214 runnable [0xaac0e000..0xaac0f228]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0xac490e90> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:502)
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:388)
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1388)
at com.onewaveinc.core.common.gather.FileGatherer.uploadTmpAndRename(FileGatherer.java:222)
at com.onewaveinc.collection.client.CollectionClientJob.collectToFtpServer(CollectionClientJob.java:373)
at com.onewaveinc.collection.client.CollectionClientJob.execute(CollectionClientJob.java:330)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:248)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:165)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520) ----- 这里显示有个锁 , 那个兄台能解释下这个锁是怎么加上去的,为什么没有释放
- locked <0xac490e90> (a java.net.PlainSocketImpl)
"DefaultQuartzScheduler_Worker-5" prio=1 tid=0x082ce7a0 nid=0x1214 runnable [0xaac0e000..0xaac0f228]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0xac490e90> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:502)
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:388)
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1388)
at com.onewaveinc.core.common.gather.FileGatherer.uploadTmpAndRename(FileGatherer.java:222)
at com.onewaveinc.collection.client.CollectionClientJob.collectToFtpServer(CollectionClientJob.java:373)
at com.onewaveinc.collection.client.CollectionClientJob.execute(CollectionClientJob.java:330)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:248)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:165)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520) ----- 这里显示有个锁 , 那个兄台能解释下这个锁是怎么加上去的,为什么没有释放
- locked <0xac490e90> (a java.net.PlainSocketImpl)
解决方案 »
- 请问在swing中,怎样把参数传递到事件处理中?
- 字符串截取成数组的问题,在线等
- 怎么写这个方法
- 如何让SWT中的TreeViewer的某个元素成选中状态,谢谢
- 怎样实现在(100,100)坐标画个点?
- 关于char 与 byte的问题
- abstract同interface在用发上有什么不同?
- 请教JBuild的问题,?~~还有B/S or B/C!!~~
- 请问IE5.5 SP2的JRE版本是多少啊?为什么我的applet程序在IE5.0及IE6.0中使用IE自带的JRE可以跑起来,而在IE5.5 SP2中不行,必须安装JRE
- 微软停止支持新版JAVA虚拟机,大家放弃JAVA吧
- EXCEPTION_ACCESS_VIOLATION
- 一个很简单的一对一聊天程序,帮我找下错
你的问题就不清楚了
很是郁闷~~有同样经历的同仁加以指点~~
3Q~~~