The error that appears in my log is: ERR No Data (Winsock error #11004)
The log is generated by the first routine ("if(Error)"), I presume when a command has caused an error due to the network being interrupted. I would presume that the second routine (the unknown RqType) doesn't fire at all as that would be generated from a valid (but unknown) command being completed correctly. Once this occurs, the normal Connect command called in the next cycle permanently fails until the application is restarted. Dave Wilfried Mestdagh wrote: >Hello David, > >Do you have logs indicating which one cause the break, and what error / >RqType it is ? > >I think in both cases you should call Abort(); > >--- >Rgds, Wilfried [TeamICS] >http://www.overbyte.be/eng/overbyte/teamics.html >http://www.mestdagh.biz > >Monday, November 14, 2005, 10:33, David Lewis wrote: > > > >>I've got an application that I wrote a while ago now that is starting to >>have some issues I need to look into. >> >> > > > >>Basically, this application contains a process that regularly polls for >>emails (every 5 minutes) and gathers any available, stripping off up to >>60 jpg attachements and processes them. (emails are from CCTV cameras) >> >> > > > >>The email server is on a network, and not connected via the 'net, >>although the connection does go through a megastream link, which is >>starting to become a little erratic, which I think is the cause of these >>problems. >> >> > > > >>Normally, the application works fine, collects emails, logs everything >>then sleeps until the next cycle and carries on 24/7 >> >> > > > >>However, I think that occasionally, during the email collection routine, >>the megastream link goes down briefly causing the routine to fail. At >>this point, I log a fail, but then I cannot reconnect to the email >>server again until I restart the application. >> >> > > > >>So, all I can imagine is that I am not doing the right thing when an >>error occurs in the email retrieve routines. >> >> > > > >>In my "co_Pop3ClientRequestDone" routine, I have 2 error >>handling/logging parts. The first being: >> >> > > > >>if(Error) // Error is passed to ClientRequestDone event >> { >> co_LogReport->Lines->Add(DateTimeToStr(Now( )) + " Email check >>failed (" + IntToStr(RqType) + "/" + IntToStr(Error) + ")"); >> at_EmailError = true; >> co_Pop3Client->Abort( ); >> return; >> } >> >> > > > >>The second being: >> >> > > > >> switch(RqType) >> { >>... >>... >> default: // Handle unknown request and close >> co_LogReport->Lines->Add(DateTimeToStr(Now( )) + " Email >>check failed (" + IntToStr(RqType) + "/" + IntToStr(Error) + ")"); >> me_Exec(co_Pop3Client->Quit, "Quit"); >> break; >> } >> >> > > > >>Now, the first uses Abort and this may not be the right way to close the >>connection down, but I didn't want to create an infiniate loop where a >>Quit command called this routine with and error and then everything >>falls over. >> >> > > > >>What is the 'right' way to close the connection down in such a way that >>the next attempt will be a 'clean' one? I presume I haven't closed >>everything down properly which is causing be to fail on the next connection. >> >> > > > >>At the moment, unfortunately, this software is 'on-site' and not in a >>good position to test/debug so I would like to be confident that any >>changes will be in the right direction. >> >> > > > > >>Thanks, >> >> > > > >>Dave >> >> > > > -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be