Advanced Topics - System Internals - Scheduled Tasks

Overview

MOVEit DMZ includes several applications which run periodically on the server, collectively called the Scheduled Tasks. These applications take care of maintaining a MOVEit DMZ system, and executing time-based actions such as delayed notifications and password expirations. The applications are run by two tasks in the Windows Scheduled Tasks list, which are added automatically during the MOVEit DMZ installation.

There are two groups of Scheduled Tasks, with some applications being in both groups. The first group is the "DayTime" group, which, by default, runs every 5 minutes of every day between 2AM and 12AM. Applications in this group are those which need to run throughout the day, such as for issuing delayed notifications, and cleaning up cached entries in the database. The Windows Scheduled Tasks entry that runs this group is called "MOVEitDayTimeTask".

The second group is the "Nightly" group, which, by default, runs every night at 1AM. Applications in this group are mostly responsible for checking the consistency of the MOVEit DMZ system, archiving logs and secure messages, and expiring data. The Windows Scheduled Tasks entry that runs this group is called "MOVEitNightlyTask".

In version 3.4 a batch file called "RunOneTask" was also introduced to allow administrators to selectively run individual tasks. More information about this utility can be found below.

Below is a list of the applications in each group.

DayTime Tasks

DeleteParmFiles

EmailNotify

TableCleanup

"Nightly" Tasks

ArchiveLog

ArchiveMessages

ConsistencyCheck

CreateReports

DeleteParmFiles

See above.

DeletePendingUsers

EmailNotify

See above.

GarbageCollection

PasswordAgeUsers

SyncLDAP

SysCheck

TamperCheck

A "MOVEit DMZ Log Tamper Check" link that manually starts TamperCheck (and displays running results in a command-line window) is available from the Start menu under the MOVEit DMZ program group. Any TamperCheck that ends with the phrase "Completed with errors" should be considered a failed TamperCheck; the exact reason for the failure will be explained in the log and in the notification email messages.

Logging and Error Handling

Each one of these applications writes its own log file to the common MOVEit "Logs" folder. (Typically, this is something like "D:\moveitdmz\logs"). Each run of generates a new log (subsequent runs do not append to an existing log), so old logs are automatically "grandfathered" so that up to 5 old copies of each scheduled application's log file are available.

Each scheduler application also writes out a log file specifically for errors that it encounters. These files will end in a ".err" extension, and will also be automatically grandfathered, just as the normal log files are. When no errors occur, the error log file will be empty. Otherwise, the specifics of the error encountered will be written out in the file. Also, if an error does occur, an email message will be sent to the "Send Errors To" email address configured for the system informing the recipient which host the error occurred on and which application encountered the error. The contents of the error log file will be included in the body of the email, and the appropriate normal log file for the application will also be attached to the email.

Manually Running a Single Task ("RunOneTask")

The "daily" and "nightly" sets of scheduled tasks may be run manually as a set at any time through the Windows Scheduled Task interface. However, to run individual tasks within a set, you must use a batch file utility called "RunOneTask", also located in your "Scheduler" directory.

D:\MOVEitDMZ\Scheduler>runonetask
Usage:  RunOneTask NonWebDir moveitDSN TaskToRun

If you have installed MOVEit DMZ into a folder whose name uses spaces, you should use the "8.3" version of any foldernames provided to ensure RunOneTask is run properly. For example, if I have installed MOVEit DMZ into the "D:\m i\mi dmz" folder (instead of the usual "D:\moveitdmz\midmz") then my RunOneTask command should resemble the following example.

D:\m i\mi dmz\Scheduler>runonetask d:\mi09f8~1\midmz~1 moveitdmz syscheck
NonWebDir=d:\mi09f8~1\midmz~1
SchedLogDir=d:\mi09f8~1\midmz~1\logs
BEGIN One Task Run of syscheck
        1 file(s) moved.
        1 file(s) moved.
END One Task Run of syscheck

MOVEit SysStat Service

In addition to the two groups of Scheduled Tasks, there is one more application which, while not directly scheduled, does run periodically. This is the SysStat service, which is responsible for periodically recording several performance statistics in a table in the MOVEit DMZ database. These values can be used to get a good overall picture of the health of the server.

By default, the SysStat service "wakes up" every 323 seconds (roughly five minutes) and records samples of the various performance statistics that it keeps track of. The default 323 second sleep period is chosen to make sure the service remains offset from the more even 5 minute schedule of the daytime scheduled tasks. Every 72 cycles, the service also does a complete check of disk utilization for each of the various MOVEit DMZ components. This operation is performed only periodically because the disk utilization values typically change far more slowly than other system performance statistics, and because the disk check takes longer to accomplish and requires more system resources than the sampling of the other statistics. Also for this reason, the SysStat service will not do a full disk utilization check on the first run after it starts up. Instead, the first disk check will be performed at a random future run, and then periodically after that.

The above configuration values are customizable, as is the length of time which the service keeps statistics in the database for (the default is 30 days). The values can be changed on the Miscellaneous tab of the MOVEit DMZ Configuration Utility.

The SysStat service stores its statistics samples in the "sysstats" table in the MOVEit DMZ database. The fields available in the table are listed below, along with descriptions of their contents. Fields prefixed below with an asterisk indicate those fields which are only populated every 72 cycles by default. During off-cycles, these fields are set to 0.

If serious errors occur during a statistics gathering cycle, SysStat will report them by sending an email message to the Send Errors To email address configured on the system, as well as by logging the errors in the Windows Application Event Log. In most cases, SysStat will record the information it was able to gather and continue its work. If SysStat is unable to gather information on a particular field, it will typically record a value of 0 or -1 for that field. The value -1 indicates an unknown error occurred. The value 0 is used in the case of a known error occurring (most often a process that SysStat is gathering information on is not running). Note that a value of 0 for a field does NOT always imply that an error occurred (CPUUsagePercent is often 0 for processes that are running but not doing anything).

A value of -1 is also recorded in certain database- and filesystem-related fields when the database and/or filesystem is remote. This is usually the case when MOVEit DMZ is in a resilient or webfarm configuration. Additionally, database performance statistics will only be recorded for a local MySQL database; local and remote SQL Server databases will not be queried for performance statistics.

MOVEit DMZ Helper Service

The MOVEit DMZ Helper service performs a number of utility functions for other MOVEit DMZ services.