DHAP Features

Document ID: 10400

Synopsis

A number of new properties are now available (in SMTPRA.exe 7.0.3.19 and later) to be modified via the registry in regards to purging a DHAP list.

More Information

DHAP Features

A number of new properties are now available (in SMTPRA.exe 7.0.3.19 and later) to be modified via the registry in regards to purging a DHAP list.

The New Functionality

When a new connection comes in to SMTPRA the local in memory cache is checked to see if it must be updated. By default this occurs every sixty seconds. If the cache is dirty the date in which it was last purged is compared against the current time and if this time difference is greater than the stated purge frequency the DHAP process will note that a purge is required.

When the method RemoveExpiredStats() is called and a purge is required the current local time is checked to determine if it is within the purge window. If so the date of the last purge is read again and then immediately updated to help prevent, but not completely protect against, multiple machines purging the cache at the same time. If a purge is still required the purge process will start.

When the purge process executes the DHAP probation list will be read and all entries which were last placed on probation more than (the BlockDuration + PurgeAge) hours ago will be candidates for purging. If PurgeKeepRepeatOffenders is set to TRUE then all candidates whose count greater than or equal to 2 are exempted from purging. All remaining candidates are then purged.

New Properties

Registry Connector

To implement these properties add the new property to HKEY_LOCAL_MACHINE\SOFTWARE\Rockliffe\MailSite\DHAP within the registry.

SQL Connector

To implement these properties enter into the 'MailServerProperties' table the following:
  • ServiceName: dhap
  • PropertyName: PurgeFrequency
  • ServerRoleID: 0(dependant on your system configuration)
  • PropType: 4 (equivalent to DWORD)
  • PropIntValue: 84(default value for this property)
  • PropStringValue:(leave blank)

The Properties

PurgeFrequency
  • The minimum number of hours that must elapse between execution of a process to purge the probation list of stale entries. The default value permits execution not more than twice per week (168 hours in a week/ 2 = 84)
    • Type: DWORD
    • Range of Values: [0,232-1]
    • Default Value: 84
PurgeWindowStart
  • The number of minutes elapsed after midnight local time until the start of the time window when the DHAP purge process has permission to execute.
    • Type: DWORD
    • Range of Values: [0, 1439] (Range is between 00:00 and 23:59) local time.
    • Default Value: 180 (Default is equivalent to 3AM local time.)
PurgeWindowLength
  • The time in minutes that the time window remains open and the purge process has permission to execute.
    • Type: DWORD
    • Range of Values: [0, 1440] (Range is between 0 minutes (0 hours) and 1440 minutes (24 hours))
      NB: If value is 0 DHAP purge is disabled. If value is 1440 Purge process has permission to execute at any time.
    • Default Value:180 (Default is equivalent 180 minutes (3 hours))
PurgeAge
  • Age in hours specifying the number of hours that must elapse since a remote host was last on probation before it is considered stale and purged from the property list subject to the setting of the PurgeKeepRepeatOffenders property. (see below)
    • Type: DWORD
    • Range of Values: [0, 232 - 1]
      NB: If value is 0 all hosts not currently on probation will be purged whenever the purge process executes.
    • Default Value: 168 hours (one week)
PurgeKeepRepeatOffenders
  • Psuedo-boolean property that if TRUE excludes all DHAP repeat offenders from the purge process regardless of the amount of time that has elapsed since the host was last placed on probation.
    • Type: DWORD
    • Range of Values: [0,1]
    • Default Value: 1 (True)
LastPurged
  • Time that the probation list was last purged defined as seconds elapsed since start of the epoch (Jan 1, 1970).
    • Type: DWORD
    • Range of Values: [0,232-1]
    • Default Value: 0