I have an FTP task that runs inside a WebLogic server every 5 minutes. Sometimes, maybe once a day, the thread hangs. Here are the pertinent threads:
"FTPKeepAlive" waiting for lock com.enterprisedt.net.ftp.async.internal.FTPConnectionPool@6fa4935a BLOCKED
com.enterprisedt.net.ftp.async.internal.FTPConnectionPool.isConnected(FTPConnectionPool.java:473)
com.enterprisedt.net.ftp.async.internal.FTPTaskProcessor$a.run(FTPTaskProcessor.java:688)
"Transport protocol 1d" RUNNABLE
com.enterprisedt.net.j2ssh.transport.a.a(TransportProtocolInputStream.java)
com.enterprisedt.net.j2ssh.transport.a.c(TransportProtocolInputStream.java:270)
com.enterprisedt.net.j2ssh.transport.TransportProtocolCommon.processMessages(TransportProtocolCommon.java:1533)
com.enterprisedt.net.j2ssh.transport.TransportProtocolCommon.startBinaryPacketProtocol(TransportProtocolCommon.java:1083)
com.enterprisedt.net.j2ssh.transport.TransportProtocolCommon.run(TransportProtocolCommon.java:428)
java.lang.Thread.run(Thread.java:595)
"FTPThread_edt_1" waiting for lock com.enterprisedt.net.j2ssh.SshThread@679ccbf WAITING
java.lang.Object.wait(Native Method)
java.lang.Thread.join(Thread.java:1095)
java.lang.Thread.join(Thread.java:1148)
com.enterprisedt.net.j2ssh.SshClient.close(SshClient.java:610)
com.enterprisedt.net.ftp.ssh.SSHFTPClient.quit(SSHFTPClient.java:1885)
com.enterprisedt.net.ftp.async.internal.FTPConnectionPool.disconnect(FTPConnectionPool.java:435)
com.enterprisedt.net.ftp.async.internal.DisconnectTask.run(DisconnectTask.java:130)
com.enterprisedt.net.ftp.async.internal.FTPTaskProcessor$b.run(FTPTaskProcessor.java:593)
"FTPThread_edt_0" waiting for lock java.util.Vector@543c8657 TIMED_WAITING
java.lang.Object.wait(Native Method)
com.enterprisedt.net.ftp.async.internal.FTPTaskProcessor$b.run(FTPTaskProcessor.java:530)
"[STUCK] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock java.lang.Object@c1f7c34 WAITING
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
com.enterprisedt.net.ftp.async.AsyncResult.waitTillComplete(AsyncResult.java:282)
com.enterprisedt.net.ftp.async.AsyncResult.endAsyncInternal(AsyncResult.java:298)
com.enterprisedt.net.ftp.async.DisconnectResult.endAsync(DisconnectResult.java:148)
com.enterprisedt.net.ftp.SecureFileTransferClient.disconnect(SecureFileTransferClient.java:1542)
To my eye the hang is in that j2ssh library in TransportProtocolInputStream.java. Is there something I should be doing to shut this down more cleanly? I originally was calling SecureFileTransferClient.disconnect() but I have since changed that to call SecureFileTransferClient.disconnect(true) but it doesn't seem to have made any difference.
Thanks for any help.