SymmetricDS 2 User Guide

Authors

Eric Long , Chris Henson , Mark Hanes

v2.0

Permission to use, copy, modify, and distribute the SymmetricDS 2 User Guide Version 2.0 for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies.


Table of Contents

Preface
1. Introduction
1.1. What is SymmetricDS?
1.2. Background
1.3. SymmetricDS Features
1.3.1. Notification Schemes
1.3.2. Two-Way Table Synchronization
1.3.3. Data Channels
1.3.4. Transaction Awareness
1.3.5. Data Filtering and Rerouting
1.3.6. HTTP(S) Transport
1.3.7. Remote Management
1.4. System Requirements
1.5. What's new in SymmetricDS 2
2. Hands-on Tutorial
2.1. Installing SymmetricDS
2.2. Creating and Populating Your Databases
2.3. Starting SymmetricDS
2.4. Registering a Node
2.5. Sending an Initial Load
2.6. Pulling Data
2.7. Pushing Data
2.8. Verifying Outgoing Batches
2.9. Verifying Incoming Batches
3. Planning an Implementation
3.1. Identifying Nodes
3.2. Organizing Nodes
3.3. Defining Node Groups
3.4. Linking Nodes
3.5. Choosing Data Channels
3.6. Defining Data Changes to be Captured and Routed
3.6.1. Defining Triggers
3.6.2. Defining Routers
3.6.3. Planning Initial Loads
3.7. Planning for Registering Nodes
4. Configuration
4.1. Node Properties
4.2. Node
4.3. Node Group
4.4. Node Group Link
4.5. Channel
4.6. Triggers and Routers
4.6.1. Trigger
4.6.2. Router
4.6.2.1. Default Router
4.6.2.2. Column Match Router
4.6.2.3. Lookup Table Router
4.6.2.4. Relational Router
4.6.2.5. Scripted Router
4.7. Opening Registration
4.8. Initial Load
4.8.1. Dead Triggers
4.9. Bi-Directional Synchronization
4.10. Multi-Tiered Synchronization
4.11. Registration Redirect
4.12. Jobs
4.13. Controlling Synchronization
4.14. Sync Triggers Job
4.15. JMS Publishing
5. Deployment
5.1. Deployment Options
5.1.1. Web Archive
5.1.2. Standalone
5.1.3. Embedded
5.2. Running as a Windows Service
5.3. Running as a Nix Service
5.4. Clustering
5.5. Encrypted Passwords
5.6. Secure Transport
5.6.1. Sym Launcher
5.6.2. Tomcat
5.6.3. Keystores
5.6.4. Generating Keys
5.7. Basic Authentication
5.8. IP Filtering
5.8.1. CIDR Filter
5.8.2. Literal Filter
5.8.3. Wildcarding
5.8.4. Range Filters
5.8.5. Inner workings
5.8.6. Configuration
6. Extending SymmetricDS
6.1. IParameterFilter
6.2. IDataLoaderFilter
6.3. ITableColumnFilter
6.4. IBatchListener
6.5. IAcknowledgeEventListener
6.6. IReloadListener
6.7. IExtractorFilter
6.8. ISyncUrlExtension
6.9. INodeIdGenerator
6.10. ITriggerCreationListener
6.11. IBatchAlgorithm
6.12. IDataRouter
6.13. IHeartbeatListener
6.14. IOfflineClientListener
6.15. IOfflineServerListener
6.16. INodePasswordFilter
6.17. IServletExtension
7. Administration
7.1. Changing Triggers
7.2. Changing Configuration
7.3. Logging Configuration
7.4. Java Management Extensions
7.5. Temporary Files
7.6. Database Purging
7.7. Debugging Issues
7.8. Querying for Errors
7.9. Fixing Errors
7.10. Measuring Performance
A. Data Model
A.1. NODE
A.2. NODE_SECURITY
A.3. NODE_IDENTITY
A.4. NODE_GROUP
A.5. NODE_GROUP_LINK
A.6. NODE_HOST
A.7. NODE_HOST_CHANNEL_STATS
A.8. CHANNEL
A.9. NODE_CHANNEL_CTL
A.10. NODE_GROUP_CHANNEL_WINDOW
A.11. TRIGGER
A.12. ROUTER
A.13. TRIGGER_ROUTER
A.14. PARAMETER
A.15. REGISTRATION_REDIRECT
A.16. TRIGGER_HIST
A.17. DATA
A.18. DATA_REF
A.19. DATA_GAP
A.20. DATA_EVENT
A.21. OUTGOING_BATCH
A.22. INCOMING_BATCH
A.23. LOCK
B. Parameters
B.1. Startup Parameters
B.2. Runtime Parameters
C. Database Notes
C.1. Oracle
C.2. MySQL
C.3. PostgreSQL
C.4. MS SQL Server
C.5. HSQLDB
C.6. H2
C.7. Apache Derby
C.8. IBM DB2
C.9. Firebird
C.10. Informix
D. Data Format
E. Version Numbering