In our project, we are using the FTP client that ships with webMethods 4.0.1 sp 3, on a Windows 2000 sp 3 platform.
Occasionally, the FTP hangs during transfer, we suspect that the FTP library is the source of the problem; it seems to have a bug. We do not know which service of the pub.client.ftp package hangs. We do not know if this issue also applies to WM 4.6 or 6.0.
The “FTP hang” will in turn cause the flow service to hang. How do we know? It turns out that our corresponding flow services are scheduled services. The symptom then is that in the B2B Server’s “Scheduler” tasks, the corresponding service’s time will remain at 9.2 seconds. We found that “9.2 seconds” usually means that the service is active. But in our case, it then means “the service keeps hanging”. The only way we have to fix the above is to restart the B2B server. That is not really satisfying in a production environment.
We attempted to fix the issue in multiple ways:
- Timed out sequences do not work. The timeout event only occurs after the ftp method returns, but it never returns. If timed out sequences were to interrupt the flow that is actually running, then that could help.
- Calling pub.client.ftp.logout() does not solve the issue, because logout() only closes the FTP control connection, not the FTP data connection. But the call hangs on the data connection.
- We also tried to use a Java solution involving a multithreaded “watchdog” that would interrupt() the blocked thread. To our dismay, the FTP transfer keeps on hanging.
We would know how to work around the issue: A watchdog mechanism would close the FTP control and data connections, after a given timeout. The blocked FTP transfer would simply receive an IO exception, and would exit.
We would like to help webMethods in working around that problem, but we are barred from doing so by the webMethods license agreement.
#webMethods#Integration-Server-and-ESB#webMethods-General