Housekeeping

<< Click to Display Table of Contents >>

Navigation:  Modules > Asset Management >

Housekeeping

Summary

Housekeeping is a server-based console application that runs as a timed operation.  It handles an extensive list of general housekeeping tasks which include:

 

Setup the run

How many emails to process (100)

How many workflows to process (100)

Is there a specific publisher configured

 

Check for stuck jobs

Setting RemoveStuckHousekeepingHours

 

See if the global run flag is turned off

Setting GlobalHouseKeepingOn

 

Process assets marked for deletion

 

Check emails

Includes looking for workflow emails and finding attachments that may be associated with an import job

 

Check for files that need to be signed

There are workflows that stage certain files which require a digital signature

 

Check budget items

The MIE supports tracking IT budgets and line items for those budgets.  In addition, the MIE will automatically calculate actual expenditures against certain budgets (where the budgets are used for IT asset purchases and those assets are being tracked within the MIE).

 

Check to see if there are any WDA s/w removal jobs to stage

 

Check any records that require tokenizing

The MIE supports the ability to use alternate languages (other than English)

 

Check to see if there is asset custodian work to do

The MIE can be set to automatically determine the custodian of a given asset that is capable of being auto-discovered

 

Check to see if we have any counters that require updating.

Counters are used for a variety of purposes.  They may be used to calculate and display (via gauges on the dashboard) various metrics of interest (such as key performance indicators).  Counters can also be used to specify the current deployed position for various software authorizations.

 

Check the Wiki Authority

The MIE allows for the establishment of a WiKi master customer on each instance.  The MIE further allows for defining a single WiKi master as the WiKi authority.  During housekeeping, there is a check to see if the current customer being processed is defined as a WiKi master.  If yes, then a subsequent check is made to see if the instance is the WiKi authority.  If it is not, then a special matching algorithm is run to build a list of WiKi Authority titles that can be linked using a dropdown in the managed software screen for the individual MSL titles in the WiKi master customer.

 

Check to see if we have any AA rules linked to a master that require update

 

Check to see if we have any remediation tasks to perform

 

Check any license owners that need info sent to them (deprecated)

 

Check condition-based triggers

These fire workflows

 

Check for workflow timeouts

 

Check for any decision trees

A Decision Tree is used to run records of a target table through a battery of tests (usually to test for data integrity), finally converging on a single outcome and remediation advice (if required) and/or action.

 

Check for any workflow queued entries that have been submitted but need to be progressed

 

Check for job notifications

 

Check run-once tasks

 

Trim files on the server

Setting DaysToKeep

 

Trim IMAC tables

There are many settings, including catch point roles,  that determine the retention periods for different types of records.

 

Trim log tables

 

Distil Ajax logs

 

Check to see if it's time to run asset health

Only run this in the fifteen minute interval between midnight and 00:15

The MIE can be set to test the "health" of asset records - essentially scoring each active record based on criteria that is provided via several system settings.

 

Host customer checks

Check for spyware

Update system tables

Trim error files

Clean Xtables

Update attachment contacts

Check archive customers

Clean up the UDF cross link table.  Will remove links to MSL or master product records that have been removed.

 

Scalable Solution

Since housekeeping can be a potentially massive job (number of DCLA records to process has a significant effect), the housekeeping engine runs as a process on the MIE. The process monitors the MIE Job Queue. When it sees a job in the queue in “SUBMITTED” status, it picks it up, changes the status to “PROCESSING”, and begins to process the job. The service monitors the queue in a very tight loop. So that a processing job that gets kicked off does not take the attention of the whole server (making other jobs wait in the queue until it is done),  each housekeeping job is run as a separate thread. That way, there can be as many housekeeping jobs running in parallel as the server can support, which is based on its horsepower and whatever else it’s being asked to do.

Job Flow

A user on the MIE interactively places a consolidate job in the queue by using the MIE's Timed Operations capability.  The status is set to “SUBMITTED”. The server engine picks up the job and sets the status to “PROCESSING”.  When complete, the server engine sets the status to “COMPLETE”.  The MIE picks up all jobs in status complete and sends a notification email to the user who submitted the job, changing the status to “NOTIFIED”.

Job Logging

Warnings and errors, along with the results of the variety of tasks performed, and the time (in seconds) that it took to run the job are logged to the job log. The entry in the job queue that kicked off the job is linked to the job log entry. There is potentially quite a bit of information logged to the job log.