XMPie Server Maintenance

Summary: This article describes the maintenance tasks that are needed to maximise the performance of your XMPie server and to make sure you are able to recover from any critical failures.

Audience: The tasks outlined in this document should only be performed by the system engineer who is responsible for the maintenance of the XMPie PersonalEffect servers.

Prerequisites: This article assumes a high level of Microsoft Windows Server knowledge as it is possible to cause irreversible damage to the XMPie PersonalEffect installation if not followed correctly. Before running any of these tasks, it is recommended to back up the SQL server.

Important: It is the customer’s responsibility to provide sufficient resources to the system, such as free disk space, database storage and memory. Falling too low on resources might result in system slowdown, failures and unexpected behavior.

Overview

To maximise performance of XMPie PersonalEffect, it is important to maintain your servers correctly. The following topic will guide you through some recommended maintenance tasks that should be performed to ensure that your system continues to run smoothly and to help you fix any issues that may arise.

The GDPR (General Data Protection Regulation) mechanism, which was developed by XMPie in order to assist customers in complying with the GDPR regulations, can be utilized as a cleanup tool for automatic deletion of local data sources, recipient lists, jobs and outputs. Activating this mechanism will save you the need to perform manual cleanup operations, and thus will prevent system downtime. Detailed information about it can be found in the uProduce online help.

Monitoring the XMPie System

Before performing any maintenance task, it is recommended that you take a look at the status of your system. This can be done using the uProduce monitoring tool.

Open the tool by clicking the Monitor button on the navigation bar. This button is only visible to the users who are granted permissions to view the monitoring information.

The following monitoring capabilities are given:

  • Disk Space monitoring: Notifies you about the amount of available disk space and issues alerts when the minimum disk space threshold is reached.

  • Database size monitoring: Monitors the used database space to determine whether you need to increase its size or remove unneeded objects.

  • Services monitoring: Displays the status of XMPie services for each XMPie server. If a service stopped running, it is automatically marked with an error status.

In case an error or a warning, an email notification is sent to the administrator.

Detailed information about these monitoring capabilities is found in the uProduce online help.

Maintenance Tasks

To maintain performance, it is important to run the tasks that are outlined in this document at regular intervals. You can refer to the chart below to see the recommended interval for each task.

Important! These tasks should only be performed during off-peak periods, when your server is not in use.

Task Description

Recommended

Windows System Components

Cleanup using RESTful API

Monthly

Install Windows Updates

Weekly & before upgrade

Check Windows Time

Weekly*

Defragment the file system

Monthly

Check disk usage

Weekly & before upgrade

SQL Database Components

Cleanup using RESTful API

Monthly

Check SQL database file size

Weekly (or before any large campaign)**

Rebuild SQL database indexes

Monthly

XMPie Server Components

Cleanup using RESTful API

Monthly

Back Up the XMPie Server

Daily & before upgrade

Delete uProduce temporary files

Monthly

Remove jobs from the Job Center

Monthly

Remove events from the XMPie Tracking database

Weekly (or before any large campaign)**

Delete old hosted data sources

Monthly

* If your Windows time is correct each time you check, it means the NTP server is functioning correctly and you can cut back on the frequency of this maintenance task.

** This task is critical if running Microsoft SQL Express Edition.

Maintaining XMPie Server Components via the uProduce Dashboard

It is possible to run maintenance and cleanup processes via the uProduce dashboard. For details, see the uProduce Maintenance page. This ability is available starting from version 12.2.

It is recommended that you back up your data bases prior to performing any of these maintenance processes.

Maintaining XMPie Server Components via the uProduce RESTful API

It is possible to run maintenance and cleanup processes via the uProduce RESTful API. To use this API you must have an API license.

It is recommended that you back up your data bases prior to performing any of these maintenance processes.

You can access the API at http://<server name>/xmpierestapi

Expand the System section and look for the /v1/system/maintenance/cleanup request.

Click MaintenanceCleanupRequest to view all available cleanup parameters:

