State = Retrying and OLE automation errors (wodSmtpServer / wodPop3Server / wodImapServer)
Hello,
when wodSmtp is used for direct delivery (no SMTP - empty .Hostname property), and it encounters an error during communication, it ends with a permanent 14 (Retrying) .State even if .RetryCount property was set to 0. This, at least, happens when used in unblocking (.Blocking = false) mode.
This seems to be a bug (if .State is 14 you should expect that wodSmtp is going to do something next, but it is not and it never returns to 0); it seems to happen randomly but is easily replicable if you try a large direct mailing.
My app uses an array of wodSmtp controls in unblocking mode in order to have multiple simultaneous sending operations (.RetryCount = 0; .RetryWait = 0 for all controls); it periodically checks .State property and, when the state is Retrying (which should never be), issues a .Disconnect method.
This works most of the time, but on some machines a very serious automation error is sometimes generated: -2147417848 Ole automation error: The object invoked has disconnected from its clients . This seems to happen randomly, but in all cases when issuing a .Disconnect method when .State value is 14 (Retrying).
Do you have any suggestions on how to avoid this error or at least to regain access to the control after this error? It is very important because on some machines my app becomes very unstable.
Re: State = Retrying and OLE automation errors
Luca,
this OLE error could be due to some exception inside wodSmtp, although I didn't hear before about it. Is this something we could duplicate? Can you send your app overhere so I can try to direct mailing (to my own email addresses, of course)?
I do agree that 'retrying' sounds like a bug. I'm not 100 sure, but I think wodSmtp will not retry at all, this could be a compatibility enumeration name for wodSmtpServer only.
Kreso
Re: State = Retrying and OLE automation errors
Hi Kreso,
I can send you a lot of information, including detailed system dumps, logs, and an abstract of the (simple) code that caused the error; just tell me where should I send it.
I think it will be very hard to replicate the OLE error, but in my opinion this is not the real issue (it is very rare and machine related: our app is widely used by 1000s of people and the ole has been reported only a couple of times): I think the real issue is the state bug (which I confirm is very frequent); the ole error comes out when our app tries to workaround the bug by resetting the wodSmtp component when it is found in retrying state (yes, it is wodSmtp, not wodSmtpServer) - which happens really often. I feel like resolving this bug (frequent and easily replicable) will resolve the other one too.
Thank you
Re: State = Retrying and OLE automation errors
Luca,
please send everything you have to techsupport@weonlydo.com, I'd like to check it out.
Kreso
Re: State = Retrying and OLE automation errors
Thanks, I've sent you a mail