-
Notifications
You must be signed in to change notification settings - Fork 221
/
symmetric-default.properties
2088 lines (1793 loc) · 66.6 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
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#
# Licensed to JumpMind Inc under one or more contributor
# license agreements. See the NOTICE file distributed
# with this work for additional information regarding
# copyright ownership. JumpMind Inc licenses this file
# to you under the GNU General Public License, version 3.0 (GPLv3)
# (the "License"); you may not use this file except in compliance
# with the License.
#
# You should have received a copy of the GNU General Public License,
# version 3.0 (GPLv3) along with this library; if not, see
# <http://www.gnu.org/licenses/>.
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# 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.
#
# Tags: general
engine.name=SymmetricDS
# The node group id that this node belongs to
# Tags: init
group.id=please set me
# The external id for this SymmetricDS node. The external id is
# usually used as all or part of the node id.
# Tags: init
external.id=please set me
# This is the URL this node will use to register and pull it's configuration.
# If this is the root server, then this may remain blank and the configuration
# should be inserted directly into the database
# Tags: init
registration.url=please set me
# The url that can be used to access this SymmetricDS node.
# The default setting of http://$(hostName):31415/sync should be
# valid of the standalone launcher is used with the default settings
# The tokens of $(hostName) and $(ipAddress) are supported for this property.
# Tags: init
sync.url=http://$(hostName):31415/sync/$(engineName)
# Specify your database driver
# Tags: database
db.driver=org.h2.Driver
#db.driver=org.h2.Driver
#db.driver=com.mysql.jdbc.Driver
#db.driver=oracle.jdbc.driver.OracleDriver
#db.driver=org.postgresql.Driver
#db.driver=org.apache.derby.jdbc.EmbeddedDriver
#db.driver=org.hsqldb.jdbcDriver
#db.driver=net.sourceforge.jtds.jdbc.Driver
#db.driver=com.ibm.db2.jcc.DB2Driver
#db.driver=org.sqlite.JDBC
#db.driver=org.firebirdsql.jdbc.FBDriver
#db.driver=com.sybase.jdbc4.jdbc.SybDriver
# Specify your database URL
# Tags: database
db.url=jdbc:h2:mem:setme
#db.url=jdbc:h2:file:target/h2/client
#db.url=jdbc:oracle:thin:@127.0.0.1:1521:sampleroot
#db.url=jdbc:postgresql://localhost/sampleroot
#db.url=jdbc:derby:sampleroot;create=true
#db.url=jdbc:hsqldb:file:sampleroot;shutdown=true
#db.url=jdbc:jtds:sqlserver://localhost:1433;sendStringParametersAsUnicode=false;useCursors=true;bufferMaxMemory=10240;lobBuffer=5242880
#db.url=jdbc:db2://localhost/samproot
#db.url=jdbc:mysql://localhost/sampleroot?tinyInt1isBit=false&zeroDateTimeBehavior=convertToNull
#db.url=jdbc:sqlite:target/sqlite/client
#db.url=jdbc:firebirdsql://host[:port]/client
#db.url=jdbc:sybase:Tds:localhost:5000/client
# Specify your database user
# Tags: database
db.user=please set me
# Specify your database password
# Tags: database
db.password=
# The initial size of the connection pool
# Tags: database
db.pool.initial.size=5
# The maximum number of connections that will be allocated in the pool
# The http.concurrent.workers.max value should be half or less than half of
# this value.
# Tags: database
db.pool.max.active=40
# The maximum number of connections that can remain idle in the pool, without extra ones
# being released
# Tags: database
db.pool.max.idle=20
# The minimum number of connections that can remain idle in the pool, without extra ones
# being created
# Tags: database
db.pool.min.idle=5
# This is the query to validate the database connection in Connection Pool.
# It is database specific. The following are example statements for different databases.
#
# MySQL
# db.validation.query=select 1
# Oracle
# db.validation.query=select 1 from dual
# DB2
# db.validation.query=select max(1) from syscat.datatypes
# Tags: database
db.validation.query=
# These are settings that will be passed to the JDBC driver as connection properties.
# Suggested settings by database are as follows:
# Oracle
#
# db.connection.properties=oracle.net.CONNECT_TIMEOUT=300000;oracle.net.READ_TIMEOUT=300000;SetBigStringTryClob=true
# Tags: database
db.connection.properties=
# Specify a SQL statement that will be run when a database connection is created
#
# Tags: database
db.init.sql=
# When symmetric tables are created and accessed, this is the prefix to use for the tables.
#
# Tags: database
sync.table.prefix=sym
# Most symmetric queries have a timeout associated with them. This is the default.
# Tags: database
db.sql.query.timeout.seconds=300
# Override the JDBC isolation level. The isolation level is detected by platform and automatically set,
# but it can be overridden here. Most platforms need at least read committed level to prevent
# phantom reads.
# (0=none, 1=read uncommitted, 2=read committed, 4=repeatable read, 8=serializable)
#
# Tags: database
db.jdbc.isolation.level=
# If set to true forces database columns that contain character data to be read as bytes (bypassing JDBC driver character encoding)
# so the raw values be encoded using the system default character set (usually UTF8). This property was added to bypass MySQL character
# encoding so the raw data can be converted to utf8 directly.
#
# Tags: database
# Type: boolean
db.read.strings.as.bytes=false
# Name of class that can extract native JDBC objects and interact directly with the driver.
# Spring uses this to perform operations specific to database, like handling LOBs on Oracle.
#
# Tags: database
db.native.extractor=org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor
# This is how long a request for a connection from the datasource will wait before
# giving up.
#
# Tags: database
db.pool.max.wait.millis=30000
# This is how long a connection can be idle before it will be evicted.
# Tags: database
db.pool.min.evictable.idle.millis=120000
# This is the default fetch size for streaming result sets.
#
# Tags: database
db.jdbc.streaming.results.fetch.size=100
# This is the default number of rows that will be sent to the database as a batch when
# SymmetricDS uses the JDBC batch API. Currently, only routing uses JDBC batch. The
# data loader does not.
#
# Tags: database,routing
db.jdbc.execute.batch.size=100
# Indicates that case should be ignored when looking up references to tables using the database's metadata api.
#
# Tags: database
# Type: boolean
db.metadata.ignore.case=true
# Determines whether delimited identifiers are used or normal SQL92
# identifiers (which may only contain alphanumerical characters and the
# underscore, must start with a letter and cannot be a reserved keyword).
#
# Tags: database
# Type: boolean
db.delimited.identifier.mode=true
# Name of a JNDI data source to use instead of using SymmetricDS's connection pool. When
# this is set the db.url is ignored. Using a JNDI data source is relevant when deploying
# to an application server.
#
# Tags: database
db.jndi.name=
# This is the number of HTTP concurrent push/pull requests SymmetricDS will accept. This is controlled
# by the NodeConcurrencyFilter. The number is per servlet the filter is applied to. The
# db.pool.max.active value should be twice this value.
#
# DatabaseOverridable: true
# Tags: transport
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.
# Tags: transport
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.)
# Set this value equal to 'all' if all server names should be accepted.
# Set this value to blank if a valid SSL cert is required.
# Tags: transport
# DatabaseOverridable: true
https.verified.server.names=
# Save data to the file system before transporting it to the client or loading
# it to the database if the number of bytes is past a certain threshold. This allows
# for better compression and better use of database and network resources. Statistics
# in the batch tables will be more accurate if this is set to true because each timed
# operation is independent of the others.
#
# DatabaseOverridable: true
# Tags: transport
# Type: boolean
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.)
#
# DatabaseOverridable: true
# Tags: transport
stream.to.file.threshold.bytes=0
# If stream.to.file.enabled is true, then this is how long a file will be retained in the
# staging directory after it has been marked as done.
#
# DatabaseOverridable: true
# Tags: transport
stream.to.file.ttl.ms=3600000
# If stream.to.file.enabled is false and staging is purged based on the database, then this
# is the minimum amount of time a staging file will be retained after it is purged from the
# database
#
# DatabaseOverridable: true
# Tags: transport
stream.to.file.min.ttl.ms=1800000
# When this is set to false, then batches in the staging area will only be purged after they have been
# purged from the database. If this is set to true, then batches will be purged based on the
# stream.to.file.ttl.ms setting.
#
# DatabaseOverridable: true
# Tags: transport
# Type: boolean
stream.to.file.purge.on.ttl.enabled=false
# This is the number of times we will attempt to send an ACK back to the remote node
# when pulling and loading data.
#
# DatabaseOverridable: true
# Tags: transport
num.of.ack.retries=5
# After a push or pull HTTP connection has been idle for this many milliseconds, a small
# partial acknowledgement or partial batch is sent to keep the connection alive.
#
# DatabaseOverridable: true
# Tags: transport
send.ack.keepalive.ms=60000
# This is the amount of time to wait between trying to send an ACK back to the remote node
# when pulling and loading data.
#
# DatabaseOverridable: true
# Tags: transport
time.between.ack.retries.ms=5000
# Sets both the connection and read timeout on the internal HttpUrlConnection
#
# DatabaseOverridable: true
# Tags: transport
http.timeout.ms=90000
# 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
#
# DatabaseOverridable: true
# Tags: transport
# Type: boolean
http.compression=true
# The HTTP client connection, during a push, buffers the entire outgoing pay-load locally
# before sending it. Set this to true if you are getting heap space errors during
# a push. Note that basic auth may not work when this is turned on.
#
# DatabaseOverridable: true
# Tags: transport
# Type: boolean
http.push.stream.output.enabled=true
# When HTTP chunking is turned on, this is the size to use for each chunk.
#
# DatabaseOverridable: true
# Tags: transport
http.push.stream.output.size=30720
# Disable compression from occurring on Servlet communication. This property only
# affects the outbound HTTP traffic streamed by the PullServlet and PushServlet.
#
# DatabaseOverridable: true
# Tags: transport
# Type: boolean
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
#
# DatabaseOverridable: true
# Tags: transport
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
#
# DatabaseOverridable: true
# Tags: transport
compression.strategy=0
# Indicate whether the batch servlet (which allows specific batches to be requested) is enabled.
#
# Tags: other
# Type: boolean
web.batch.servlet.enable=true
# Specify the transport type. Supported values currently include: http, file, internal.
#
# Tags: transport
transport.type=http
# This is the number of maximum number of bytes to synchronize in one connect.
#
# DatabaseOverridable: true
# Tags: transport
transport.max.bytes.to.sync=1048576
# Networks errors will be logged at INFO level since they are retried.
# After the maximum number of millis for network errors that continue in succession, the logging
# switches to WARN level.
#
# DatabaseOverridable: true
# Tags: transport
transport.max.error.millis=300000
# This indicates whether this node engine should be started when the instance is restarted
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.start.engine=true
# If this is true, when symmetric starts up it will try to create the necessary tables.
#
# Tags: general
# Type: boolean
auto.config.database=true
# If this is true, triggers will be created or dropped to match configuration during the sync triggers process.
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.triggers=true
# Number of threads to use for creating triggers and removing old ones.
#
# DatabaseOverridable: true
# Tags: general
sync.triggers.thread.count.per.server=3
# If this is true, when a configuration change is detected during routing,
# symmetric will make sure all triggers in the database are up to date.
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.triggers.after.config.change=true
# If this is true, when a configuration change is detected while being loaded onto a target node,
# symmetric will make sure all triggers in the database are up to date.
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.triggers.after.config.loaded=true
# If this is true, then run the sync triggers process at startup
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.triggers.at.startup=true
# If this is true, then check if configuration should be pulled from registration server at startup.
# If the config version in the database does not match the software version, it will pull config.
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.config.at.startup=true
# If this is true, then check if configuration should be pulled from registration server after upgrading.
# If the config version in the database does not match the software version, it will pull config.
#
# Tags: general
# Type: boolean
auto.sync.config.after.upgrade=true
# Capture and send SymmetricDS configuration changes to client nodes.
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.configuration=true
# Whether triggers should fire when changes sync into the node that this property is configured for.
#
# DatabaseOverridable: true
# Tags: general
# Type: boolean
auto.sync.configuration.on.incoming=true
# Update the node row in the database from the local properties during a heartbeat operation.
#
# Tags: general
# Type: boolean
auto.update.node.values.from.properties=true
# If this is true, then node, group, security and identity rows will be inserted if the
# registration.url is blank and there is no configured node identity.
#
# Tags: general
# Type: boolean
auto.insert.registration.svr.if.not.found=true
# 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.
#
# Tags: general
auto.config.registration.svr.sql.script=
# This is hook to give the user a mechanism to indicate the schema version that is being synchronized.
#
# DatabaseOverridable: true
#
# Tags: other
schema.version=?
# 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. This parameter is specific to the node
# that is trying to register, not the node that is providing registration.
#
# DatabaseOverridable: true
# Tags: registration
registration.number.of.attempts=-1
# Indicates that if registration is reopened if the same password should be used. If set to false
# then a new password will be generated.
#
# DatabaseOverridable: true
# Tags: registration
# Type: boolean
registration.reopen.use.same.password=true
# Indicates whether SymmetricDS should be re-initialized immediately before registration.
# When a client is successful with its registration, it will un-install its database
# objects (sym triggers, tables, and procedures), then re-install its database objects
# and load the configuration received from registration.
#
# DatabaseOverridable: true
# Tags: registration
# Type: boolean
registration.reinitialize.enable=false
# Initial load and reload events should normally block other channels to ensure each table
# is loaded first followed by changes captured during the initial load. Setting this to false
# will allow all channels to load in priority order even when reload events or
# an initial load is running.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.block.channels=true
# Set this if tables should be created prior to an initial load.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.create.first=false
# Set this if tables should be purged prior to an initial load.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.delete.first=false
# This is the SQL statement that will be used for purging a table
# during an initial load.
#
# DatabaseOverridable: true
# Tags: load
initial.load.delete.first.sql=delete from %s
# Indicate that the initial load events should be put on the reload channel.
# If this is set to false each table will be put on it's assigned channel during
# the reload.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.use.reload.channel=true
# Indicate that if both the initial load and the reverse initial load
# are requested, then the reverse initial load should take place first.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.reverse.first=true
# Indicate that the extract job job should be used
# to extract reload batches
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.use.extract.job.enabled=true
# Indicate that the initial load batches will be sent as soon
# as they are staged. Used in combination with initial.load.use.extract.job.enabled=true
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.extract.and.send.when.staged=true
# The number of threads available for concurrent extracts of initial load batches.
#
# DatabaseOverridable: true
# Tags: load
initial.load.extract.thread.per.server.count=20
# The number of milliseconds to wait until the lock will be broken on an initial load
# extract job.
#
# DatabaseOverridable: true
# Tags: load
initial.load.extract.timeout.ms=7200000
# Indicates that the SQL used to extract data from a
# table for an initial load should concatenate the data using
# the same SQL expression that a trigger uses versus concatenating
# the data in code.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
initial.load.concat.csv.in.sql.enabled=false
# This is SQL that will run on the client before an initial load starts.
# The default delimiter for these lines is a semicolon. To override, include
# a single line that starts with delimiter and is followed by the new delimiter, then the old
# For example a line that reads:
# delimiter $;
# would change sql lines to have a delimiter of $ for subsequent lines
#
# DatabaseOverridable: true
# Tags: load
# Type: sql
initial.load.before.sql=
# This is SQL that will run on the client after an initial load finishes.
# The default delimiter for these lines is a semicolon. To override, include
# a single line that starts with delimiter and is followed by the new delimiter, then the old
# For example a line that reads:
# delimiter $;
# would change sql lines to have a delimiter of $ for subsequent lines
# DatabaseOverridable: true
# Tags: load
# Type: sql
initial.load.after.sql=
# This is SQL that will run on the server before a reverse initial load starts.
#
# DatabaseOverridable: true
# Tags: load
# Type: sql
initial.load.reverse.before.sql=
# This is SQL that will run on the server after a reverse initial load finishes.
#
# DatabaseOverridable: true
# Tags: load
# Type: sql
initial.load.reverse.after.sql=
# Specify a system command that writes the structure of
# the database to system.out to be captured and sent to the
# node that is being initial loaded. Used in conjunction with
# initial.load.schema.load.command.
# An example is: pg_dump --dbname=server --schema=my_schema --schema-only --clean
#
# DatabaseOverridable: true
# Tags: load
initial.load.schema.dump.command=
# Specify a system command that will take the content captured
# by initial.load.schema.dump.command and apply it to the database.
# The content is passed to the system command via system.in.
# An example is: psql --output=output.log --dbname=client
#
# DatabaseOverridable: true
# Tags: load
initial.load.schema.load.command=
# If this is true, registration is opened automatically for nodes requesting it.
#
# DatabaseOverridable: true
# Tags: registration
# Type: boolean
auto.registration=false
# If this is true, a reload is automatically sent to nodes when they register
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
auto.reload=false
# If this is true, a reload is automatically sent from a source node
# to all target nodes after the source node has registered.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
auto.reload.reverse=false
# If this is true, when a batch receives a foreign key violation,
# the missing data will be automatically sent to resolve it.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
auto.resolve.foreign.key.violation=true
# Indicate whether the process of inserting data, data_events and outgoing_batches for
# a reload is transactional. The only reason this might be marked as false is to reduce
# possible contention while multiple nodes connect for reloads at the same time.
#
# DatabaseOverridable: true
# Tags: load
# Type: boolean
datareload.batch.insert.transactional=true
# Enables clustering of jobs.
#
# DatabaseOverridable: true
# Tags: jobs
# Type: boolean
cluster.lock.enabled=false
# 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.
#
# Tags: jobs
cluster.server.id=
# 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.
#
# DatabaseOverridable: true
# Tags: jobs
cluster.lock.timeout.ms=7200000
# The amount of time a thread can hold a shared or exclusive lock before another thread can break the lock.
# The timeout is a safeguard in case an unexpected exception causes a lock to be abandoned.
# Restarting the service will clear all locks.
#
# DatabaseOverridable: true
# Tags: jobs
lock.timeout.ms=1800000
# While waiting for a lock to be released, how often should we check the lock status
# in the sym_lock table in the database.
#
# DatabaseOverridable: true
# Tags: jobs
lock.wait.retry.ms=10000
# If jobs need to be synchronized so that only one job can run at a time, set this parameter to true
#
# DatabaseOverridable: true
# Tags: jobs
# Type: boolean
jobs.synchronized.enable=false
# This is how often the push job will be run to schedule pushes to nodes.
#
# DatabaseOverridable: true
# Tags: jobs
job.push.period.time.ms=60000
# This is the minimum time that is allowed between pushes to a specific node.
#
# DatabaseOverridable: true
# Tags: jobs
push.period.minimum.ms=0
# This is how often the pull job will be run to schedule pulls of nodes.
#
# DatabaseOverridable: true
# Tags: jobs
job.pull.period.time.ms=60000
# This is the minimum time that is allowed between pulls of a specific node.
#
# DatabaseOverridable: true
# Tags: jobs
pull.period.minimum.ms=0
# This is how often accumulated statistics will be flushed out to the database from memory.
#
# DatabaseOverridable: true
# Tags: jobs
job.stat.flush.cron=0 0/5 * * * *
# This is how often a client will push its status to the root server. Used in conjuction with hybrid.push.pull.
#
# DatabaseOverridable: true
# Tags: jobs
job.report.status.cron=0 0/5 * * * *
# This is how often the router will run in the background
#
# DatabaseOverridable: true
# Tags: jobs
job.routing.period.time.ms=10000
# This is how often the heartbeat job runs. Note that this doesn't mean that a heartbeat
# is performed this often.
# See heartbeat.sync.on.push.period.sec to change how often the heartbeat is sync'd
#
# DatabaseOverridable: true
# Tags: jobs
job.heartbeat.period.time.ms=900000
# DatabaseOverridable: true
# Tags: jobs
job.watchdog.period.time.ms=3600000
# This is how often the incoming batch purge job will be run.
#
# DatabaseOverridable: true
# Tags: jobs
job.purge.incoming.cron=0 0 0 * * *
# This is how often the outgoing batch and data purge job will be run.
#
# DatabaseOverridable: true
# Tags: jobs
job.purge.outgoing.cron=0 0 0 * * *
# This is when the sync triggers job will run.
#
# DatabaseOverridable: true
# Tags: jobs
job.synctriggers.cron=0 0 0 * * *
# This is when the sync config job will run.
#
# DatabaseOverridable: true
# Tags: jobs
job.sync.config.cron=0 0/10 1 * * *
# This is when the refresh cache job will run.
#
# DatabaseOverridable: true
# Tags: jobs
job.refresh.cache.cron=0/30 * * * * *
# This is when the stage management job will run.
#
# DatabaseOverridable: true
# Tags: jobs
job.stage.management.cron=0 0 * * * *
# This is how often the initial load extract queue job will run in the background
#
# DatabaseOverridable: true
# Tags: jobs
job.initial.load.extract.period.time.ms=10000
# DatabaseOverridable: true
# Tags: jobs
job.monitor.period.time.ms=60000
# This is the number of batches that will be purged from the data_event table in one database transaction.
#
# DatabaseOverridable: true
# Tags: purge, jobs
job.purge.max.num.data.event.batches.to.delete.in.tx=5
# This is the number of batches that will be purged in one database transaction.
#
# DatabaseOverridable: true
# Tags: purge, jobs
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.
#
# DatabaseOverridable: true
# Tags: purge
job.purge.max.num.data.to.delete.in.tx=5000
# Whether the refresh cache job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.refresh.cache.job=false
# Whether the routing job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.route.job=true
# Whether the pull job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.pull.job=true
# Whether the push job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.push.job=true
# Whether the purge job is enabled for this node.
#
# Tags: jobs
# Type: boolean
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_host table for the current node.
#
# Tags: jobs
# Type: boolean
start.heartbeat.job=true
# Whether the sync triggers job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.synctriggers.job=true
# Whether the sync config job is enabled for this node.
# This job checks that the configuration version matches the software version, otherwise it
# will pull the latest configuration from the registration server.
#
# DatabaseOverridable: true
# Tags: jobs
# Type: boolean
start.sync.config.job=true
# Whether the statistic flush job is enabled for this node.
#
# Tags: jobs
start.stat.flush.job=true
# Whether the watchdog job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.watchdog.job=true
# Whether the stage management job is enabled for this node.
#
# Tags: jobs
# Type: boolean
start.stage.management.job=true
# Whether the background initial load extractor job is started.
#
# Tags: jobs
# Type: boolean
start.initial.load.extract.job=true
# Whether the monitor job is started.
#
# Tags: jobs
# Type: boolean
start.monitor.job=true
# Whether the routing job will start manually when a push or pull is started
#
# Tags: jobs
# Type: boolean
route.on.extract=false
# The number of threads created that will be used to pull nodes concurrently on one server in the cluster.
#
# DatabaseOverridable: true
# Tags: jobs
pull.thread.per.server.count=10
# The amount of time a single pull worker node_communication lock will timeout after.
#
# DatabaseOverridable: true
# Tags: jobs
pull.lock.timeout.ms=7200000
# The number of threads created that will be used to push to nodes concurrently on one server in the cluster.
#
# DatabaseOverridable: true
# Tags: jobs
push.thread.per.server.count=10
# The amount of time a single push worker node_communication lock will timeout after.
#
# DatabaseOverridable: true
# Tags: jobs
push.lock.timeout.ms=7200000
# 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.
#
# DatabaseOverridable: true
# Tags: routing
routing.peek.ahead.window.after.max.size=2000
# When reading data to route, if a lot of data has been committed in a single transaction, then
# the peek ahead queue size can cause out of memory errors. This setting instructs the routing
# reader to disperse with all "non" active transactions if the peek ahead queue grows to be
# a certain percentage of the overall allocated heap size.
#
# DatabaseOverridable: true
# Tags: routing
routing.peek.ahead.memory.threshold.percent=50
# DatabaseOverridable: true
# Tags: routing
routing.wait.for.data.timeout.seconds=330
# DatabaseOverridable: true
# Tags: routing
routing.flush.jdbc.batch.size=50000
# This is the number of gaps that will be included in the SQL that is used to select data
# from sym_data. If there are more gaps than this number, then the last gap will in the SQL
# will use the end id of the last gap.
#
# DatabaseOverridable: true
# Tags: routing
routing.max.gaps.to.qualify.in.sql=100
# This is the maximum number of changes that can be applied to the data_gap table.
# If the gap detection exceeds this number of changes,
# it will record the minimal gaps to the table and keep the rest in memory.
# This setting only applies to non-clustered systems.
#