I've had time to examine ODBCUSER.DLL in more detail.  While I don't have
access to the threading model that IMail uses, I'm pretty certain that
ODBCUSER.DLL should expect to be called from multiple threads.   There are
several places during initialization or when reconnecting where this could
cause problems.  I've gone back and reworked my previous solution to
simplify it and add semaphore protection around certain sequences.  While
multiple threads can still authenticate at the same time, only a single
thread is allowed to connect or reconnect to the database.

  Technically, there should be a return code that Imail would use to
return a  "temporary problem, try again later" code to the client.  Today,
when the database connection drops, at least one incoming SMTP E-mail will
be dropped due to the failed connection.  Blocking the thread forever
until the connection can be re-establish will make it appear as though the
server has hung.  So this is the best compromise for now and should work
at least as well as the original.

  Keep an eye on the system after you install this update - it hasn't had
much testing of all the possibilities.

  The patched copy is at

   http://home.att.net/~niceman/

-- 
-----------------------------------------------------------
Mike Nice <[EMAIL PROTECTED]>
-----------------------------------------------------------

Please visit http://www.ipswitch.com/support/mailing-lists.html 
to be removed from this list.

Reply via email to