Click the Try it out button to set all parameters, and then click Execute.

If you do not have an API license, you can run the commands in power shell.

Set the correct server, user name and password as follows:

Invoke-RestMethod -Uri 'http://<server name>/XMPieRestAPI/v1/system/maintenance/cleanup' -Method 'POST' -Headers @{Authorization=("Basic {0}" -f ([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f '<uProduce admin user>','<uProduce admin password>')))))} -ContentType 'application/json' -Body (@{ShrinkDB=1;RebuildDBIndexes=1}|ConvertTo-Json)

Windows System Components

Installing Windows updates

To ensure a secure, up‐to‐date system, it is recommended to check Windows Updates at least once a week. Make sure it is not set to automatic updates. If updates are found, make sure you have a current backup before applying them, in case there are any conflicts with the XMPie PersonalEffect system. Updates should be applied when there is no activity on the server.

If running multiple servers, make sure the same Windows Update settings are defined for all servers and that all server are running the same updates.

Checking Windows time

If the Windows time is set incorrectly on your servers, emails sent through XMPie email service might not actually be sent and instead return an error. The time settings of most servers will be automatically synchronized with an “NTP server”, to set time automatically, which normally works as expected. However, in some cases (for example when running in a virtualized environment), it is possible for the time to drift out by a few minutes, which will cause email send failure.

Defragmenting the file system

Through time, the computer's hard disk may become damaged or fragmented (unavailable in a large contiguous block). If there is not enough contiguous space for the system to save a file, it saves segments of that file on different locations of the disk. This increases the time needed for an application to read a fragmented file.

Please note that during defragmentation disk usage will be very high and therefore system responsiveness will be impacted. We highly recommend only running/scheduling a Defrag only when your XMPie server solution is not in use.

Checking disk usage

XMPie PersonalEffect will store temporary files on both your OS drive and the XMPie data partition. It is important to make sure there is enough available space for your software to operate correctly. If all disk space is used the server will cease to produce any output. Check the available disk space on each drive and confirm the available disk space on each drive.

If the drives are getting full, it would be wise to make sure the Recycle Bin is empty, and remove uProduce Temporary Files and Old Jobs as described in Deleting uProduce Temporary Files  and Removing Old Jobs from the Job Center. Purchasing a larger drive should be considered in order to make sure the system runs without interruption when processing very large jobs.

SQL Database Components

Checking SQL database file size

XMPie PersonalEffect uses Microsoft SQL server for all of its database storage. Depending on the version of Microsoft SQL you have installed, there is a limitation on the maximum file size of each SQL Database.

You can check the size of XMPie databases by running the following SQL command on your SQL Server.

SELECTDB_NAME(database_id)ASDatabase_Name,

NameASFile_Name, Physical_Name AS Physical_Path,

(size*8)/1024 Size_MB

FROMsys.master_files

WHEREDB_NAME(database_id)in('XMPDB2','uStore','XMPDBASSETS','XMPDBTRACKING','XMPDBHDS')

orderby Size_MB desc

GO

This will give you a list of the XMPie databases and their file size:

If any of these databases are approaching the maximum database size for your version of Microsoft SQL, it would be wise to consider an upgrade to Microsoft SQL Server Standard Edition, or shrinking the database and files.

If the XMPDBTracking database is too large, consider removing tracking data for campaigns that are no longer required, as described in Removing events from the Tracking database.

If any of your databases are approaching the file size limit for your version of SQL Server, it’s strongly suggested to monitor these databases before and during a campaign, as if they do hit their size limit during a campaign your campaign may go offline.

Rebuilding SQL database indexes

It is recommended to perform database reorganization on your SQL database monthly. This will rebuild the indexes so that the data is no longer fragmented. Fragmented data can cause SQL Server to perform unnecessary data reads, slowing down SQL Server’s performance.

Important!  Before running any SQL commands, make sure a backup of your database has been taken.

The following SQL command can be run on your SQL Server to reindex the required XMPie databases.

