SymmetricDS 2 User Guide

Authors

Eric Long , Chris Henson , Mark Hanes , Greg Wilmer

v2.5

Permission to use, copy, modify, and distribute the SymmetricDS 2 User Guide Version 2.5 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. Mapping Triggers to Routers
3.6.3.1. Planning Initial Loads
3.6.3.2. Circular References and "Ping Back"
3.6.4. Planning for Registering Nodes
3.7. Planning Data Transformations
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. Subselect Router
4.6.2.5. Scripted Router
4.6.3. Trigger / Router Mappings
4.6.3.1. Initial Load
4.6.3.2. Dead Triggers
4.6.3.3. Enabling "Ping Back"
4.7. Opening Registration
4.8. Transforming Data
4.8.1. Transform Configuration Tables
4.8.2. Transformation Types
5. Advanced Topics
5.1. Advanced Synchronization
5.1.1. Bi-Directional Synchronization
5.1.2. Multi-Tiered Synchronization
5.1.2.1. Registration Redirect
5.2. Jobs
5.2.1. Route Job
5.2.1.1. Overview
5.2.1.2. Data Gaps
5.2.2. Controlling Synchronization Frequency
5.2.3. Sync Triggers Job
5.3. JMS Publishing
5.4. Deployment Options
5.4.1. Web Archive
5.4.2. Standalone
5.4.3. Embedded
5.5. Running SymmetricDS as a Service
5.5.1. Running as a Windows Service
5.5.2. Running as a *nix Service
5.6. Clustering
5.7. Encrypted Passwords
5.8. Secure Transport
5.8.1. Sym Launcher
5.8.2. Tomcat
5.8.3. Keystores
5.8.4. Generating Keys
5.9. Basic Authentication
5.10. Multi-Server Mode
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
7. Administration
7.1. Solving Synchronization Issues
7.1.1. Analyzing the Issue
7.1.2. Resolving the Issue
7.2. Changing Triggers
7.3. Re-synchronizing Data
7.4. Changing Configuration
7.5. Logging Configuration
7.6. Java Management Extensions
7.7. Temporary Files
7.8. Database Purging
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. NODE_HOST_STATS
A.9. NODE_HOST_JOB_STATS
A.10. CHANNEL
A.11. NODE_CHANNEL_CTL
A.12. NODE_GROUP_CHANNEL_WINDOW
A.13. TRIGGER
A.14. ROUTER
A.15. TRIGGER_ROUTER
A.16. PARAMETER
A.17. REGISTRATION_REDIRECT
A.18. REGISTRATION_REQUEST
A.19. TRIGGER_HIST
A.20. DATA
A.21. DATA_REF
A.22. DATA_GAP
A.23. DATA_EVENT
A.24. OUTGOING_BATCH
A.25. INCOMING_BATCH
A.26. LOCK
A.27. TRANSFORM_TABLE
A.28. TRANSFORM_COLUMN
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
C.11. Interbase
D. Data Format
E. Version Numbering