Microsoft VM Windows - Backend Maintenance

Support DQE
Support DQE
  • Updated

1. Application Maintenance

1.1 Why Performing Maintenance Operations

This application is built to be resilient and does not require frequent maintenance. However, in some situations you may need to restart the stack to apply a new version or recover from an error state.

For instance, if data processing fails, temporary files may accumulate in the Redis or RabbitMQ volumes. Stopping and restarting the application clears these files and resets the queue.

/!\ Note: This section covers Docker-level maintenance only. Network or firewall configuration specific to your organization is outside the scope of this document.

1.2 When Should You Operate

1.2.1 Data Processes Failed

The first signal that your application needs attention is when data processes launched from Salesforce show a status of "Failed". Before acting, check the error description to rule out issues in your deduplication rules or other integrations.

If the error points to the server itself, proceed to §3.3 – How to Proceed.

1.2.2 Data Processes Pending

If the job queue is stuck on the same message and blocking data processes, clear the RabbitMQ volume and restart the application.

  1. Step 1 — Stop the application:

    cd C:\dqe-unify
    docker compose stop rabbitmq
  2. Step 2 — Clear the RabbitMQ data volume:

    # Delete all files in the rabbitvol directory
    Remove-Item -Recurse -Force "C:\dqe-unify\volumes\rabbitvol\*"
  3. Step 3 — Restart RabbitMQ:

    docker compose start rabbitmq

If the issue persists, perform a full restart as described in §3.3.

1.3 How to Proceed

1.3.1 Step 1 – Get the Logs

Logs on a Windows VM are managed directly by Docker. Use the following commands to retrieve them.

View live logs for all services:

cd C:\dqe-unify
docker compose logs -f

View logs for a specific service:

docker compose logs -f unify-server
docker compose logs -f queue-worker

Export logs to a file for analysis:

docker compose logs --no-color unify-server  C:\dqe-unify\logs\unify-server.log
docker compose logs --no-color queue-worker   C:\dqe-unify\logs\queue-worker.log

Log retention: Docker logs are stored on the VM's disk and are not automatically rotated. To configure log rotation, edit the Docker daemon configuration (C:\ProgramData\Docker\config\daemon.json):

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "5"
  }
}

1.3.2 Step 2 – Rebuild / Update the Application

To deploy a newer image version or clear all volumes, stop and remove the containers, then pull the latest images and restart.

  1. Step 1 — Stop and remove all containers:

    cd C:\dqe-unify
    docker compose down
  2. Step 2 — (Optional) Clear the persistent volumes if needed:

    Remove-Item -Recurse -Force "C:\dqe-unify\volumes\redisvol\*"
    Remove-Item -Recurse -Force "C:\dqe-unify\volumes\rabbitvol\*"
  3. Step 3 — Pull the latest images:

    docker compose pull
  4. Step 4 — Restart the application:

    docker compose up -d

1.3.3 Step 3 – Restart

For a simple restart (without clearing volumes or pulling new images):

cd C:\dqe-unify
docker compose restart

Monitor the restart:

docker compose ps

All services should reach the status running. If a service shows exited or remains in a restarting loop, check its logs and contact DQE Software support if the issue cannot be resolved.

/!\ Important: The restart: always policy in the Compose file ensures that containers automatically restart after a VM reboot or Docker daemon restart. No manual intervention is required for routine VM reboots.

1.4 Ensure Automatic Start on VM Boot

On Windows Server, Docker Engine runs as a Windows service. Ensure it is configured to start automatically so that containers restart after any VM reboot without manual intervention.

Verify the service startup type in PowerShell as Administrator:

Get-Service docker | Select-Object Name, StartType, Status

If StartType is not Automatic, set it:

Set-Service -Name docker -StartupType Automatic
Start-Service docker

Because restart: always is set for every service in docker-compose.yml, Docker Engine will automatically restart all containers when the service starts at boot. No additional configuration is required.

1.5 Useful Commands Reference

ActionCommand (run from C:\dqe-unify)
Start all servicesdocker compose up -d
Stop all servicesdocker compose down
Restart all servicesdocker compose restart
View statusdocker compose ps
View all logsdocker compose logs -f
View server logsdocker compose logs -f unify-server
View worker logsdocker compose logs -f queue-worker
Pull latest imagesdocker compose pull
Rebuild & redeploydocker compose down && docker compose pull && docker compose up -d
Connect to a container shelldocker compose exec unify-server bash
Inspect container resource usagedocker stats

Related to

Was this article helpful?

0 out of 0 found this helpful