-- This will reindex all tables in the 'uStore', 'XMPDB2' and 'XMPDBASSETS'

databases if there is sufficient space.

USE uStore

GO

EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")'

USE XMPDB2

GO

EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")'

USE XMPDBASSETS

GO

EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")'

USE XMPDBHDS

GO

EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")'

USE XMPDBTRACKING

GO

EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")'

Important!  Reindexing will temporarily take your database offline. Only reindex when the server is not in use.

Removing events from the Tracking database

When a campaign has tracking turned on, these tracking events are recorded in the XMPDBTracking database. Over time this database can grow very large in size and depending on the version of SQL that is installed on your server, it is possible to hit a maximum database size which will stop events from being tracked. If this occurs mid‐campaign you may lose tracking information related to that campaign. Therefore, it is very important not only to monitor the size of this database as described in Checking SQL database file size, but to also remove tracking from campaigns that are no longer required.

For instructions on how to remove unused tracking events, please refer to Support.

XMPie Server Components

Backing up the XMPie server

As a precautionary step, it is crucial to back up the XMPie server in order to be prepared for any scenario in which the system crashes or completely fails. The backup should include databases, files system and registry.

Important! Backup should be performed daily and before any software upgrades.

There are two options when performing a backup:

  • A full system backup which will back up the complete operating system and the XMPie server solution. This will take more space and may take longer, but it will allow you to recover from a failure quicker and will cover you for failures not only within the XMPie system but also within the Windows OS.

  • The other option is to only back up the XMPie file system and registry settings.

If you are performing a full system backup there are many tools available which are outside of the scope of this article.

If you choose to back up only the file system, please refer to the chart below that contains all the locations critical to XMPie that need to be backed up.

To back up the file system:

Application

Folders that should be backed up

Server

uProduce

[drive letter]:\xmpie

Back end server*

uStore

[drive letter]:\xmpie\uStore

Back end server*

XMPL

[drive letter]:\XMPie\XMPieWebServer\
XMPieWebSiteManagement\XMPieWebSites

Front end web server**

ISAPI_Rewrite(Helicon)

[drive letter]:\ProgramFiles\Helicon\ISAPI_Rewrite3\

The path may vary in case of localized OS

Front end web server**

 

To back up the registry:

Application

Registry entry that should be backed up

Server

All

HKLM\SOFTWARE\Wow6432Node\XMPie

Back and front end servers*

 

To back up the database:

Application

Databases that should be backed up

Server

uProduce

XMPDB2, XMPDBASSETS, XMPDBHDS

Back end server*

Analytics

XMPDBTRACKING

Back end server*

uStore

uStore

Back end server*

* Back end server refers to Solo

** Web server refers to Proxy server (located in the DMZ)

Deleting uProduce temporary files

It is important to remove unused temporary files, as they are by default located on the primary OS drive which often has limited space. To remove these files, you can run one of the following commands from either the Command Prompt or Powershell.

Command Prompt:

forfiles /P "C:\Users\%USERNAME%\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7

Powershell:

forfiles /P "C:\Users\$env:UserName\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7

forfiles /P "C:\Users\$env:UserName\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7

Note: It is important that you log in with the Windows user credentials that were used with XMPie's services. The variable %USERNAME% will automatically be replaced with the logged in user.

Removing jobs from the Job Center

To maximise performance of the XMPie PersonalEffect server and to minimize disk usage, it is recommended to remove jobs from the Job Center once the job is completed and the output is no longer required on the server. Unused jobs can be deleted from the Job Center.

Important! Remove the jobs with caution as any deleted jobs cannot be retrieved.

Deleting old hosted data sources

To maximise performance of the XMPie PersonalEffect server and to minimise database disk usage, it is recommended to remove old hosted data sources from the uProduce dashboard or from the Circle library.

Important! Remove the data sources with caution as a mistakenly deleted data source may break the campaign.

 

Created by: Mohammad Mansour, last updated: September 2024