Error en BS FTP esperando ficheros

Hola a todos,

Tenemos un proceso que está a la escucha de un servicio FTP para recoger unos ficheros CSV y procesarlos. El proceso funciona correctamente y cuando termina vacia el directorio a la espera que entre algún otro fichero.

Desde hace tiempo estamos recibiendo el siguiente mensaje de error:

ERROR <Ens>ErrGeneral: Error in SFTP Dir() ERROR #7500: Error DirEnum SSH '-2146430967': 'SSH Error [80101009]: Would block waiting for status message [80101009] at SFTP.cpp:150,0

Esto sucede cuando no hay ficheros a procesar y aparece de vez en cuando, a lo mejor cada 20 minutos.

La configuración del adaptador es la siguiente:

La clase que se utiliza es extendida de EnsLib.RecordMap.Service.FTPService y se ha sobrescrito el método OnProcessInput para controlar los registros en lugar de procesar cada uno de los registros en el Business Process.

Este mensaje de error lo está dando antes de procesar nada, dado que no hay trazas que indique que ha entrado a este método, por lo que creo que tiene que ser otra cosa o algo de configuración.

¿Alguna pista de por qué está dando este mensaje de error tan aleatorio?

 

Un saludo,

Francisco López

 

 

Answers

Hola Francisco,

en mi versión de Ensemble ese mensaje de error solo aparece en la clase  %Net.SSH.SFTP.  Está en los métodos  "FileListSSHExecute",  "List" y  "NameListSSH", podrías añadir algún "chivato" de texto al mensaje de error para saber en qué método da el error por si te da alguna pista. Independientemente del método que lo genera, el error viene siempre después la llamada al método "Dir" de la clase  %Net.SSH.SFTP. Según los comentarios de esta clase, este método crea una lista con los archivos de un directorio, así que quizá el error se produzca al intentar crear la lista y que no haya ficheros, quizá por culpa del patrón o extensión a buscar, o porque no se pueda acceder al directorio...

¡Saludos!

 

Hola Javier,

Parece que el problema está en que está constantemente consultando el servidor, está vacio y la lista no se crea. Pero está perdiendo la conexión TCP y por eso lanza el error. Lo que no comprendo es, si tengo la configuración de mantener conectado ¿No debería de realizar la conexión automáticamente?

A lo mejor no comprendo correctamente cual es el funcionamiento de este parámetro

Según la documentación " The value of StayConnected controls how the TCP adapter treats disconnections. If StayConnected has a value of –1, the TCP adapter treats a disconnection as an error. If it has a value of 0 or a positive integer, the TCP adapter does not consider a disconnection an error. ", con un "-1" las desconexiones se tratan como errores. ¿Con un "0" no funciona?