我正在使用sftp出站网关将文件传输到sftp。它会在一定数量的上传后随机挂起。例如,我要上传20个文件,成功上传10个文件,挂起并阻止所有其他进程。
我通过服务激活器向Sftp出站网关提供文件。
我的整合背景如下:
<int-sftp:outbound-gateway id= "sftpOutboundGateWay" command="put" expression="payload" session-factory="sftpSessionFactory"
request-channel="sftpUploadChannel" reply-channel="sftpDataChannel" remote-directory="${sftp.dir}" />
此网关中的文件来自服务方法。我的方法是这样的:
public Message<?> provideFile(Message<?> masterData) {
//some logic
return MessageBuilder.withPayload(fileObject).build();
}
无论如何都要跟踪此问题或重新启动出站网关?
答案 0 :(得分:0)
看起来你有一些组件没有返回reply
,因此调用线程被阻止等待回复。有这样的漏洞你最终会导致线程池耗尽。因此,下一个任务只是放在队列中,但是没有Thread可以执行该任务。
您可以尝试从线程转储中调查您的问题。