Milan uses a number of background services, which collectively run as the Windows service Milan Background Jobs, to perform notification, synchronization, and maintenance operations. To configure background services, open the Manage Background Services page (.../milan/policycenter/BackgroundServicesAdmin.aspx) from Administration → Milan Server → Background Services. Additional settings for each background services can be found in Administration → Milan Server → Application Configuration → App Settings.
Service Name | Function | License Requirement |
---|---|---|
Access Wall Expiry Service | Removes users from the SecurityAccess and SecurityWall tables when Security Center inclusion/exclusion policies expire. | Ethical Wall |
Acknowledgment Timer Service | Sends acknowledgment email notifications related to legal holds. | Ethical Wall/Legal Hold |
Activity Report | Generates WorkSite usage statistics. | Advanced Analytics |
Client Matter Update Tracker Service | Logs the date of the most recent activity in a client matter to the Milan database | Ethical Wall |
Daily Schedule Timer Service | Runs all scheduled jobs. | None |
Dynamic Wall Rule Timer Service | Updates competitive polices. | Ethical Wall |
Email Dispatcher | Sends email notifications generated by Milan | None |
EMM Log Service | Parses log files generated by WorkSite's EMM service and saves the information to the Milan database. | Email Queue Management |
EMM Statistics Tracker Service | Captures EMM-related statistics, which are displayed in EQM as graphs. | Email Queue Management |
Exchange Metadata Tracker Service | Fetches metadata from the Exchange server for linked folders. | Email Queue Management |
Folder Notification Dispatcher Task | Sends notification messages that have been queued by the Folder Notification Enqueuer Task. | Workspace Management |
Folder Notification Enqueuer Task | Queues notification messages related to folder templates. | Workspace Management |
Import WorkSite Data Service | Imports data from WorkSite to Milan | None |
Input Queue Archive Retention Service | Moves old entries from the InputQueue table to the InputQueueArchive table. | Refile Service |
Legal Hold Declare Service | Applies and removes legal holds in WorkSite by declaring or undeclaring documents as records. | Legal Hold |
Log Archive Service | Moves old entries from the EventLog table to ArchivedEventLog and deletes old entries from ArchivedEventLog. | None |
Log Retention Service | Deletes HeartBeat entries from the EventLog table. | None |
Log Retention Service | Removes old entries from the PolicyServiceLog table. | None |
Matter Team Flattener Service | Removes Matter Teams from inactive client matters | Ethical Wall |
Milan Health Check Service | Verifies Milan settings. | None |
Moved Documents Delete Service | Deletes documents that have been successfully moved. | Move Archive |
Policy Eventing | Applies policies to WorkSite, file shares, Elite, and SQL based systems | Ethical Wall |
Policy Health Check | Checks whether external systems conform to the current policies and fixes inconsistencies | Ethical Wall/Security Center |
Policy Verification Service | Re-applies all policies nightly. | Ethical Wall |
Recycle Bin Timer Service | Deletes documents from WorkSite that have been in the recycle bin for more than a certain number of days. | Recycle Bin/Move Archive |
Workspace Queue Cleaner Service | Deletes old records from the Workspace Queue. | Service Center |
Workspace Quota Tracker Service | Notifies users when their workspace has exceeded a certain size. | Workspace Management |
Setting | Description |
---|---|
ack-templates-path | A local path to the email template for acknowledgment notifications. |
Setting | Description |
---|---|
worksite-db-list-for-policy | A comma-separated list of WorkSite databases to which Milan must apply policies defined by the administrator. Database names must be in the format dms#odbcdbname. For example, if the server name is vmdemo, and the WorkSite database name is active, the value should be vmdemo#active. |
The Client Matter Update Tracker Service monitors whether client matters have been updated, documents have been checked in or out, or document profiles have been altered and updates the Milan tables to reflect the changes. If an action related to a client matter takes place in WorkSite, this service either updates the updatedTime column for the Client Matter in this table or creates an entry if one does not exist.
If this service fails to run, it is possible to manually perform the task by executing the following SQL query, which returns the most recent running time for each server.
WITH cte AS
(
SELECT Component.value('@serverName', 'varchar(MAX)') AS ServerName,
Component.value('@databaseName', 'varchar(50)') AS DatabaseName,
Component.value('@lastRunningTime', 'varchar(50)') AS LastRunningTime
FROM Milan.KeyValuePair r
CROSS APPLY r.Value.nodes('/metaDataList/metadata') AS T1(Component)
WHERE [Key] = 'Milan.PolicyCenter.Lib.ClientMatterUpdateTrackerService'
)
SELECT *
FROM cte.
The Email Dispatcher sends notification email generated by Policy Center, Share Document, Self-Service, Export Document, and Analytics. All pending messages are stored in the Milan.NotificationEmailQueue table, which is regularly processed by the Email Dispatcher based on the value specified in the Execution time interval setting. Be default, the service runs every 30 seconds.
Setting | Description |
---|---|
email-dispatch-delay-interval | Specifies how long the service should wait, in minutes, before sending a notification email |
Setting | Description |
---|---|
emm-log-configuration-path | A UNC pathA Windows network path that follows the Universal Naming Convention. UNC paths must be in the format \\<Host Name>\<Folder Name> to the WCSE logs; the Milan service account must have at least read access to the path. To use EQM with multiple WorkSite servers, list the paths to the logs for each server, separated by a comma, e.g. WorkSiteServer1_SourceLogFile1#UNCPath1, WorkSiteServer2_SourceLogFile2#UNCPath2, ... |
emm-log-file-date-format |
Date format to use when parsing logs from WorkSite 8.5 servers. If the date format of only one server is specified, providing just the format, e.g. M/d/yyyy h:mm:ss tt, is sufficient. To specify the date format for more than one server, each format must be prefaced by the server name in the format SERVER1#Format1,SERVER2#Format2, ... Note: You can only specify one date format for each server. Additionally, the provided format must be used consistently throughout the logs. |
emm-log-expiration |
Specifies how many days' worth of log entries to retain on the Email Management page. Note: If the value for this setting is reduced from its current value, the entries older than the new value are no longer displayed on the page; once removed, entries are not parsed again. |
Setting | Description |
---|---|
worksite-db-list-for-policy | A comma-separated list of WorkSite databases in the format <Server Name>#<Database Name>, e.g. milanserver#Active,milanserver#Archive. |
Setting | Description |
---|---|
store | Path to folder where folder notifications are temporarily saved before being sent. |
Setting | Description |
---|---|
store | Path to folder where folder notifications are temporarily saved before being sent. |
The HeartBeat EventLog Deletion service deletes HeartBeat log information from the EventLog table.
To manually run the stored procedure used by this service, execute the following script against your Milan database.
DECLARE @return_value int
EXEC @return_value = [Milan].[DeleteLogEntryByLogLevel]
@logLevel = N'HEARTBEAT'
SELECT 'Return Value' = @return_value
GO
The Import WorkSite Data Service is used to import data (users, groups, clients, and matters) from WorkSite into Milan.
To manually run the ImportDataFromWorksite stored procedure associated with this service, execute the following script against the Milan database:
DECLARE @return_value int
EXEC @return_value = [Milan].[ImportDataFromWorksite]
@worksiteServerName = NULL,
@worksitDbName = N'Archive',
@importUsers = 1,
@importGroups = 1,
@importClientMatters = 1
SELECT 'Return Value' = @return_value
GO
Parameter | Description |
---|---|
WorksiteServerName | The server name for the WorkSite database. If there is no linked server, this should be set to NULL. |
WorksiteDbName | The name of the WorkSite database from which data will be imported into the Milan database. |
ImportUsers | A flag that specifies whether to import users. The value must be set to either 1 (import) or 0 (do not import). |
ImportGroups | A flag that specifies whether to import groups. The value must be set to either 1 (import) or 0 (do not import). |
ImportClientMatters | A flag that specifies whether to import client matters. The value must be set to either 1 (import) or 0 (do not import). |
Setting | Description |
---|---|
input-queue-archive-retention-months | The maximum number of months a log entry can remain in the InputQueue. Entries that are older than this value are removed from the table by the Input Queue Archive Retention Service. |
Setting | Description |
---|---|
undeclare-documents-on-expired-holds | Undeclare documents as records when a legal hold expires. |
The Log Archive Service archives items in the Event Log.
Setting | Description | Values | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
log-level-retention-period |
A comma-separated list of retention periods, in days, for each log type. When the Log Archive Service runs, entries in the EventLog table older than the corresponding retention period are moved to the ArchivedEventLog table, while archived logs older than the retention period are deleted from the ArchivedEventLog table. Each item in the list must be written in the format <LogLevel>=<RetentionPeriod>, e.g. DEBUG=1, INFO=14. If no value is specified for a particular log level, the default retention period is used. Note: Because retention periods also apply to archived logs, the effective lifetime of a log entry is twice the value specified for the corresponding log level. |
|
||||||||||||||||
log-archiving-exclusion-level | A comma-separated list of log levels to exclude from archiving. For example, setting this to HeartBeat ensures that the Heartbeat log entries will not be archived. |
DECLARE @return_value int
EXEC @return_value = [Milan].[ArchiveEventLogRecords]
@numberOfDaysForActiveLog = 6,
@exceptedLogLevel = 'HEARTBEAT'
@logLevelToArchive = 'INFO'
SELECT 'Return Value' = @return_value
GO
Parameter | Description |
---|---|
numberOfDaysForActiveLog | The number of days before log entries are archived |
exceptedLogLevel | The log type to be excluded from archiving |
logLevelToArchive | The type of log entry to be archived |
The Log Retention Service, formerly known as Heartbeat Log Deletion Service prior to 3.5 Update 4, removes old entries from various Milan tables based on values specified in the application setting log-level-retention-period.
Specifically, the service:
The Matter Team Flattener service removes matter teams from client matters after a specified period of inactivity and adds the users from that Matter Team to the file permissions for the relevant folders and documents.
Setting | Description |
---|---|
matter-team-inactivity-months-to-flatten-out | The number of months since the last update of a Client Matter that must elapse before the flattener service removes a Matter Team. The flattener service checks the UpdatedTime field in the ClientMatterUpdateLog table and compares it to the value for this setting. For example, when the value for this setting is 6, the service will flatten a Matter Team if the UpdatedTime for the Client Matter is greater than six months prior to the current date. |
Setting | Description |
---|---|
moved-document-retention-hours | The minimum number of hours a document must be retained before the Moved Documents Delete Service permanently deletes the file. |
The Policy Eventing service processes and applies policies on linked systems (WorkSite, file shares, SQL-based systems).
Setting | Description |
---|---|
draft-policy-Notification-emailList | When a draft policy is created, all policy-admin users on this comma-separated list receive a notification email with a link to the policy. |
user-image-path | The path for user images displayed in the user drop-down menus. |
policy-document-path | The path for the root folder where attached policy documents are stored. |
The Policy Health Check service checks that the items in the linked WorkSite database conform to the policies set in Milan. If the service finds an item with incorrect security settings, it queues the item to be processed by the Policy Host Service.
If for some reason the Policy Verification Service fails to run between 11 p.m. and 6 p.m., it is possible to run the service immediately by clicking the Run Now button on the Background Services admin page.
The Policy Verification Service runs every night from 11 P.M to 6 A.M and reapplies all policies set in Milan to WorkSite databases, file shares, and SQL-based systems. If the Policy Verification Service fails to run, it is possible to run the service immediately by clicking the Run Now button on the Background Services admin page.
Setting | Description |
---|---|
recycle-days | The number of days an item will be retained in the recycle bin before it is permanently deleted by the Recycle Bin Timer Service. |
Setting | Description |
---|---|
completed-queue-age | The number of days an entry in the WorkspaceQueue table will be retained before being deleted by the Workspace Queue Cleaner Service. |