I am getting list time out issue while fetching large volume of files using sftp in c#. I am able to fetch and download files up to 50k. But if in the range of above 70k or so getting below exception:
ListTimeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Gave command time out in the Database Calling areas via Sql DB Server. But still the issue persists.
What I have tried:
_listSftp.ListItemReceived += (s, e) =>
{
SftpItem item = e.Item;
objSFTPFile = new SFTPFile();
objSFTPFile.FileType = "DDS300";
objSFTPFile.Extension = "DDR";
objSFTPFile.Status = SFTPStatus.L.ToString();
objSFTPFile.FileName = item.Name.Trim();
objSFTPFile.FileSize = item.Size;
objSFTPFile.Mode = SFTPMode.D.ToString();
objSFTPFile.BankCode = Common.BANKCODE;
ListSFTPFile.Add(objSFTPFile);
Common.WriteLog(MethodInfo.GetCurrentMethod().Name + " FileType: " + objSFTPFile.FileType + " FileName: " + objSFTPFile.FileName, ServiceThread.Listing.ToString());
e.Ignore();
};
ListSFTPFile.Clear();
SftpItemCollection List = _listSftp.GetList(GetSFTPServerPath("Files"));
and saving
string strxml = DAL_Common.getXMLFromList(listInwardFile);
DataSet dsDetails = new DataSet();
DbCommand DbCmd = DataAccessBase.Database.GetStoredProcCommand("DDS_SAVE_SFTP_DOWNLOAD_LIST");
DbCmd.CommandTimeout = 600;
DataAccessBase.Database.AddInParameter(DbCmd, "@p_BankCode", DbType.String, strBankCode);
DataAccessBase.Database.AddInParameter(DbCmd, "@p_xml", DbType.Xml, strxml);
DataAccessBase.Database.AddOutParameter(DbCmd, "@p_error_code", DbType.String, 40);
DataAccessBase.Database.AddOutParameter(DbCmd, "@p_error_msg", DbType.String, 1000);
int i = DataAccessBase.Database.ExecuteNonQuery(DbCmd);
int ErrorCode = Convert.ToInt32(DataAccessBase.Database.GetParameterValue(DbCmd, "@p_error_code").ToString());
Errormsg = DataAccessBase.Database.GetParameterValue(DbCmd, "@p_error_msg").ToString();