Startup parameters are read periodically from properties files or the database and change the behavior of SymmetricDS at runtime. The following properties are used:
The name of the database connection pool to use, which is registered in the JNDI
directory tree of the application server. It is recommended that this DataSource is
NOT transactional, because SymmetricDS will handle its own transactions. If NOT using
a JNDI connection pool, you must provide information about the database connection
using the
db.driver
,
db.url
,
db.user
, and
db.password
properties instead, which will create a pool of connections using the
db.pool
properties. [ Default: ]
The class name of the JDBC driver. If
db.jndi.name
is set, this property is ignored. [ Default: com.mysql.jdbc.Driver ]
The JDBC URL used to connect to the database. If
db.jndi.name
is set, this property is ignored.
[ Default: jdbc:mysql://localhost/symmetric ]
The database username, which is used to login, create, and update SymmetricDS tables.
If
db.jndi.name
is set, this property is ignored. [ Default: symmetric ]
The password for the database user. If
db.jndi.name
is set, this property is ignored. [ Default: ]
The initial size of the connection pool. If
db.jndi.name
is set, this property is ignored. [ Default: 5 ]
The maximum number of connections that will be allocated in the pool. If
db.jndi.name
is set, this property is ignored. [ Default: 10 ]
This is how long a request for a connection from the datasource will wait before
giving up. If
db.jndi.name
is set, this property is ignored. [ Default: 30000 ]
This is how long a connection can be idle before it will be evicted. If
db.jndi.name
is set, this property is ignored. [ Default: 120000 ]
This is how long the default transaction time is. This needs to be fairly big to account for large data loads. [ Default: 7200 ]
The timeout in seconds for queries running on the database. [ Default: 60 ]
This is the default fetch size for streaming result sets into memory from the database. [ Default: 1000 ]
When symmetric tables are created and accessed, this is the prefix to use for the table name. [ Default: sym ]
If this is true, the configuration and runtime tables used by SymmetricDS are automatically created during startup. [ Default: true ]
If this is true, when symmetric starts up it will try to upgrade tables to latest version. [ Default: true ]
If this is true, registration is opened automatically for nodes requesting it. [ Default: false ]
If this is true, a reload is automatically sent to nodes when they register. [ Default: false ]
If this is true, create triggers for the SymmetricDS configuration table that will synchronize changes to node groups that pull from the node where this property is set. [ Default: true ]
This is the download rate for the HTTP symmetric transport. A value of -1 means full throttle. [ Default: -1 ]
This is the number of HTTP concurrent push/pull requests symmetric will accept. This is controlled by the NodeConcurrencyFilter. [ Default: 20 ]
This is the maximum number of events that will be peeked at to look for additional transaction rows after the max batch size is reached. The more concurrency in your db and the longer the transaction takes the bigger this value might have to be. [ Default: 100 ]
Whether or not to skip duplicate batches that are received. A duplicate batch is identified by the batch ID already existing in the incoming batch table. If this happens, it means an acknowledgement was lost due to failure or there is a bug. Accepting a duplicate batch in this case can mean overwriting data with old data. Another cause of duplicates is when the batch sequence number is reset, which might happen in a lab environement. Skipping a duplicate batch in this case would prevent data changes from loading. Generally, in a production envionment, this setting should be true. [ Default: true ]
This is the number of times we will attempt to send an ACK back to the remote node when pulling and loading data. [ Default: 5 ]
This is the amount of time to wait between trying to send an ACK back to the remote node when pulling and loading data. [ Default: 5000 ]
This is the engine name. This should be set if you have more than one engine running in the same JVM. It is used to name the JMX management bean. [ Default: Default ]
Set this if you want to give your server a unique name to be used to identify which server did what action. Typically useful when running in a clustered environment. This is currently used by the ClusterService when locking for a node. [ Default: ]
Time limit of lock before it is considered abandoned and can be broken. [ Default: 1800000 ]
Indicate if the purge job is clustered and requires a lock before running. [ Default: false ]
Indicate if the pull job is clustered and requires a lock before running. [ Default: false ]
Indicate if the push job is clustered and requires a lock before running. [ Default: false ]
Indicate if the heartbeat job is clustered and requires a lock before running. [ Default: false ]
Indicate if the sync triggers job is clustered and requires a lock before running. [ Default: false ]
Set this if the trigger names need to be prefixed. This is useful when running two symmetric instances against the same database. [ Default: ]
Set this if tables should be purged prior to an initial load. [ Default: false ]
Set this if tables (and their indexes) should be created prior to an initial load. [ Default: false ]
Sets both the connection and read timeout on the internal HttpUrlConnection. [ Default: 600000s ]
Whether or not to use compression over HTTP connections. Currently, this setting only affects the push connection of the source node. Compression on a pull is enabled using a filter in the web.xml for the PullServlet. [ Default: true ]
When starting jobs, symmetric attempts to randomize the start time to spread out load. This is the maximum wait period before starting a job. [ Default: 10000 ]
This is the retention for how long synchronization data will be kept in the SymmetricDS synchronization tables. Note that data will be purged only if the purge job is enabled. [ Default: 7200 ]
Whether the push job is enabled for this node. [ Default: true]
This is how often the push job will be run. [ Default: 60000 ]
Whether the pull job is enabled for this node. [ Default: true ]
This is how often the pull job will be run. [ Default: 60000 ]
Whether the purge job is enabled for this node. [ Default: true ]
This is how often the purge job will be run. [ Default: 600000 ]
Whether the sync triggers job is enabled for this node. [ Default: true ]
If scheduled, the sync triggers job will run nightly. This is how long after midnight that job will run. [ Default: 15 ]
Whether the heartbeat job is enabled for this node. The heartbeat job simply inserts an event to update the heartbeat_time column on the node table for the current node. [ Default: true ]
This is hook to give the user a mechanism to indicate the schema version that is being synchronized. This property is only valid if you use the default IRuntimeConfiguration implementation. [ Default: ? ]
The URL where this Node can connect for registration to receive its configuration. This property is only valid if you use the default IRuntimeConfiguration implementation. [ Default: ]
The URL where this Node can be contacting for synchronization. This property is only valid if you use the default IRuntimeConfiguration implementation. [ Default: http://localhost:8080/sync ]
The Node Group ID for this Node. This property is only valid if you use the default IRuntimeConfiguration implementation. [ Default: default ]
The secondary identifier for this Node that has meaning to the system where it is deployed. While the Node ID is a generated sequence number, the external ID could have meaning in the user's domain, such as a retail store number. This property is only valid if you use the default IRuntimeConfiguration implementation. [ Default: ]
Specify the transport type. Supported values currently include: http, internal. [ Default: http ]
If using the HsqlDbDialect, this property indicates whether Symmetric should setup the embedded database properties or if an external application will be doing so. [ Default: true ]