We recently upgraded to Mercury 4.72 and Windows 2008 R2 on 32 bit architecture.
Occasionally , under high volumes our Mercury mail Queue is failing to process correctly. The Mercury service seems to be CPU bound, consuming 12%CPU on a Quad CPU for hours. No email is delivered. A restart of the service un-hangs it and the queue is quickly processed.
The log files show no errors.
We operate Mercury mostly as an internal SMTP relay engine to push PDF docs through a larger Exchange PostOffice.
Below is our INI file. Any suggestions are greatly appreciated.
Peter Dunphy
# MERCURY.INI generated by Mercury Setup
#
#
# Sample Bindery Mode MERCURY.INI file (in fact, the one I use on
# my production server). This one implements most of the possible
# switches for each module, but you can edit it to do less if you
# wish. All the fields shown below are described in the file
# MGUIDE.HLP which is supplied in the Mercury archive.
#
# Anything after a '#' to the end of the line is a comment and
# is stripped out before parsing. Trailing and leading whitespace
# is also stripped before parsing. Many sample commands have been
# left in this file commented out for reference purposes.
#
[General]
myname: cpnt.gnb.ca # Canonical name for this server
timezone: +0000 # Time Zone to add to date fields
file_api: 1 # Use the file api instead of queues
mailqueue: D:\MERCURY\QUEUE # Where mail should be put for delivery
smtpqueue: D:\MERCURY\QUEUE # Where the SMTP client should look for mail
newmail_path: D:\MERCURY\MAIL\~N # Where to find the users' WinPMail mailboxes.
[Protocols]
D:\MERCURY\MERCURYS.DLL
D:\MERCURY\MERCURYP.DLL
# D:\MERCURY\MERCURYE.DLL
D:\MERCURY\MERCURYC.DLL
# D:\MERCURY\MERCURYD.DLL
# D:\MERCURY\MERCURYH.DLL
# D:\MERCURY\MERCURYF.DLL
# D:\MERCURY\MERCURYW.DLL
# D:\MERCURY\MERCURYX.DLL
# D:\MERCURY\MERCURYI.DLL
[Mercury]
failfile: D:\MERCURY\Mercury\FAILURE.MER # Delivery failure notification template
confirmfile: D:\MERCURY\Mercury\CONFIRM.MER # Delivery confirmation template
aliasfile: D:\MERCURY\Mercury\ALIAS.MER # System-wide alias file
synfile: D:\MERCURY\Mercury\SYNONYM.MER # User synonym database
listfile: D:\MERCURY\Mercury\LISTS.MER # List of lists
logfile: D:\MERCURY\Mercury\system.log # Traffic logging file
logwidth: 30 # Width of address fields in logfile
retpath: 1 # Do/Don't use 'return-path' for errors
maxhops: 30 # Used to detect mailing loops
gullible: 0 # If NZ, don't validate 'From' fields
bitnethost: cunyvm.cuny.edu # Relay host for '.bitnet' rewrites
poll: 10 # Seconds between queue polling cycles
scratch: D:\MERCURY\Scratch # Where we can write temp files
returnlines: 15 # How many lines of failed messages to return
postmaster: depcon # NetWare UIC of postmaster
broadcast: 1 # Yes, we want broadcast notifications, but
receipts: 0 # ... no broadcasts for receipt confirmations
PM_notify: 1 # Do/Don't send errors to the postmaster
change_owner: 1 # Change message ownership to recipient
auto_tzone: 1 # If NZ, obtain timezone information from OS
LogLevel: 25 # System message reporting level
LogMax: 100 # Maximum number of system messages to store
RetryPeriod: 5 # Period between job retries (minutes)
MaxRetries: 30 # Maximum number of times a job can fail
TwoPasses: 1 # If NZ, process submission queue in 2 passes
Autoaddress: 0 # If NZ, auto-generate user addresses based on name
Daily_exit: 0 # If NZ, auto-restart each day after maintenance
No_Areply: 0 # If NZ, disable automatic replies system-wide
Alt_Forward: 1 # If NZ, allow alternate forwarding specification
Maint_hour: 2 # Hour for daily maintenance (24-hour clock)
Maint_min: 0 # Minute for daily maintenance
Retry_Mode: 0 # If NZ, use progressive backoff for queue retries
Local_DSNs: 1 # If NZ generate Delivery Status for local users only
DSN_time1: 3600 # Seconds deferred before first DSN is sent
DSN_time2: 7200 # Seconds deferred before second DSN is sent
DSN_time3: 14400 # Seconds deferred before third DSN is sent
Host_in_title: 0 # If NZ, show hostname in system tray and taskbar
Lingering: 0 # Enable or disable 'lingering mailboxes'
Linger_Timeout: 60 # Seconds before a lingering mailbox is shut down
Alert_Host: notify.pmail.com # Host to check for licensee advisories
Alert_Interval: 720 # Frequency in minutes (min 240) for checks
Alert_Flags: 3 # Flags controlling advisory checks
[MercuryC]
Host : mailserv.gnb.ca
Failfile : D:\MERCURY\Mercury\FAILURE.MER
HELO : CPNT.GNB.CA
Poll : 30
Scratch : D:\MERCURY\Mercury
ReturnLines : 15
Timeout : 30
ESMTP : 1
POP3_Auth : 0
Logfile : d:\mercury\logs\smtpcli.log
Log_Verbose : 0
Session_logging : d:\mercury\logs\smtpcli
Session_logmode : 0
[MercuryE]
Poll : 15
Timeout : 60
# Session_logging : o:\mail\mercury\melogs
# Session_logmode : 1
# Nameservers : 139.80.64.1
[MercuryD]
scratch : D:\MERCURY\Mercury
# Timeout : 30
# Poll : 120 # How often to check hosts for new mail (seconds)
[MercuryS]
Debug : 1
HELO : cpnt.gnb.ca
Logfile : D:\MERCURY\Logs\MERCURYS.LOG
Timeout : 30
Relay : 0
Strict_Relay : 0
Allow_Illegals : 0
SMTP_Authentication : 1
Auth_File : smtpauth
Session_logging : D:\MERCURY\Logs\smtp.LOG
Session_logmode : 0
Compliance_Settings : 0
Maximum_Failed_Rcpts : 4
Max_Relay_Attempts : 4
SSL_Mode : 0
ST_Blacklisting : 288
No_VRFY : 0
SMTP_ConnFlags : 0
[MercuryP]
Scratch : D:\MERCURY\Mercury
Logfile : pop3log.log
Stack : 32768
Mark_Read : 1
SSL_Mode : 0
Login_Disabled : 0
UIDL_nul_list : 1
New_UIDs : 0
No_NUL_passwords : 1
Timeout : 60
[MercuryX]
# Cmd_Delay: 10
# Cmd_Wait: 1
# IE4_Dialling: 0
# Use_ETRN: 1
# Clients_only: 1
# Sunday: 0800,1800,3,15,30,60
# Monday: 0830,2100,5,15,60,60
# Tuesday: 0830,2100,5,15,60,60
# Wednesday: 1500,1900,2,30,5,30
# Thursday: 0900,1900,2,30,0,0
# Friday: 0830,2100,5,15,60,60
# Saturday: 1031,1035,2,45,-1,0
# [Groups]
# testgroup : TESTGRP
[Domains]
cpnt: cpnt
cpnt: cpnt.gnb.ca
[Maiser]
Maiser: Maiser # 'Username' of mail server account
Helpfile: D:\MERCURY\Mercury\MAISER.HLP # Help sent on failed maiser requests
Lookupfile: D:\MERCURY\Mercury\MAISER.LKP # Format file for the 'lookup' command
Send_dir: D:\MERCURY\Mercury\SENDABLE # Directory for the 'send' command
Logfile: D:\MERCURY\Logs\MAISER.LOG # Mail server log file
Notify: D:\MERCURY\Mercury\TMP # Dir. for pending 'notify' commands
NoList: N # If 'Y', disable the 'list' command
Local_only: Y # If 'Y', local 'notify' commands only
[MercuryH]
Logfile : D:\MERCURY\Logs\MERCURYH.LOG
# Addressbook : \\CLIO\SYS\SYSTEM\MERCURY\PH.PMR
# MOTD : \\CLIO\SYS\SYSTEM\MERCURY\PH-MOTD.TXT
# Administrator : postmaster@clio.pmail.gen.nz
Timeout : 30
[Groups]
[Rewrite]
[Statistics]
StatFlags: 16 # Statistical reporting settings
STF_Hours: 24 # How often to write stat log files
STM_Hours: 24 # How often to e-mail stat log files
<p>We recently upgraded to Mercury 4.72 and Windows 2008 R2 on 32 bit architecture.</p><p>Occasionally , under high volumes our Mercury mail Queue is failing to process correctly. The Mercury service seems to be CPU bound, consuming 12%CPU on a Quad CPU for hours. No email is delivered. A restart of&nbsp; the service un-hangs it and the queue is quickly processed. </p><p>The log files show no errors.</p><p>&nbsp;</p><p>We operate Mercury mostly as an internal&nbsp; SMTP relay engine to push PDF docs through a larger Exchange PostOffice.</p><p>&nbsp;
</p><p>&nbsp;Below is our INI file. Any suggestions are greatly appreciated.</p><p>Peter Dunphy</p><p>&nbsp;</p><p>&nbsp;#&nbsp; MERCURY.INI generated by Mercury Setup
#
#
#&nbsp; Sample Bindery Mode MERCURY.INI file (in fact, the one I use on
#&nbsp; my production server). This one implements most of the possible
#&nbsp; switches for each module, but you can edit it to do less if you
#&nbsp; wish. All the fields shown below are described in the file
#&nbsp; MGUIDE.HLP which is supplied in the Mercury archive.
#
#&nbsp; Anything after a '#' to the end of the line is a comment and
#&nbsp; is stripped out before parsing. Trailing and leading whitespace
#&nbsp; is also stripped before parsing. Many sample commands have been
#&nbsp; left in this file commented out for reference purposes.
#
[General]
myname:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cpnt.gnb.ca&nbsp;&nbsp;&nbsp; # Canonical name for this server
timezone:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +0000&nbsp;&nbsp;&nbsp; # Time Zone to add to date fields
file_api:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # Use the file api instead of queues
mailqueue:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\QUEUE&nbsp;&nbsp;&nbsp; # Where mail should be put for delivery
smtpqueue:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\QUEUE&nbsp;&nbsp;&nbsp; # Where the SMTP client should look for mail
newmail_path:&nbsp;&nbsp;&nbsp; D:\MERCURY\MAIL\~N&nbsp;&nbsp;&nbsp; # Where to find the users' WinPMail mailboxes.
[Protocols]
D:\MERCURY\MERCURYS.DLL
D:\MERCURY\MERCURYP.DLL
# D:\MERCURY\MERCURYE.DLL
D:\MERCURY\MERCURYC.DLL
# D:\MERCURY\MERCURYD.DLL
# D:\MERCURY\MERCURYH.DLL
# D:\MERCURY\MERCURYF.DLL
# D:\MERCURY\MERCURYW.DLL
# D:\MERCURY\MERCURYX.DLL
# D:\MERCURY\MERCURYI.DLL
[Mercury]
failfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\FAILURE.MER&nbsp;&nbsp;&nbsp; # Delivery failure notification template
confirmfile:&nbsp;&nbsp; D:\MERCURY\Mercury\CONFIRM.MER&nbsp;&nbsp;&nbsp; # Delivery confirmation template
aliasfile:&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\ALIAS.MER&nbsp;&nbsp;&nbsp; # System-wide alias file
synfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\SYNONYM.MER&nbsp;&nbsp;&nbsp; # User synonym database
listfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\LISTS.MER&nbsp;&nbsp;&nbsp; # List of lists
logfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\system.log&nbsp;&nbsp;&nbsp; # Traffic logging file
logwidth:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp; # Width of address fields in logfile
retpath:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # Do/Don't use 'return-path' for errors
maxhops:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp; # Used to detect mailing loops
gullible:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # If NZ, don't validate 'From' fields
bitnethost:&nbsp;&nbsp;&nbsp; cunyvm.cuny.edu&nbsp;&nbsp;&nbsp; # Relay host for '.bitnet' rewrites
poll:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp; # Seconds between queue polling cycles
scratch:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Scratch&nbsp;&nbsp;&nbsp; # Where we can write temp files
returnlines:&nbsp;&nbsp; 15&nbsp;&nbsp;&nbsp; # How many lines of failed messages to return
postmaster:&nbsp;&nbsp;&nbsp; depcon&nbsp;&nbsp;&nbsp; # NetWare UIC of postmaster
broadcast:&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # Yes, we want broadcast notifications, but
receipts:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # ... no broadcasts for receipt confirmations
PM_notify:&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # Do/Don't send errors to the postmaster
change_owner:&nbsp; 1&nbsp;&nbsp;&nbsp; # Change message ownership to recipient
auto_tzone:&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # If NZ, obtain timezone information from OS
LogLevel:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25&nbsp;&nbsp;&nbsp; # System message reporting level
LogMax:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100&nbsp;&nbsp;&nbsp; # Maximum number of system messages to store
RetryPeriod:&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; # Period between job retries (minutes)
MaxRetries:&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp; # Maximum number of times a job can fail
TwoPasses:&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # If NZ, process submission queue in 2 passes
Autoaddress:&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # If NZ, auto-generate user addresses based on name
Daily_exit:&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # If NZ, auto-restart each day after maintenance
No_Areply:&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # If NZ, disable automatic replies system-wide
Alt_Forward:&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # If NZ, allow alternate forwarding specification
Maint_hour:&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; # Hour for daily maintenance (24-hour clock)
Maint_min:&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # Minute for daily maintenance
Retry_Mode:&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # If NZ, use progressive backoff for queue retries
Local_DSNs:&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; # If NZ generate Delivery Status for local users only
DSN_time1:&nbsp;&nbsp;&nbsp;&nbsp; 3600&nbsp;&nbsp;&nbsp; # Seconds deferred before first DSN is sent
DSN_time2:&nbsp;&nbsp;&nbsp;&nbsp; 7200&nbsp;&nbsp;&nbsp; # Seconds deferred before second DSN is sent
DSN_time3:&nbsp;&nbsp;&nbsp;&nbsp; 14400&nbsp;&nbsp;&nbsp; # Seconds deferred before third DSN is sent
Host_in_title: 0&nbsp;&nbsp;&nbsp; # If NZ, show hostname in system tray and taskbar
Lingering:&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; # Enable or disable 'lingering mailboxes'
Linger_Timeout: 60&nbsp;&nbsp; # Seconds before a lingering mailbox is shut down
Alert_Host:&nbsp;&nbsp;&nbsp; notify.pmail.com&nbsp;&nbsp;&nbsp; # Host to check for licensee advisories
Alert_Interval: 720&nbsp;&nbsp; # Frequency in minutes (min 240) for checks
Alert_Flags:&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; # Flags controlling advisory checks
[MercuryC]
Host : mailserv.gnb.ca
Failfile : D:\MERCURY\Mercury\FAILURE.MER
HELO : CPNT.GNB.CA
Poll : 30
Scratch : D:\MERCURY\Mercury
ReturnLines : 15
Timeout : 30
ESMTP : 1
POP3_Auth : 0
Logfile : d:\mercury\logs\smtpcli.log
Log_Verbose : 0
Session_logging : d:\mercury\logs\smtpcli
Session_logmode : 0
[MercuryE]
Poll : 15
Timeout : 60
# Session_logging : o:\mail\mercury\melogs
# Session_logmode : 1
# Nameservers : 139.80.64.1
[MercuryD]
scratch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury
# Timeout : 30
# Poll : 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # How often to check hosts for new mail (seconds)
[MercuryS]
Debug : 1
HELO : cpnt.gnb.ca
Logfile : D:\MERCURY\Logs\MERCURYS.LOG
Timeout : 30
Relay : 0
Strict_Relay : 0
Allow_Illegals : 0
SMTP_Authentication : 1
Auth_File : smtpauth
Session_logging : D:\MERCURY\Logs\smtp.LOG
Session_logmode : 0
Compliance_Settings : 0
Maximum_Failed_Rcpts : 4
Max_Relay_Attempts : 4
SSL_Mode : 0
ST_Blacklisting : 288
No_VRFY : 0
SMTP_ConnFlags : 0
[MercuryP]
Scratch : D:\MERCURY\Mercury
Logfile : pop3log.log
Stack : 32768
Mark_Read : 1
SSL_Mode : 0
Login_Disabled : 0
UIDL_nul_list : 1
New_UIDs : 0
No_NUL_passwords : 1
Timeout : 60
[MercuryX]
# Cmd_Delay: 10
# Cmd_Wait: 1
# IE4_Dialling: 0
# Use_ETRN: 1
# Clients_only: 1
# Sunday: 0800,1800,3,15,30,60
# Monday: 0830,2100,5,15,60,60
# Tuesday: 0830,2100,5,15,60,60
# Wednesday: 1500,1900,2,30,5,30
# Thursday: 0900,1900,2,30,0,0
# Friday: 0830,2100,5,15,60,60
# Saturday: 1031,1035,2,45,-1,0
# [Groups]
# testgroup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; TESTGRP
[Domains]
cpnt: cpnt
cpnt: cpnt.gnb.ca
[Maiser]
Maiser:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maiser&nbsp;&nbsp; # 'Username' of mail server account
Helpfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\MAISER.HLP&nbsp;&nbsp; # Help sent on failed maiser requests
Lookupfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\MAISER.LKP&nbsp;&nbsp; # Format file for the 'lookup' command
Send_dir:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\SENDABLE&nbsp;&nbsp; # Directory for the 'send' command
Logfile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Logs\MAISER.LOG&nbsp;&nbsp; # Mail server log file
Notify:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Mercury\TMP&nbsp;&nbsp; # Dir. for pending 'notify' commands
NoList:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N&nbsp;&nbsp; # If 'Y', disable the 'list' command
Local_only:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp; # If 'Y', local 'notify' commands only
[MercuryH]
Logfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; D:\MERCURY\Logs\MERCURYH.LOG
# Addressbook : \\CLIO\SYS\SYSTEM\MERCURY\PH.PMR
# MOTD : \\CLIO\SYS\SYSTEM\MERCURY\PH-MOTD.TXT
# Administrator : postmaster@clio.pmail.gen.nz
Timeout : 30
[Groups]
[Rewrite]
[Statistics]
StatFlags:&nbsp;&nbsp;&nbsp; 16&nbsp; # Statistical reporting settings
STF_Hours:&nbsp;&nbsp;&nbsp; 24&nbsp; # How often to write stat log files
STM_Hours:&nbsp;&nbsp;&nbsp; 24&nbsp; # How often to e-mail stat log files
</p>