Community Discussions and Support
Mercury Service Queue Hang on W2008

Any interventions at the file level within Mercury, except policies invoked, is considered dangerous. That said, we manipulate several config-files automatically without problems, but never queue directories - and it has worked without problems for a decade and a half now.

<P>Any interventions at the file level within Mercury, except policies invoked, is considered dangerous. That said, we manipulate several config-files automatically without problems, but never queue directories - and it has worked without problems for a decade and a half now.</P>

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  the service un-hangs it and the queue is quickly processed. </p><p>The log files show no errors.</p><p> </p><p>We operate Mercury mostly as an internal  SMTP relay engine to push PDF docs through a larger Exchange PostOffice.</p><p>  </p><p> Below is our INI file. Any suggestions are greatly appreciated.</p><p>Peter Dunphy</p><p> </p><p> #  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>

here is a ProcessExplorer screen while hung:

 

Process Explorer screen print 

<p>here is a ProcessExplorer screen while hung:</p><p> </p><p><img src="http://i42.tinypic.com/20sc6jo.jpg" title="Process Explorer screen print" alt="Process Explorer screen print" mce_src="http://i42.tinypic.com/20sc6jo.jpg" height="1600" width="1600"> </p>

Do you have any daemons active (like ClamWall)? Any content control testing enabled? Is there any real-time antivirus program running on the server? Any other programs or services that might access the same folders as Mercury?

/Rolf 

<p>Do you have any daemons active (like ClamWall)? Any content control testing enabled? Is there any real-time antivirus program running on the server? Any other programs or services that might access the same folders as Mercury?</p><p>/Rolf </p>

no daemons, no filtering, but we are running the Windows firewall with holes for ports 25 and 110. Also we were running McAfee AV and now I have turned the File Access Scan off as it I did suspect it could be an issue.

 

On a related note, my 3rd party SMTP client, written in DOT-NET has encountered the issue descirbed in this link:

 

http://connect.microsoft.com/VisualStudio/feedback/details/146711/smtpclient-does-not-gracefully-close-the-underlying-tcp-ip-connection#details

 

Is it possible this is causing the issue?

 

Peter

<p>no daemons, no filtering, but we are running the Windows firewall with holes for ports 25 and 110. Also we were running McAfee AV and now I have turned the File Access Scan off as it I did suspect it could be an issue.</p><p> </p><p>On a related note, my 3rd party SMTP client, written in DOT-NET has encountered the issue descirbed in this link:</p><p> </p><p><a href="http://connect.microsoft.com/VisualStudio/feedback/details/146711/smtpclient-does-not-gracefully-close-the-underlying-tcp-ip-connection#details" title="http://connect.microsoft.com/VisualStudio/feedback/details/146711/smtpclient-does-not-gracefully-close-the-underlying-tcp-ip-connection#details" mce_href="http://connect.microsoft.com/VisualStudio/feedback/details/146711/smtpclient-does-not-gracefully-close-the-underlying-tcp-ip-connection#details">http://connect.microsoft.com/VisualStudio/feedback/details/146711/smtpclient-does-not-gracefully-close-the-underlying-tcp-ip-connection#details</a></p><p> </p><p>Is it possible this is causing the issue?</p><p> </p><p>Peter </p>

With the right ports open Windows firewall won't cause any problems. McAfee AV on the other hand could definitely interfere.

If the misbehaving .net component fails to close connections properly you should see some trace of this in the logs. It wouldn't cause a lot of processor load for Mercury, though, unless perhaps if there was a big number of simultaneous connections from that client. At some point Windows would run out of available TCP connections as well, presumably.

/Rolf

<p>With the right ports open Windows firewall won't cause any problems. McAfee AV on the other hand could definitely interfere. </p><p>If the misbehaving .net component fails to close connections properly you should see some trace of this in the logs. It wouldn't cause a lot of processor load for Mercury, though, unless perhaps if there was a big number of simultaneous connections from that client. At some point Windows would run out of available TCP connections as well, presumably.</p><p>/Rolf </p>

no recurrence of the issue since turning off McAfee File Access Scan.

 

Peter[:)]

<p>no recurrence of the issue since turning off McAfee File Access Scan.</p><p> </p><p>Peter[:)] </p>
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft