AutoLance (0.3)

 Product to restart the Zope server when:

 - the asyncore socket_map size meets or exceeds a user-defined maximum
   size and at the same time the select loop times out.  This situation
   indicates a deadlock, perhaps caused by irreconcilable database
   connection consumption or leakage.

 OR

 - the process memory size in bytes exceeds the value of the ZOPE_MEMLIMIT
   variable size.  Limiting the memory size prevents swapping or
   other undesirable behavior.  When ZOPE_MEMLIMIT envvar is set to 0,
   this limit is not enforced.  This feature only works on Linux platform
   currently.


 If possible, the product also logs a message to the Zope event log.  When
 a non-memory-related failure occurs, it is possible to send an email
 message responding to the event.  Memory-related failures cannot be
 relied on to send mail.

 To use this product:

 - Install the product in your Products directory

 - Edit the customizable elements of this Product's __init__.py such
   as ZOPE_MEMLIMIT, EMAIL_TO,  etc.

 - Restart your Zope process.

 When a deadlock occurs or memory limit is reached, Zope will restart itself.
 Before restarting itself, Zope will possibly attempt to send an informational
 mail message unless the cause of the need to restart is a MemoryError.

 Note that this product only does its full job on systems which provide
 "daemon" services to Zope.  Most notably this does not inlcude Zope run
 from a Windows command line, but does include Zope run as a Windows service.

 Questions and comments should be provided to chrism@zope.com
 (Chris McDonough)

