/
symmetric-default.properties
384 lines (295 loc) · 15.1 KB
/
symmetric-default.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
# Set the JNDI name if symmetric should use a JNDI registered connection pool# It is recommended that the application server provided Datasource is NOT transactional.
# Symmetric will handle transactionality.
# If NOT using a JNDI connection pool, provide information about the database connection.
# A DBCP connection pool will be created.
db.jndi.name=
# Set the name of the spring bean that is the DataSource to use. This property maybe be overridden so the end user can specify
# their own DataSource
db.spring.bean.name=symmetricBasicDataSource
db.driver=org.apache.derby.jdbc.EmbeddedDriver
db.url=jdbc:derby:target/derby/root;create=true
db.user=
db.password=
# The initial size of the connection pool
db.pool.initial.size=5
# The maximum number of connections that will be allocated in the pool
db.pool.max.active=10
# This is how long the default transaction time is.
# This needs to be fairly big to account for large data loads.
db.tx.timeout.seconds=7200
# Most symmetric queries have a timeout associated with them. This is the default.
db.sql.query.timeout.seconds=60
#This is the query to validate the database connection in Connection Pool.It is database specific
db.validation.query=
# This is how long a request for a connection from the datasource will wait before
# giving up.
db.pool.max.wait.millis=30000
# This is how long a connection can be idle before it will be evicted.
db.pool.min.evictable.idle.millis=120000
# This is the default fetch size for streaming result sets.
db.jdbc.streaming.results.fetch.size=1000
# This is the schema that will be used for metadata lookup. Some dialect automatically
# figure this out using database specific SQL to get the current schema
db.default.schema=
# Use to map the version string a zseries jdbc driver returns to the 'zseries' dialect
db2.zseries.version=DSN08015
# When symmetric tables are created and accessed, this is the prefix to use for the tables.
sync.table.prefix=sym
# Set this if the triggers need to be prefixed. This is useful when running two symmetric instances
# against the same database.
trigger.prefix=
# If this is true, when symmetric starts up it will try to create the necessary tables
auto.config.database=true
# If this is true. when symmetric starts up it will make sure the triggers in the database are up to date
auto.sync.triggers=true
# If this is true, when symmetric starts up it will try to upgrade tables to latest version
auto.upgrade=true
# Send symmetricds changes to client nodes when configuration changes
auto.sync.configuration=true
# Update the node row in the database from the local properties during a heartbeat operation
auto.update.node.values.from.properties=true
# 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. Please do not use underscores in this name.
engine.name=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.
cluster.server.id=
# 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.
#
# This property can be overridden in the database
schema.version=?
# This is the URL this node will use to register and pull it's configuration.
# This property is only valid if you use the default IRuntimeConfiguration implementation.
#
# This property can be overridden in the database
registration.url=
# This is the number of times registration will be attempted before being aborted. The default
# value is -1 which means an endless number of attempts.
registration.number.of.attempts=-1
# This property is only valid if you use the default IRuntimeConfiguration implementation.
#
# This property can be overridden in the database
my.url=
# This property is only valid if you use the default IRuntimeConfiguration implementation.
#
# This property can be overridden in the database
group.id=default
# This property is only valid if you use the default IRuntimeConfiguration implementation.
#
# This property can be overridden in the database
external.id=
# Provides a way to override the default IRuntimeConfiguration. If you specify a class that implements the
# interface, it will be used instead of the default, property-based, version.
# An example value for this class would be: com.company.node.MyRuntimeConfiguration
# @deprecated
configuration.class=
# Set this if tables should be purged prior to an initial load
#
# This property can be overridden in the database
initial.load.delete.first=false
# Extract an initial load to the file system before streaming it to the client for
# better compression and better use of database and network resources
#
# This property can be overridden in the database
stream.to.file.enabled=true
# If stream.to.file.enabled is true, then the threshold number of bytes at which a file
# will be written is controlled by this property. Note that for a synchronization the
# entire payload of the synchronization will be buffered in memory up to this number (at
# which point it will be written and continue to stream to disk)
#
# This property can be overridden in the database
stream.to.file.threshold.bytes=20480
# Set this if tables should be created prior to an initial load
#
# This property can be overridden in the database
initial.load.create.first=false
# If this is true, registration is opened automatically for nodes requesting it
#
# This property can be overridden in the database
auto.registration=false
# If this is true, a reload is automatically sent to nodes when they register
#
# This property can be overridden in the database
auto.reload=false
# Provide the path to a SQL script that can be run to do initial setup of a registration server. This script
# will only be run on a registration server if the node_identity cannot be found.
auto.config.registration.svr.sql.script=
# This is the download rate for the HTTP symmetric transport. -1 means full throttle.
http.download.rate.kb=-1
# This is the number of HTTP concurrent push/pull requests symmetric will accept. This is controlled
# by the NodeConcurrencyFilter. The number is per servlet the filter is applied to.
#
# This property can be overridden in the database
http.concurrent.workers.max=20
# This is the amount of time the host will keep a concurrent connection reservation after it has
# been attained by a client node while waiting for the subsequent reconnect to push
http.concurrent.reservation.timeout.ms=20000
# During SSL handshaking, if the URL's hostname and the server's
# identification hostname mismatch, the verification mechanism
# will check this comma separated list of server names to see if the
# cert should be accepted (see javax.net.ssl.HostnameVerifier)
https.verified.server.names=
# @deprecated - this is now on the channel
# This is the maximum number of outgoing batches that will processed in one pull or push request.
# outgoing.batches.max.to.process=60
# 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.
# Note that this only kicks in if the prospective batch size is bigger than the configured max batch size.
#
# This property can be overridden in the database
outgoing.batches.peek.ahead.window.after.max.size=100
# This is the number of datae vents that will be batched and committed together while building a batch.
# Note that this only kicks in if the prospective batch size is bigger than the configured max batch size.
#
# This property can be overridden in the database
outgoing.batches.peek.ahead.batch.commit.size=10
# This instructs symmetric to attempt to skip duplicate batches that are received. Symmetric might
# be more efficient when recovering from error conditions if this is set to true, but you run the
# risk of missing data if the batch ids get reset (on one node, but not another) somehow (which is unlikely in production, but
# fairly likely in lab or development setups).
#
# This property can be overridden in the database
incoming.batches.skip.duplicates=true
# If this property is set to true, then keys will not be included in set portion of
# the update statements generated by the data loader.
#
# This property can be overridden in the database
dont.include.keys.in.update.statement=false
# If this property is set to true the target schema in the trigger table
# will be used (if set). This does mean that the data loader will inherit some overhead
# by doing a couple of SQL lookups
#
# This property can be overridden in the database
dataloader.lookup.target.schema=false
# Turn on/off fallback to update statements after an integrity
# error on an insert
#
# This property can be overridden in the database
dataloader.enable.fallback.update=true
# Turn on/off fallback to insert statements after a failed
# update
#
# This property can be overridden in the database
dataloader.enable.fallback.insert=true
# Do not fail a load if a delete did not delete anything.
#
# This property can be overridden in the database
dataloader.allow.missing.delete=true
# This is the number of times we will attempt to send an ACK back to the remote node
# when pulling and loading data.
#
# This property can be overridden in the database
num.of.ack.retries=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.
#
# This property can be overridden in the database
time.between.ack.retries.ms=5000
# The number of milliseconds parameters will be cached by the ParameterService before they are reread from the
# file system and database.
#
# This property can be overridden in the database
parameter.reload.timeout.ms=600000
# This is the amount of time node security entries will be cached before rereading
# them from the database.
#
# This property can be overridden in the database
cache.node.security.time.ms=0
# Indicate that this node is being run on a farm or cluster of servers and it needs to use the database to 'lock' out other activity when actions are taken.
cluster.lock.timeout.ms=1800000
cluster.lock.during.purge=false
cluster.lock.during.pull=false
cluster.lock.during.push=false
cluster.lock.during.heartbeat=false
cluster.lock.during.sync.triggers=false
# Sets both the connection and read timeout on the internal HttpUrlConnection
#
# This property can be overridden in the database
http.timeout.ms=600000
# 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.
# @see web.compression.disabled to enable/disable the filter
#
# This property can be overridden in the database
http.compression=true
# Disable compression from occurring on Servlet communication. This property only
# affects the outbound HTTP traffic streamed by the PullServlet and PushServlet.
#
# This property can be overridden in the database
web.compression.disabled=false
# Set the compression level this node will use when compressing synchronization payloads
# @see java.util.zip.Deflater
# NO_COMPRESSION = 0
# BEST_SPEED = 1
# BEST_COMPRESSION = 9
# DEFAULT_COMPRESSION = -1
#
# This property can be overridden in the database
compression.level=-1
# Set the compression strategy this node will use when compressing synchronization payloads
# @see java.util.zip.Deflater
# FILTERED = 1
# HUFFMAN_ONLY = 2
# DEFAULT_STRATEGY = 0
#
# This property can be overridden in the database
compression.strategy=0
# The base servlet path for when embedding SymmetricDS with another web application
web.base.servlet.path=
# Indicate whether the batch servlet (which allows specific batches to be requested) is enabled.
web.batch.servlet.enable=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.
job.random.max.start.time.ms=10000
# This is the retention for how long synchronization data will be kept in the symmetric synchronization
# tables. Note that data will be purged only if the purge job is enabled.
purge.retention.minutes=7200
# This is how often the push job will be run.
job.push.period.time.ms=60000
# This is how often the pull job will be run.
job.pull.period.time.ms=60000
# This is how often the purge job will be run.
job.purge.period.time.ms=600000
# This is how often accumulated statistics will be flushed out to the database from memory
job.stat.flush.period.time.ms=600000
# This is the number of data events by batch that will be purged in one database transaction
job.purge.max.num.data.events.to.delete.in.tx=100
# This is the number of batches that will be purged in one database transaction
job.purge.max.num.batches.to.delete.in.tx=5000
# This is the number of data ids that will be purged in one database transaction
job.purge.max.num.data.to.delete.in.tx=5000
# If scheduled, the sync triggers job will run nightly. This is how long after
# midnight that job will run.
job.synctriggers.aftermidnight.minutes=15
# Whether the pull job is enabled for this node.
start.pull.job=true
# Whether the push job is enabled for this node.
start.push.job=true
# Whether the purge job is enabled for this node.
start.purge.job=true
# 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.
start.heartbeat.job=true
# Whether the sync triggers job is enabled for this node.
start.synctriggers.job=true
# Whether the statistic flush job is enabled for this node.
start.stat.flush.job=true
# Specify the transport type. Supported values currently include: http, internal
transport.type=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.
hsqldb.initialize.db=true
# This is the precision that is used in the number template for oracle triggers
oracle.template.precision=30,10
# Specify the type of line feed to use in JMX console methods. Possible values are: text or html.
jmx.line.feed=text
# Specify whether the legacy JMX interfaces should be enabled or not.
jmx.legacy.beans.enabled=false
jmx.http.console.for.embedded.webserver.enabled=true
# Specify whether we should publish alerts if any of the statistic flushes fall outside a specified
# threshold range.
statistic.threshold.alerts.enabled=false
ip.filters=*.*.*.*