1. Home
  2. Transact
  3. Install and Upgrade
  4. Additional Resources
  5. Windows
  6. Best Practices for a Multi-Server Environment

Best Practices for a Multi-Server Environment

When deploying a multi-server Ephesoft cluster, there are a few best practices as Ephesoft recommendations.


  1. Database
    1. When creating an Ephesoft cluster, it is recommended that you first install MSSQL or MySQL on a server which will not be a processing server or a UI server. This minimizes the running processes, utilized RAM, I/O reads and writes, and network requests send to this server.
    2. Currently we support failover databases with the MSSQL always on availability feature. We recommend you run a second server which hosts the redundant databases for ephesoft so that you minimize single points of failure in case of hardware or OS issues.
    3. We recommend weekly database backups. Ephesoft must be stopped for the backups to occur.
  2. SharedFolders
    1. It is recommended that you install the SharedFolders on a separate machine from any of the processing or UI servers. This is to minimize I/O read and writes, along with minimizing network requests to the server and drive hosting the SharedFolders.
    2. We also recommend weekly backups of the SharedFolders when the databases are backed. Ephesoft must be stopped for the backups to occur.
    3. If possible, RAID shares are preferred.
  3. Workflows and other configurations
    1. By default, in Ephesoft 4.0 based versions, the pickup service is set to run on only one server at a time in the cluster. This prevents two machines from requesting the same batch class. The cron schedule for this no longer has to be scheduled.
    2. It is recommended to set the email import service to run on a UI server to minimize CPU utilization, I/O reads and writes, and network traffic on the processing servers so that they can focus on the Ephesoft workflow.
    3. “clean error job” executing on each server in a multi-server environment at same time can cause deadlock issues. We would recommend to schedule this in such a way that at no time it is executing simultaneously on multiple servers.
      Following changes would be required to do so:
      Property File: <Application Directory>/WEB-INF/classes/META-INF/
      Property: dcma.clean.error.job.cronjob.expression
      0 0/30 * ? * * on server 1
      0 5/30 * ? * * on server 2
      0 15/30 * ? * * on server 3 … and so on



Was this article helpful to you? Yes No