Overview

The spool cleaning mechanism is there to ensure that no jobs remain orphaned after specified retention period. The Dispatcher Paragon server controls the lifecycle of all stored jobs while the actual job data could be on client machines. Should those be unavailable (in sleep mode, etc.) at the time when the job should be deleted, the job could remain in the spool folder. There is a periodical cleaning trigger which removes those orphaned jobs from all FlexiSpoolers in the system. All FlexiSpoolers perform cleaning at the trigger time if they are running, if not, they perform it at the earliest opportunity.

Configuration

  1. Log in to the SafeQ Web Interface with sufficient rights to change system setting (for example, "admin") and access the Tenant view. Go to System > Spooler > Expert tab.
  2. Set Automatic spool cleaning (spoolerCleanerSchedule) cron trigger to a value you need. The default is "0 0 0 * * ?" which means cleaning will trigger once a day at midnight (or the first time the machine is turned on/awakened if it was not running at midnight.
  3. Press Save Changes to apply these settings.

More on cron triggers: https://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html.

Once the property value is configured it will be applied once is replicated on FlexiSpooler and reflected on spooler.log like:

[spoolerCleanerSchedule: - | 0 0 0 * * ?]

In case of Failover scenarios, the cleaning process will be triggered automatically after the failover applies or the connection to the Spooler Controller is restarted. The same behavior applies when the FlexiSpooler service is restarted.

The time of the last cleaning cycle performed will be persisted on" cleaner.time " file located inside the " C:\DispatcherParagon\FSP\Service\ " directory. This file will be created on demand after the first cleaning is triggered.

If the replication of jobs is enabled to shared folder the cleaning process will affect it too.

Notes

  • The clean mechanics has protective period of 5 min. It means that Jobs that are not fully received and are not older than this period are not deleted.
  • Jobs that are not fully processed because of communication problems are not deleted immediately and stays in jobstore for 2 clean periods (or until are confirmed from Spooler Controller). There could be a file (lastCleanReceivingJobs.json) that contains id's of the jobs that was present during first or these clean periods.