Create a nightly maintenance job

  • Updated

The Configured Commerce database contains a Nightly Maintenance stored procedure which cleans up abandoned shopping cart records, maintains the application log and removes obsolete scheduled task records. The Nightly Maintenance stored procedure should be scheduled to run each night during non-peak hours. This can be accomplished within your SQL server or by creating a Nightly Maintenance Scheduled Task within the Optimizely Configured Commerce Admin Console. There are four finger tabs related to the creation of an Integration Job: Details, Steps, Parameters, and History.

Details finger tab

  1. Click Add Job Definition.
  2. Populate the following fields as shown:
    Field Name Field Properties
    Job Name Something akin to "Nightly Maintenance Job"
    Job Type Execution
    Connection* Internal
    Preprocessor None
    Integration Processor None
    Post Processor ExecuteStoredProcedure

    *The Connection is defined by the Connection created in the Connections page: Admin Console > Administration > Jobs > Connections. It is here that type of connection is defined:

    • SqlServer
    • WebService
    • OleDb
    • Odbc
    • SapDotNetConnector
    • XmlFile
    • FlatFile
    • Internal
  3. Scroll down to the Notifications section, populate the following fields:
  4. Scroll down to the Run Options section, populate the following fields:
    Fields Field Properties
    Max Errors Before Failing The number of errors allowed to occur during processed before the job terminates.
    Max Warnings Before Failing The number of warnings allowed to occur during processed before the job terminates.
    Max Deactivation % The number of products deactivated by the integration job before it triggers a failure. This is to protect from misconfigured or incorrect integration job definitions.
  5. Scroll down to the Recurrence section, populate the following fields:
    Fields Field Properties
    Run as a Recurring Job Choose whether to run this job as a recurring job.
    Start Date/Time Date and time for when the first job will start.
    End Date/Time Date and time for when the last job will finish.
    Repeat Every Enter the number of recurrences in relation to the frequency of None, Minutes, Hours, Days or Months. This setting does not adjust for Daylight Savings Time, as shown by the tooltip.

Steps finger tab

Nothing required within the Steps finger tab.

Parameters finger tab

  1. Go to Parameters finger tab.
  2. Click Add Job Definition Parameter.
  3. For Stored Procedure, enter the name "NightlyMaintenance" as the default value. This directly correlates to the name of the stored procedure that is deployed with the platform.
  4. Select the Value Type of String.
  5. Enter the Default Value.
  6. Enter the Prompt as the Stored Procedure Name.
  7. Click Save and then click Back or using the breadcrumb trail, click Nightly Maintenance Job. The newly created parameter is displayed within the Parameters finger tab list.

History finger tab

The History finger tab provides a list of previously run jobs and their respective metadata.

Manually running the job

  1. To manually start the job, click More Options and select Schedule Job.
  2. From this window, choose the Date/Time
  3. Using the Yes/No toggle, decide if it should run as a Real Time Job or not.
  4. Click Schedule Job.

In recent releases of Configured Commerce, the nightly maintenance job includes a step that will attempt to reactivate untrusted foreign keys within the database. Most databases don't have these, but some older databases do, which can lead to unexpected results from some queries. If reactivating the foreign key is not successful, a warning will be logged indicating the problem; this means that bad data is present in the database. Once the bad data is cleaned, the next run of nightly maintenance should be clear.