Chapter 2. Setup

Table of Contents

2.1. Engine Files

2.1. Engine Files

Each node requires properties that allow it to connect to a database and register with a parent node. Properties are configured in a file named that is placed in the engines directory of the SymmetricDS install. The file is usually named according to the, but it is not a requirement.

To give a node its identity, the following properties are required. Any other properties found in conf/ can be overridden for a specific engine in an engine's properties file. If the properties are changed in conf/ they will take effect across all engines deployed to the server. Note that you can use the variable $(hostName) to represent the host name of the machine when defining these properties (for example,$(hostName) ).

This is an arbitrary name that is used to access a specific engine using an HTTP URL. Each node configured in the engines directory must have a unique engine name. The engine name is also used for the domain name of registered JMX beans.

The node group that this node is a member of. Synchronization is specified between node groups, which means you only need to specify it once for multiple nodes in the same group.

The external id for this node has meaning to the user and provides integration into the system where it is deployed. For example, it might be a retail store number or a region number. The external id can be used in expressions for conditional and subset data synchronization. Behind the scenes, each node has a unique sequence number for tracking synchronization events. That makes it possible to assign the same external id to multiple nodes, if desired.


The URL where this node can be contacted for synchronization. At startup and during each heartbeat, the node updates its entry in the database with this URL. The sync url is of the format: http://{hostname}:{port}/{webcontext}/sync/{} .

The {webcontext} is blank for a standalone deployment. It will typically be the name of the war file for an application server deployment.

The {} can be left blank if there is only one engine deployed in a SymmetricDS server.

When a new node is first started, it is has no information about synchronizing. It contacts the registration server in order to join the network and receive its configuration. The configuration for all nodes is stored on the registration server, and the URL must be specified in the following property:


The URL where this node can connect for registration to receive its configuration. The registration server is part of SymmetricDS and is enabled as part of the deployment. This is typically equal to the value of the sync.url of the registration server.


Note that a registration server node is defined as one whose registration.url is either (a) blank, or (b) identical to its sync.url .

For a deployment where the database connection pool should be created using a JDBC driver, set the following properties:


The class name of the JDBC driver.


The JDBC URL used to connect to the database.


The database username, which is used to login, create, and update SymmetricDS tables.


The password for the database user.

See Section B.1, “Startup Parameters”, for additional parameters that can be specified in the engine properties file.