Product » A free email server for Windows and Linux » Knowledge Base

Document information

Document ID: 5257
Subject: Troubleshooting auto-update
Creation date: 12/3/18 7:30 PM
Last modified on: 12/3/18 7:30 PM

Troubleshooting Auto Update

Xeams is designed to pull new versions of the software and patch itself. This page is discusses common problems that can prevent Xeams from patching.

Patching Xeams involves two steps:

Step 1: Downloading necessary files
This includes downloading Xeams.jar and Both of these files are saved in $INSTALL_DIR/patches folder.

Common Problems

  • Outbound port 80 is blocked. Xeams running on your end needs to download these files from Xeams website. It will not be able to download these files if your Xeams cannot reach
  • Firewall blocks either *.jar or *.zip file extensions


Follow these directions to manually download files using a browser.
Step 2: Patching and restarting
This step can be further divided into two phases:

  • Phase I - Spawning patcher. The existing instance of Xeams spawns another process from $INSTALL_DIR/patches/Patcher.jar. After spawning this process, the existing instance terminates itself.

  • Phase II - The newly created Patcher copies Xeams.jar into $INSTALL_DIR/lib and extracts into several folders within $INSTALL_DIR/webfront folder. Finally, it spawns the main Xeams process, which should now run the newer version.


    The patcher program logs errors in $INSTALL_DIR/logs/starterOut.log and $INSTALL_DIR/logs/starterErr.log files.

Common Problems

  • $INSTALL_DIR/patches/Patcher.jar is missing. Xeams will not be able to move from Phase I to Phase II if this file is missing.

  • Location of the JRE is important when spawning Patcher (Phase I) as well as spawning the new instance of Xeams (Phase II). The actual path for the JRE is stored in the vmPath parameter in $INSTALL_DIR/config/AppConfig.xml. Ensure the value for vmPath refers to the correct value

  • Phase II also reads the ntServiceCommand in the AppConfig.xml file. If this parameter is blank, Xeams will try to dynamically build the command line. However, Xeams will not be able to restart itself if the value is invalid. Therefore, having a blank value is fine but an invalid value will break the restart logic.

Manually Launching Patcher

It is often helpful to start the Patcher manually and see if it display errors on the console. This is equivalent to jumping directly to Phase II. The following steps demonstrate this:

  • Open an Elevated Command Prompt if you're using Microsoft Windows or log in as root if you're using Linux.
  • Ensure Xeams is NOT running. Terminate the process if it is running
  • Change the current directory to $INSTALL_DIR folder.
  • Run the following command:

    jre/bin/java -cp patches/Patcher.jar com.synametrics.xeams.util.EngineStarter
    Note: Change / to \ on Windows.

    Ideally, this should patch the files (move Xeams.jar and and finally should start Xeams. The terminal window and/or log/starterOut.log should display messages if it runs into errors.

Add a comment to this document

Do you have a helpful tip related to this document that you'd like to share with other users?

Important: This area is reserved for useful tips. Therefore, do not post questions here. Instead, use our public forums to post questions.