SymmetricDS Pro Changelog

What's new in SymmetricDS Pro 3.15.4

Mar 19, 2024
  • 0006297: [Bug] Upgrade mysql, postgres, vaadin, jetty libraries (elong)
  • 0006296: [Bug] DefaultDatabaseWriter sql(...) method parsing sql statement during exception needs changed (pmarzullo)
  • 0006300: [Bug] Hot spot removing old node sessions in mixed environment with versions < 3.11 (elong)
  • 0006272: [Improvement] Startup logging for specific node securities that can't decrypt (elong)
  • 0006302: [Bug] Unable to set web context path with symmetric.server.web.home (elong)
  • 0006301: [Improvement] Update Rest Keys docs to reflect correct error code (cquamme)
  • 0006201: [Improvement] Add support for NTypes in XML (cquamme)
  • 0006292: [Improvement] File sync BeanShell script should place files in a separate error directory if they are not writable (emiller)
  • 0006288: [Bug] Writing table definitions from xml for indexes that do not have a corresponding platform index (josh-a-hicks)
  • 0006285: [Bug] Memory leak in MSSQL JDBC driver 10.2.0 (elong)
  • 0006279: [Improvement] Make File Sync Tracker transactions smaller to minimize locking collision problems (pmarzullo)
  • 0006283: [Bug] Spring Framework URL Parsing with Host Validation (elong)
  • 0006278: [Improvement] Change file sync processing to make immediate request when batches are received or sent (pmarzullo)
  • 0006275: [Bug] FileSyncDataRouter gets FileTriggerRouters from database instead of cache (pmarzullo)
  • 0006271: [Bug] Finding trigger histories should treat null or blank as default catalog/schema (elong)
  • 0006270: [Bug] Prevent OracleSymmetricDialect from underestimating the current value of a sequence (emiller)
  • 0006267: [Bug] Prevent columns from being created with a size of 0 (emiller)
  • 0006264: [Bug] Include source_node_id in the where clause when updating or deleting from sym_table_reload_status (emiller)
  • 0006256: [Improvement] Add virtual column to sym_file_snapshot for easier routing by column match and bean shell routers (pmarzullo)
  • 0006259: [Bug] Sync triggers is mis-detecting last update time on sym triggers (elong)
  • 0006170: [Bug] DB Compare incorrectly comparing values (jvanmeter)
  • 0006253: [Bug] Issue with Initial loads when using Sybase ASE Unitypes while using JTDS driver (jvanmeter)
  • 0006252: [Bug] ASE large column types for primary keys need to limit max size based on page size (pmarzullo)
  • 0006217: [Bug] Schema information missing from drop index query generated by DDL on PostgreSQL
  • 0006229: [Bug] Old stage files used after node is rebuilt (elong)
  • 0006240: [Improvement] Failed to update a table_reload_request as processed for loadId (elong)
  • 0006243: [New Feature] Support H2 version 2.2 (emiller)
  • 0006251: [Bug] BSH column transform column names can conflict with built-in variable names (elong)
  • 0006246: [Bug] Cancel Load needs to make sure processes threads shut down before updating outstanding load request records (pmarzullo)
  • 0006226: [Bug] H2 DDL Builder incorrectly adds size information to "UUID" data type (cquamme)

New in SymmetricDS Pro 3.15.3 (Feb 14, 2024)

  • 0006224: [Bug] Imported configuration sometimes gets deleted from sym_data (emiller)
  • 0006206: [Improvement] Add LOB Mapping for SQL Server 2005 and later (cquamme)
  • 0006214: [Bug] SQLite sync error on sym_table_reload_request when db.treat.date.time.as.varchar.enabled (elong)
  • 0006212: [Bug] Registration error: sym_parameter changes causing sync triggers need to be limited to DML changes (pmarzullo)
  • 0006210: [Improvement] "Node failed to authenticate" in server logs after server restarts or client session expires (elong)
  • 0006207: [Bug] Reverse initial load sometimes doesn't start when also using forward initial load (elong)
  • 0006188: [New Feature] Add boolean data type support for Oracle 23c (cquamme)
  • 0006205: [Bug] Syncing a NCLOB from Oracle to Postgres results in an error (cquamme)
  • 0006194: [Bug] Postgres XML incorrectly identifies "BOOLEAN" as "BIT" (cquamme)
  • 0006198: [Improvement] Record failed sync trigger attempts to database in trigger history and stats (elong)
  • 0006195: [Bug] symadmin module error when file exists without a dot (elong)
  • 0006193: [Bug] Adjusting unique indexes to non-unique when columns can be null should be able to be turned off by parameter (pmarzullo)
  • 0006189: [Improvement] Issue with syncing BIGINT, INT, TINYINT, SMALLINT, and BIT data types to Oracle and Tibero databases (cquamme)
  • 0006165: [Improvement] During an upgrade, log DDL before executing it instead of afterwards (emiller)
  • 0006168: [Bug] File sync push is rejected because of a lack of a reservation (pmarzullo)
  • 0006171: [Bug] Cookies required error when both http and https enabled (elong)
  • 0006176: [Bug] Upgrade Jetty (elong)
  • 0006184: [Improvement] Multi-threaded routing and gap detection (elong)
  • 0006185: [Improvement] Unnecessary unrouted batch appears along with routed batch (elong)
  • 0006178: [Improvement] Snapshot util timeout for taking too long on table definitions (elong)
  • 0006174: [Improvement] Could not find trigger history, causes error of had X columns but expected Y (elong)
  • 0006163: [Bug] Snapshot error from database time on Sybase ASE/ASA (elong)

New in SymmetricDS Pro 3.14.7 (Jun 2, 2023)

  • [Bug] Replicating to postgres to postgres timestamp with default
  • [Bug] Interbase fixes: failing to have prepared statement indicators in set and select portion of SQL statements (pmarzullo)
  • [Improvement] Sync triggers by $(targetExternalId) and call after registration (elong)
  • [Bug] DBCompare --use-sym-config true (cquamme)
  • [Improvement] Improve docs on db.init.sql property (emiller)
  • 0 [Bug] Class Not Found Exception when connecting to Redshift (cquamme)
  • [Improvement] Capture timings when running Sync Triggers (pmarzullo)
  • [Bug] Data can become misaligned with column names during extraction after a column gets renamed (emiller)
  • [Improvement] Snapshot util not returning (elong)
  • [Bug] SQL Server create or alter trigger fails when table is not in default schema (dbo) (pmarzullo)
  • [Improvement] Redshift Bulk Loader increased versioning and dependencies (josh-a-hicks)
  • [Improvement] DDL Capture Changes - Three enhancements to DDL trigger capture (josh-a-hicks)
  • [Bug] NullPointerException when writing a delete to Kafka when old data has not been captured (emiller)
  • [Bug] When Capture of Old Data is disabled, Deletes get an Index Out Of Bounds Error with Kafka (jvanmeter)
  • [Bug] NPE when inserting into sym_incoming_batch on some platforms (emiller)
  • [Bug] Sybase ASE gets Misinterpreted as Sybase SQL Anywhere (jvanmeter)
  • [Improvement] Allow specification of database platform of symmetric when DbDxport execution with load only/extract only/log miner (pmarzullo)
  • [Bug] 3 tier deployment, 3rd tier does not get top level tier sym_node* tables (pmarzullo)
  • [Bug] SQL Server and Sybase stream row on updates trigger syntax issue (pmarzullo)
  • [New Feature] Add a gradle task that generates javadoc and publishes it to the website (emiller)
  • [Bug] Allow registration of other nodes after registration and initial load is complete (elong)
  • [Improvement] Failed to decrypt node password from lost secret key in keystore (elong)
  • [Improvement] Slow routing when using $(targetExternalId) variable (elong)
  • [Improvement] SymmetricDS seems to require Postgres 11, but the docs don't reflect that (emiller)
  • [Improvement] Unique Index with Multiple Nulls not Properly Handled for Certain Databases (jvanmeter)
  • [New Feature] Support for capturing the row identifier on various platforms if available (default is false) (josh-a-hicks)
  • [New Feature] File sync batches to provide file name as the summary in outgoing and incoming batch. (josh-a-hicks)
  • [Improvement] Add quotation marks around values in threads-stats.csv file in support snapshot (emiller)
  • [New Feature] Add server parameter for setting a server's cookie name (cquamme)
  • [Improvement] Reopening registration should reset the failed login count (emiller)

New in SymmetricDS Pro 3.14.6 (May 12, 2023)

  • [Bug] Downloading Incoming/Outgoing batches does not Decrypt (jvanmeter)
  • [New Feature] Log based setups can now choose another platform for runtime tables other than H2 (josh-a-hicks)
  • [Bug] Conflict Strategy column on Configure File Routing screen shows incorrect value for OLDER_WINS and NEWER_WINS (emiller)
  • [Bug] Edit Script button on Configure Extensions screen has confusing behavior when multiple extensions are selected (emiller)
  • [New Feature] DB2 iSeries AS400 support for log / journal based capture (josh-a-hicks)
  • [Bug] OracleStatementParser fails to parse lob write when lob contains semicolon newline (cquamme)
  • [Bug] Load Data Wizard prevents the user from continuing when file triggers are configured but no table triggers are configured (emiller)
  • [New Feature] Add support for Progress OpenEdge databases (emiller)
  • [Bug] Images do not show up when deploying SymmetricDS Pro to Tomcat as a WAR file (emiller)
  • [Bug] IllegalArgumentException on Manage Incoming/Outgoing Loads screens (emiller)
  • [Improvement] SetupDatabaseScreen Database Type drop down sorting change (pmarzullo)
  • [Bug] IllegalArgumentException when editing a custom transform column (emiller)
  • [Bug] Outgoing/Incoming Batch Panels fail when sorting grid by Bulk Loader Flag (pmarzullo)
  • 0005701: [Bug] Processing of all event types except insert, update and delete are skipped in cloud bulk database writer (pmarzullo)

New in SymmetricDS Pro 3.14.5 (Feb 15, 2023)

  • [Improvement] Increase default db.pool.max.active connections to match what is needed for http.concurrent.workers.max (pmarzullo)
  • [New Feature] Add support for H2 2.x and upgrade the H2 driver to the latest version (emiller)

New in SymmetricDS Pro 3.14.4 (Jan 16, 2023)

  • 0005655: [Bug] sym_node_host trigger should capture changes even if auto.sync.configuration is set to false (pmarzullo)
  • 0005652: [New Feature] Improve SQL Server DDL triggers and add DDL triggers for Oracle and Postgres (emiller)
  • 0005650: [Improvement] Problems replicating DDL to another node with the same database type but different database version (emiller)
  • 0005648: [Improvement] Add "open registration" call to REST service (elong)
  • 0005645: [Bug] Registration redirect URL does not have query parameters for older versions of SymmetricDS clients (pmarzullo)
  • 0005646: [Bug] DBExport incorrectly formats time data (emiller)
  • 0005640: [Bug] Filtering transactions for snapshot gets stack overflow error and never finishes creating snapshot (pmarzullo)
  • 0005638: [Bug] Flush cache of routers when a router is changed (elong)
  • 0005625: [Bug] Stack overflow while extracting batch containing a table removed from replication (elong)
  • 0005610: [Improvement] SqlAnywhere support for v. 12 and higher (josh-a-hicks)
  • 0005631: [Improvement] Full load request does not support a reload select statement (josh-a-hicks)
  • 0005635: [Bug] Single Store extends MySQL dialect but does not need to check for an "innodb" engine (josh-a-hicks)
  • 0005630: [Improvement] When deleting FK child rows during conflict resolution and old_data is null, query for the parent row on the target (emiller)
  • 0005624: [Bug] Deletes get ignored when foreign key children exist but cannot be found (emiller)
  • 0004424: [Improvement] Log monitor fails to insert because of duplicate key when logs are shared across instances of a node (pmarzullo)
  • 0005597: [Bug] SymDS is not syncing specific record during initial load (pmarzullo)
  • 0005619: [Bug] Insert statements generated by DBExport contain question marks when there are null values (emiller)
  • 0005611: [Bug] Check sync URL ends with engine name or "sync" (elong)

New in SymmetricDS Pro 3.14.3 (Nov 30, 2022)

  • [New Feature] Propagate default GUID from MSSQL to SQLITE (emiller)
  • [Bug] Mapped default values lead to always detecting a model change (emiller)
  • [Bug] Postgres LOCALTIMESTAMP function gets surrounded by quotes when imported as a default value (emiller)
  • [Bug] Multiple active trigger history for same table (elong)
  • [Bug] Error request path not supported for /server/config (elong)
  • [Bug] Default values for Oracle RAW columns get surrounded by quotes when exported (emiller)
  • [Bug] SQL Server GETDATE() and GETUTCDATE() functions get surrounded by quotes when imported as default values (emiller)
  • [Bug] SQL Server sysname type should not have its size specified (emiller)
  • [Improvement] When installing service for systemd, make sure to specify absolute path to java executable when creating systemd control file (pmarzullo)
  • [Improvement] Updating KafkaDataWriter to work with Filters (jvanmeter)
  • [Improvement] Acknowledgement gets null SQL message (elong)
  • [Bug] Create trigger hist if routing can't find it (elong)
  • [New Feature] Adding New Monitor Types For OS Load Average and OS Open File Handles (cquamme)
  • [Improvement] Default max batch to send as 10 (elong)
  • [Bug] Cannot set up SQL Server log-based replication without "ALTER ANY DATABASE" permission (emiller)
  • [Bug] Multi-homed clustered nodes stuck in loop of retry and resend of batches (elong)
  • [Improvement] Improve how default values are handled when syncing DDL cross-platform (emiller)
  • [Improvement] Add support for Postgres' inet, cidr, macaddr and macaddr8 data types (emiller)
  • [Bug] Initial load error on MySQL with parameter db.treat.date.time.as.varchar.enabled=true (elong)
  • [Improvement] Treat any default value that contains "()" as a function (emiller)
  • [New Feature] Add parameters that specify how to sync default values (emiller)
  • [Improvement] Allow spaces in values within value map column transform expression (emiller)
  • [Bug] Example 25 in User Guide is missing permissions (emiller)
  • [Bug] SQL-Server capture rows that exceed 4000 characters (pmarzullo)
  • [Improvement] Create table without defaults if in error (elong)
  • [Improvement] Add functionality to symadmin export-sym-tables to export alters when upgrading (pmarzullo)
  • [New Feature] Add engine name and server name variables to notification templates (emiller)
  • [Bug] Unique index on function causes error when resolving a conflict (elong)
  • [Bug] Script error from newer wins conflict resolution with old nodes (elong)
  • [Improvement] Service start script always waits for 5s (elong)
  • [Bug] File replication routing job fails with error message when channel is not a file sync channel - needs better error message (emiller)
  • [Bug] Apache commons-text version 1.9 security vulnerability (pmarzullo)
  • [Bug] ORA-06502: PL/SQL: numeric or value error: character string buffer too small (elong)
  • [Bug] Database Platforms That Don't Support SQL Queries Throw Error with SQL Explorer (cquamme)
  • [Improvement] Service wrapper wait for "started" message instead of 5 second timeout (elong)
  • [Bug] Trigger creation fails when 2 new triggers have trigger IDs that are identical when shortened (pmarzullo)
  • [Bug] Failure to Flush when using ConvertToReload router. (jvanmeter)
  • [Bug] Parse exception of batch should remove it from staging (elong)
  • [Improvement] Check sync URL ends with engine name (elong)
  • [Improvement] Parameter that alters table case should be for cross platform only (elong)
  • [Improvement] CPU monitor top threads should ignore threads waiting on I/O (elong)
  • [Bug] ORA-24816 when sync varchar2(4000) and long in same table (elong)

New in SymmetricDS Pro 3.14.2 (Oct 4, 2022)

  • [Bug] Fix json deserialization issue with log summary object (josh-a-hicks)
  • [Task] Document the --client option in the User Guide. I've been told it is useful ;-) (elong)
  • [Improvement] dbexport / dbimport should support oracle virtual columns (emiller)
  • [Bug] Float used on table without primary causes update to not capture (emiller)
  • [Bug] Default values that are functions do not work while creating tables in MySQL (emiller)
  • [Bug] Mysql BIGINT UNSIGNED processed as signed and gives error on larger than 63 bits numbers. (emiller)
  • [Bug] Syncing from Time to Timestamp (or vice versa) in Postgres produced inaccurate values (emiller)
  • [Bug] Unable to write to sym_outgoing_batch when using Postgres (elong)
  • [Bug] Initial load of a table with a self referencing FK will not load if out of order (josh-a-hicks)
  • [Bug] Detect when the order of a primary key changes in order to regenerate it (elong)
  • [Bug] Multiple transform_table rows per source table cause multiplication of rows in outgoing batch (elong)
  • [Bug] DbCompare: The output script to fix issues on the target does not support null values. (emiller)
  • [New Feature] Creating a Parameter That, Upon Registration, Will Automatically Create A Group Link Between Nodes if None Exist (cquamme)
  • [Bug] Android not implemented exception when sym_monitor syncs (elong)
  • [Improvement] Install triggers on registration server before configuration is complete (elong)
  • [Improvement] Sync triggers when parameters change that affect triggers (elong)
  • [Bug] NumberFormatException when querying for an integer greater than Long.MAX_VALUE in SQL Explorer (emiller)
  • [Bug] Sybase ASE issues when upgrading SymmetricDS from an older version to 3.14.* (pmarzullo)
  • [Bug] Conflict resolver fails if there are no primary keys on the target and it is set to not use primary keys from source (jvanmeter)
  • [Improvement] Change parameter treat.binary.as.lob.enabled to default to false (elong)
  • [Bug] Windows service won't start if tmp dir has trailing slash (elong)
  • [Improvement] Add SOURCE_NODE_ID_FROM_DATA to VariableColumnTransform to allow using the source_node_id from the data (pmarzullo)
  • [Improvement] Routing default batch algorithm protection against large transactions (elong)
  • [Improvement] Backup keystore before saving it (elong)
  • [Improvement] Adding Log Info For Queries for Lookup Table Routers (cquamme)
  • [Bug] Cannot write to more than one Kafka instance in a single instance of SymmetricDS (jvanmeter)
  • [Improvement] Parameter to use old conflict pk detect and fallback (elong)
  • [Improvement] Ability to disable sync triggers when sync on incoming is enabled (elong)
  • [Bug] Some default values do not sync correctly from Oracle to Oracle (emiller)
  • [Improvement] Cast TEXT types in MS SQL to VARCHAR for SymmetricDS tables (elong)
  • [Improvement] Cast TEXT to VARCHAR for all tables (elong)
  • [Improvement] Ignore missing tables on config channel (elong)
  • [Improvement] Support snapshot fixes (elong)
  • [Improvement] Table reload request with "where" keyword gets error (elong)
  • [Bug] Batch error missing method sendMissingForeignKeyRowsForLoad (elong)
  • [Bug] When a load filter changes catalog or schema the DML statement is not recreated with the updated values (josh-a-hicks)
  • [Improvement] Cast varchar to nvarchar (elong)
  • [Bug] NPE when running DbFill on a table with a foreign key that references a table in another catalog or schema (emiller)
  • [Bug] Registration left pending when client is 3.12 or newer and server is 3.11 or older (elong)
  • [Bug] New config tables are being routed to old nodes (elong)
  • [Bug] Oracle DATE type should not have its size specified (emiller)
  • [Bug] Oracle TO_TIMESTAMP() function gets surrounded by quotes when imported as a default value (emiller)
  • [Bug] Primary key constraint violation while replicating single table from MSSQL 2017 into PostgreSQL 9.6 (pmarzullo)

New in SymmetricDS Pro 3.14.1 (Aug 30, 2022)

  • [Bug] Snapshots do not contain log files when the files are in a non-default location specified in log4j2.xml (emiller)
  • [Improvement] Check to see that the SymmetricDS tables are created to use the Innodb storage engine on MySQL. (emiller)
  • [Bug] MySqlDdlReader.getTriggers() throws SQLException when MySQL database name contains special character (emiller)
  • [Bug] Initial load won't start if registration_enabled is 1 (elong)
  • [Bug] H2 database (or load only database) gets alter timestamp(0) every time starting (elong)
  • [Bug] MySQL outputs schema with DEFAULT '0000-00-00' that is not compatible (emiller)
  • [Bug] DbFill error arithmetic overflow error with money data type (emiller)
  • [Bug] Oracle XMLTYPE incorrectly mapped to invalid SQL Type SQLXML in MariaDB (emiller)
  • [Bug] dbcompare attempts to insert null into "not null default ..." field (emiller)
  • [Bug] NVARCHAR2() maps incorrectly to VARCHAR() when mapping from Oracle to MariaDB (emiller)
  • [Bug] MS SQL -> SQLite, don't translate "NEXT VALUE FOR" default value (emiller)
  • [Bug] Oracle's REAL datatype should map to DOUBLE in MariaDB, not FLOAT (emiller)
  • [Bug] Oracle's LONG type is incorrectly mapped to MariaDB's MEDIUMTEXT. Should be LONGTEXT (emiller)
  • [Bug] Oracle's CLOB (and NCLOB) type incorrectly maps to MariaDB's MEDIUMTEXT (emiller)
  • [Bug] Unable to translate default column for (new sequentialid()) (very easy fix) (emiller)
  • [Bug] Default value being passed as string for MS Sql Server (emiller)
  • [Bug] Firebird ddl/schema problem when creating tables and deferring constraints (emiller)
  • [Bug] DB Compare does not handle Oracle Timestamp with LOCAL time zone columns properly (emiller)
  • [Bug] dbexport MSSQL geometry -> PGSQL varchar(2147483647); better would be TEXT (emiller)
  • [Bug] Does not replicate index with upper function on PostgreSQL (emiller)
  • [Bug] Initial load delete or truncate with table transform (elong)
  • [Bug] sync.table.prefix parameter ignores for sequence in PostgreSQL (emiller)
  • [Bug] dbcompare prints each table multiple times (emiller)
  • [Bug] The PostgreSQL database cannot be synchronized under the USE_CHANGED_DATA and manual resolution strategy (emiller)
  • [New Feature] Implement conflict_win_count and conflict_lose_count columns in sym_outgoing_batch and sym_incoming_batch (emiller)
  • [Bug] Deleting a trigger doesn't inactivate its sym_trigger_hist entry when auto.sync.triggers.after.config.change=true (emiller)
  • [Bug] Bulk loaded flag is not being read from database for incoming and outgoing services (josh-a-hicks)
  • [Bug] JDBC Bulk Transactions Fallback While Using PostgreSQL (cquamme)
  • [Improvement] Detection of MSSQL Azure Managed Instance (josh-a-hicks)
  • [Improvement] Allow users to disable spatial data type support functions (josh-a-hicks)
  • [Bug] Fix NPE for conflict detection when table does not have a PK and all columns used including those with null values (josh-a-hicks)
  • [Task] Update IReloadListener example in user guide (emiller)
  • [Bug] Tables not created on reverse initial load (elong)

New in SymmetricDS Pro 3.13.7 (Jul 27, 2022)

  • Bugs:
  • Send schema DDL detects widened varchar but does not alter (elong)
  • DDL detects change in column data type for DATE on Oracle (elong)
  • Failed to create update trigger for triggers that use and external_select with $(curTriggerValue) (pmarzullo)

New in SymmetricDS Pro 3.13.6 (Jul 12, 2022)

  • [Bug] Wrong character in document (emiller)
  • [Bug] Sync from MySql to MSSql initial load - table create fails on Decimal Precision when MySQL precision is more than 38 (elong)
  • [Bug] Sync triggers on selected tables without primary key gets trigger hist without primary key columns (elong)
  • [Bug] Oracle log mining throwing exception when finding mismatched LOB record in log mining result set (pmarzullo)
  • [Bug] Server not trusted when sending email (elong)
  • [New Feature] Add system property to control use of "on conflict" on Postgres (elong)
  • [Bug] Mathematical transform turns an integer into a decimal when the result has 8 or more digits (emiller)
  • [Improvement] Substring Transform support for all spaces (josh-a-hicks)
  • [Bug] Conflict resolution based on newer wins with transforms (josh-a-hicks)

New in SymmetricDS Pro 3.13.5 (Jun 4, 2022)

  • [Bug] Conflict resolution batch with token parsing error when newlines in data (elong)
  • [Bug] Conflict Resolution of deletes of parent records fail to delete child records when child tables have no primary keys (pmarzullo)

New in SymmetricDS Pro 3.13.4 (Apr 11, 2022)

  • [Improvement] Bulk loaders should report missing table (elong)
  • [Improvement] Sync incoming load details to target node (table_reload_status, extract_request) (elong)
  • [Improvement] Routing reader may use multiple queries for a large number of gaps (elong)
  • [Improvement] Clean up the consistent use of table constants for registration, trigger installation, extract, and export (elong)
  • [New Feature] Push registration to nodes when group links indicate push (elong)
  • [New Feature] Schedule registration of a node for a window of time (elong)
  • [Improvement] Registration order of nodes should not matter (elong)
  • [Improvement] Build a cache manager to centralize the handling of data caches (pmarzullo)

New in SymmetricDS Pro 3.13.0 (Nov 18, 2021)

  • [Bug] db connection leaks after engine stop (pmarzullo)
  • [Bug] Stopping service breaks connections with error in Interbase logs (pmarzullo)
  • [Bug] MV-Store DB corrupt after stopping SymmetricDS replication software (pmarzullo)
  • [Improvement] Purging large number of extract requests, query time out (elong)
  • [Improvement] Cleanly exit all job threads when engine is stopped (pmarzullo)
  • [Improvement] Subselect router expression improvement (elong)
  • [Improvement] Ignore batch status is sometimes overwritten (elong)
  • [Improvement] Initial load select boolean directly without template (elong)
  • [Improvement] Remove "databases" sub-directory (elong)
  • [Improvement] Upgrade Gradle to latest possible version (emiller)
  • [Bug] Registration server config_version not updating (elong)
  • [New Feature] Speed up start up by only checking tables when version changes (elong)
  • [Bug] var_row_data is defined as mediumtext (rudiejd)
  • [Improvement] Auto sync triggers at startup parameter default off and option to force rebuild (elong)
  • [New Feature] Purge trigger history (elong)
  • [Improvement] Changing parameters should not restart all jobs (elong)
  • [Bug] Interbase Table SYM_TEMP_CONTEXT (elong)
  • [Improvement] Parameter staging.dir should be appended with the engine name (elong)
  • [Improvement] Increase size of file_name column in sym_file_snapshot (elong)

New in SymmetricDS Pro 3.12.12 (Nov 5, 2021)

  • Dbexport should export xml in utf-8 (rudiejd)
  • [Bug] IgnoreColumnException and IgnoreRowException are not handled correctly in bsh extension scripts (rudiejd)
  • [Bug] Source file creation time not retained at destination folder during file synchronization (rudiejd)
  • [Bug] UnixService for wrapper: needs to wait for cmdline object to show up when starting wrapper on Amazon EC2 (pmarzullo)
  • [Bug] Postgresql data type - character varying problem (rudiejd)
  • [Bug] Recording status of Batch with large payloads fails on Derby (rudiejd)
  • [Bug] Postgres operator doesn't exist when using domain user defined type (elong)
  • [Bug] DB2 filtering node list with a limit has invalid syntax (josh-a-hicks)
  • [Bug] DBExport for AS400 fails compatibility check (josh-a-hicks)
  • [New Feature] Record table stats by DML type (josh-a-hicks)
  • [Bug] Oracle SDO_GEOMETRY: problem inserting when both BLOB and SDO_GEOMETRY are in the table (pmarzullo)
  • [Bug] Sybase column of type unitext causing error when used in "where" clause (elong)
  • [Bug] Failing to sync stored procedures containing semi-colons (rudiejd)
  • [Bug] Error on purge on Firebird DB with Dialect 1 (rudiejd)
  • [Bug] Conflict resolution on Derby for batch with large payloads fails with SQLException (rudiejd)
  • [Bug] Spaces prevent conflict configuration from working (elong)
  • [Bug] Tibero won't update table with LOB when missing PK (elong)
  • [Bug] Tibero bulk loader failing because table and columns quoted in control file (elong)
  • [Bug] Bulk loaders treat all conflicts as if their detection type is USE_CHANGED_DATA when forming where clauses (emiller)
  • [Bug] Mail service support for encrypted passwords (josh-a-hicks)
  • [Bug] Data loader gets ArrayIndexOutOfBoundsException on batch (elong)
  • [Bug] Wrong logic for deleting triggers on SQL Anywhere (josh-a-hicks)
  • [Bug] Duplicate column name error (elong)
  • [Bug] Sybase inserts a space instead of an empty string or null value (emiller)
  • [Bug] Table Reload Requests: create schema, delete data, before custom sql should honor initial load order less than 0 (pmarzullo)
  • [Bug] Lexical error when issuing a foreign key correction with a carriage return in the data (pmarzullo)
  • [Bug] Initial load before custom sql to support table replacement with delimiters (josh-a-hicks)
  • [Bug] Postgres default value support for gen_random_uuid() (josh-a-hicks)
  • [Bug] Transforms should return old and new values for updates when column is primary key (elong)
  • [Bug] Failed to route beanshell event from conflict resolution (elong)
  • [Bug] Kafka filtering of event types that are not an INSERT, UPDATE, OR DELETE (josh-a-hicks)

New in SymmetricDS Pro 3.12.11 (Jul 13, 2021)

  • [Improvement] Trigger router cache getting flushed every time initial load extract job runs (elong)
  • [Improvement] Improve performance with sync trigger call for list of triggers (elong)
  • [Improvement] Sync Triggers should execute successfully in parallel by table (pmarzullo)
  • [Improvement] Big Query support for bulk loading data with commas (josh-a-hicks)
  • [Bug] BigQuery connectivity not loading security file properly (josh-a-hicks)
  • [Bug] Client ack rejected with server busy when using channel queues (elong)
  • [Bug] Kafka XML escaping needed (pmarzullo)
  • [Improvement] Turn on Jetty access logging (josh-a-hicks)
  • [Bug] Service fails to install on SUSE 15 (elong)
  • [New Feature] DBFill support for load only nodes (josh-a-hicks)
  • [Bug] BigQuery type not found FLOAT (elong)
  • [Improvement] Informix dialect with page size 2k (elong)
  • [Bug] Fix NPE when a trigger hist is rebuilt with a reason code of H during routing (josh-a-hicks)
  • [Bug] Push acknowledgements are not ordered by batch id (josh-a-hicks)
  • [Bug] Load Filter documentation indicates that Java and BSH are the only available scripting, but there is also SQL (pmarzullo)
  • [Bug] Upgrade from 3.7 to 3.11 fails to upgrade schema (elong)
  • [Improvement] Use session_context with JTDS driver (elong)

New in SymmetricDS Pro 3.12.10 (May 29, 2021)

  • [Bug] Postgres array types improperly cast into non-array types (josh-a-hicks)
  • [Improvement] Monitor events purger condition (elong)
  • [Bug] SQL-Server trigger not implemented exception for NCHAR (elong)
  • [Bug] Auto resolve missing foreign key with load only or extract only node (elong)
  • [Bug] Connection leak during routing when a group link is added (chenson)
  • [Bug] Unicode synchronization of utf8 strings with 4 byte characters in MySql and MariaDB does not work (elong)
  • [Bug] Routing and extracting had X columns but expected Y (elong)
  • [Bug] MySQL: Drop trigger silently fails (elong)
  • [Bug] Oracle create index under same user/schema as table (elong)
  • [Bug] Binary primary keys will not delete as part of conflict resolution (josh-a-hicks)
  • [Bug] MySQL 8 CHAR data type needs spaces right trimmed (elong)
  • [Improvement] Allow the setting of a timeout for the Sync Triggers process (pmarzullo)
  • [Bug] Work with MySQL 8 JDBC driver (elong)
  • [Bug] Kafka escaping for special characters (pmarzullo)
  • [Bug] Batch in conflict won't load when unique key value is null (elong)
  • [Bug] Table PK column order mismatch with column order can cause errors (elong)
  • [Bug] Firebird error while dropping trigger, token unknown (elong)
  • [Bug] Postgres converts json and uuid types to text for create table (elong)
  • [Bug] Oracle: Geometry column type can not be used in a where clause (pmarzullo)
  • [Bug] Push, pull, extract thread name has wrong queue (elong)
  • [Improvement] Auto resolve missing foreign key for SYM tables (elong)

New in SymmetricDS Pro 3.12.8 (Mar 31, 2021)

  • [Bug] Reload a table causes ORA-01652: unable to extend temp segment by 128 in tablespace (elong)
  • [Bug] Monitors: Memory and CPU do not provide detailed monitor information (pmarzullo)
  • [Improvement] MSSQL switch to use session_context instead of context_info() (josh-a-hicks)
  • [Bug] Firebird result set is closed after routing (elong)
  • [Bug] SQL-Server error cannot update identity column during auto resolution (elong)
  • [Bug] Invalid module during startup after upgrade (elong)
  • [Bug] Create WAR gets instance.uuid does not exist (elong)
  • [Improvement] Update deployment sub type on sym_node to include log based and load only (josh-a-hicks)
  • [Bug] Expandable trigger support for trigger names (josh-a-hicks)
  • [Bug] Fix ClassCastException in SQL explorer (emiller)
  • [Bug] Upgrade DBCP and Vaadin libraries (elong)
  • [Bug] Docker image doesn't start because security directory permissions (elong)
  • [Bug] SQL Server 2016 using SESSION_CONTEXT only works with SQL Server JDBC driver, not the JTDS driver (pmarzullo)
  • [Bug] NPE in mail service (elong)
  • [Bug] Symmetric upgrade with Firebird database fails to upgrade when upgrading to 3.12 (pmarzullo)
  • [Bug] Auto resolve when primary key has binary/varbinary (elong)
  • [Bug] Oracle bulk loader not being used on Oracle >= 12.2 (elong)
  • [Bug] Sybase ASE: update trigger needs to set nocount on on very first statement (pmarzullo)
  • [Bug] SYM_DESIGN_DIAGRAM and SYM_DIAGRAM_GROUP need to be filtered out when routing to certain nodes (pmarzullo)
  • [Improvement] Add a new parameter that allows you to control the trigger prefix independent of the table prefix (chenson)
  • [Bug] Fix SQL explorer row editor (emiller)

New in SymmetricDS Pro 3.12.7 (Mar 18, 2021)

  • [Bug] Registration server script using extensions (elong)
  • [Bug] Password file read access must be restricted: security/jmxremote.password (elong)
  • [Bug] Dynamic Query Builder support for bit (josh-a-hicks)
  • [Bug] Raima Create Snapshot does not work (pmarzullo)
  • [Improvement] Prevent blocking on Firebird with lock timeout (elong)
  • [Improvement] JMX batch and data count attributes (elong)
  • [Improvement] Reduce dependency on log4j2 for deployments without it (elong)
  • [Bug] Initial load can slow down when batches on other channels cause conflict resolution (elong)
  • [Bug] Force trigger regenerate does not work properly (elong)
  • [Bug] JMX local host name unknown (elong)
  • [Bug] No data found while correcting foreign key error for reload batch (elong)
  • [Bug] On Tomcat, ack was not sent successfully: java.io.IOException: Premature EOF (elong)
  • [New Feature] MSSQL log based change tracking loop protection and sync on incoming support (josh-a-hicks)
  • [Bug] Fix casting in MsSqlDmlStatement (emiller)
  • [Bug] binary column that is zero length (not null) sends to null to target during initial load (pmarzullo)
  • [Bug] "smallint out of range" exception when incrementing failed login count > 32767 (elong)
  • [Bug] Fix SqlException when generating snapshot from a node with an Oracle database (emiller)
  • [Improvement] Improve WAR deployment (elong)
  • [Improvement] Add unit tests for massageForLimitOffset() (emiller)
  • [Bug] Postgres unique constraint causes current transaction is aborted (elong)
  • [Improvement] Log an error instead of a warning when a trigger's source table doesn't exist (emiller)
  • [Bug] Initial Load events for config tables need to use correct dialect when running load only, extract only, or log miner (pmarzullo)
  • [Bug] Can't export batch that includes sym_node_security (elong)
  • [Improvement] Allow spaces in external id (josh-a-hicks)
  • [New Feature] New extension point that can be used while obtaining a list of tables for a given trigger configuration (josh-a-hicks)
  • [Bug] Sybase ASE primary key update should create update event when only one record is updated (pmarzullo)
  • [Bug] Exception during registration with multi-primary (elong)
  • [Bug] Push and pull errors while node registration is pending (elong)

New in SymmetricDS Pro 3.12.6 (Jan 11, 2021)

  • [Bug] Do not worry about conflict winner in load only or log based target nodes (josh-a-hicks)
  • [Bug] Multiple nodes need synchronized access to keystore (elong)
  • [Bug] Repetition in configuration file and registration batch (elong)
  • [Bug] Default Conflict resolution (IS_CAPTURE_TIME_NEWER) doesn't work when target node is a load only node (pmarzullo)
  • [Bug] Postgres Conflict Resolution blocks when trying to resolve (elong)
  • [Bug] Auto resolve ConflictException hides unique key exception (elong)
  • [Bug] Conflict with NEWER_WINS implicit conversion error (elong)
  • [Bug] NPE in PostgreSqlDmlStatement (elong)
  • [Bug] Multi-primary subsequent data loads blocked (elong)
  • [Improvement] Initial load foreign key error auto resolve when foreign key missing at source (elong)
  • [Improvement] Extensions global BSH functions (elong)
  • [Bug] Extensions should reload when changes to sym_extension (elong)
  • [Bug] Deletes and conflict detection USE_CHANGED_DATA with resolved NEWER_WINS (elong)
  • [Bug] sym command should log to standard error by default (elong)
  • [Improvement] Quick test before upgrade of sym_data_event (elong)
  • [Improvement] Notification of monitor event resolution (elong)
  • [Bug] Insert into sym_data replaces current_timestamp string with question mark to allow specified timestamp but fails sometimes (pmarzullo)
  • [Bug] Snowflake module is missing AWS libraries for bulk loading S3 (elong)
  • [Bug] Spaces in sym_trigger fields causes create trigger failure (elong)
  • [Bug] Push initial load in background gets early EOF log message (elong)
  • [Bug] Postgres conflict when unique index uses primary key index (elong)
  • [Bug] DB2 zOS trigger permission check (josh-a-hicks)
  • [Bug] Server can't open truststore after upgrade (elong)
  • [Bug] Sybase Quick Config fails to get schemas when changing catalog selection (pmarzullo)
  • [Bug] Date time values are not selectable in DB2 z/OS due to lpad function. (josh-a-hicks)
  • [Bug] DB2 zOS replace function will not work with CLOBs (josh-a-hicks)
  • [Bug] Windows unable to access log4j2.xml file on command line (elong)
  • [New Feature] DB2 zOS support for loop back prevention (josh-a-hicks)
  • [Bug] MSSQL load only nodes do not support identity inserts (josh-a-hicks)
  • Improvement] Data loader lookup of meta data on table does not log appropriate error message (josh-a-hicks)
  • [Bug] DB2 zOS uses long varchar instead of clobs (josh-a-hicks)
  • [Improvement] Oracle fails to check compatible v$parameter (elong)
  • [Bug] MultiBatchStagingWriter writes "rn" on Windows for end of lines in child batch staging files (pmarzullo)
  • [Bug] Invalid PK order on send-schema if source db is oracle (elong)
  • [Bug] Using same column twice in sync key names gets error (elong)
  • [Bug] MSSQL Bulk Writer continues to call start and end for the table even during fallback to default (josh-a-hicks)
  • [Improvement] Parameter for create or alter syntax (elong)
  • [Bug] The primary keys are out of order for H2 when returned from Table.java getPrimaryKeyColumns (chenson)
  • [Improvement] DB2 zOS clob columns attempt to drop auto generated rowid on restart (josh-a-hicks)
  • [Bug] Postgres conflict but can't ignore row (elong)
  • [Improvement] Conflict resolver improvements, unique key detection (elong)
  • [Bug] Log4j should not be required. LogSummaryAppenderUtils currently throws a ClassCastException if a log4j2 is not present (josh-a-hicks)
  • [Bug] On SQL-Server can't drop trigger, incorrect syntax (elong)
  • [Improvement] MSSQL ddl table creation support for varbinary(max) (josh-a-hicks)
  • [Improvement] DB2 support for XML data types (josh-a-hicks)
  • [Bug] Column match routers can mark batches unrouted with initial load select set in table reload request only (josh-a-hicks)

New in SymmetricDS Pro 3.12.5 (Nov 9, 2020)

  • [Bug] Hardcoded KeyManagerFactory algorithm (sunX509). Symmetric doesn't work for IBM JRE (pmarzullo)
  • [Bug] TransportManagerFactory needs to call SelfSignedX509TrustManager constructor with actual trust store used instead of null (pmarzullo)
  • [Improvement] Multi-primary out of sync with initial load on busy system (elong)
  • [Improvement] SQL Server trigger creation should use CREATE OR ALTER TRIGGER syntax to eliminate the loss of data capture (Marzullo)
  • [Bug] Multi-primary out of sync race condition with NEWER_WINS conflicts (elong)
  • [Bug] dbcompare using only first table on command line (elong)
  • [Bug] SQL Server primary key update should create update event when only one record is updated (pmarzullo)
  • [Bug] Postgres Conflict Resolution fails to resolve (pmarzullo)
  • [Bug] JMX invalid username or password on Java 11 (elong)
  • [Bug] Restrict pro tables from syncing to invalid versions and open source deployments (josh-a-hicks)
  • [Bug] SQL-Server bulk loader not allowing create events (elong)
  • [Bug] SQL Server bulk loader data conversion with decimal scientific notation (elong)
  • [Improvement] Upgrade dependent libraries (elong)
  • [Improvement] Symadmin send-schema should allow specification to not send indices, foreign keys, and column default values (pmarzullo)
  • [Bug] Heartbeat job should catch exceptions from heartbeat listeners (pmarzullo)
  • [New Feature] SQL Server supports data compression on tables and indexes, add support for this in DDLUtils (pmarzullo)
  • [Improvement] SQL Server supports filtered indexes, need to add support of filtered indexes in ddlutils (pmarzullo)
  • [Bug] Column match routers can mark batches unrouted with initial load select set in table reload request only (josh-a-hicks)

New in SymmetricDS Pro 3.12.4 (Sep 24, 2020)

  • [Bug] Master to master setup fails to send initial load if registering with a node other than registration server (josh-a-hicks)
  • [Bug] Database name with special character like minus sign, fails to create trigger when in same database (pmarzullo)
  • [Bug] DbCompare does not seem to support schema/database prefixed table names for at least the target node (elong)
  • [Bug] [dbcompare command] - Generate script wrongly (elong)
  • [Improvement] dbexport structure and data of tables from the database to tibero format files (pmarzullo)
  • [Bug] Postgres Varchar column with no defined length getting converted to a LONGVARCHAR (pmarzullo)
  • [Improvement] Suppress first deadlock, FK, or protocol violation error to allow retry (elong)
  • [Improvement] Batch acknowledgement lookup failed data ID only once (elong)
  • [Bug] Data Extractor gets "java.lang.IllegalStateException: There is no content to read" from staging (elong)
  • [Bug] Oracle Bulk Loader: quote columns in control file if db.delimited.identifier.mode is set to true (pmarzullo)
  • [Bug] Documentation: Transform Column Policy has invalid choice (pmarzullo)
  • [Bug] Initial load time empty at client (elong)
  • [Bug] Transforms break deletes when transforming primary key column and not capturing old data as specified in trigger (pmarzullo)
  • [Bug] Stream to file, Illegal State Exception: There is no content to read. Memory buffer was empty (elong)
  • [Bug] New Group Link should send node info to nodes in source node group ID and to nodes in target node group ID (pmarzullo)

New in SymmetricDS Pro 3.12.3 (Sep 1, 2020)

  • 0004517: [Bug] Illegal State Exception: There is no content to read. Memory buffer was empty (elong)
  • 0004516: [Bug] Upgrade Jetty (elong)
  • 0004493: [Bug] Transforms start and end table for each row causing poor performance with bulk data loading (elong)
  • 0004506: [Bug] Regression NPE in Oracle, Tibero bulk loader and Hbase, and Mongo data loader factory (elong)
  • 0004504: [Bug] NodeService needs to be more persistent when looking for authenticated nodes (pmarzullo)
  • 0004502: [Bug] RouterService.routeDataForChannel checks incorrect reference for null (pmarzullo)
  • 0004497: [Bug] Load Filter wildcard specification does not work when catalog and table are wildcards, and schema is specified (pmarzullo)
  • 0004496: [Bug] If node registers, immediate pull causes server to indicate that node is not registered (pmarzullo)
  • 0004492: [Bug] MySQL before 5.0.32 does not have drop trigger if exists (elong)
  • 0004485: [Improvement] Log file rotation is reversed (elong)
  • 0004484: [Bug] Log exception stack traces after log file rotates (elong)
  • 0004483: [Bug] Role tables are not filtered for pre-3.9 installations (JJ_Starrett)

New in SymmetricDS Pro 3.12.2 (Jul 20, 2020)

  • 0002861: [New Feature] Client certificate authentication (elong)
  • 0004457: [Improvement] Batch conflict possible when blocking row has self referencing foreign key (elong)
  • 0004458: [Bug] Null pointer exception while extracting batch (elong)
  • 0004459: [Bug] Too many rows sent in reload for table when self-referencing foreign key (elong)
  • 0004460: [Improvement] Ingres Dialect: Documentation (pmarzullo)
  • 0004462: [Bug] Oracle failed to create trigger, identifier is too long (elong)
  • 0004463: [Bug] Invalid node in sym_table_reload_request causes NPE (elong)
  • 0004464: [Bug] Failed to load batch ORA-00932: inconsistent datatypes: expected - got CLOB (elong)
  • 0004465: [Improvement] Missing JDBC driver for 'org.firebirdsql.jdbc.FBDriver'. (elong)
  • 0004467: [Bug] MSSQL text fields are not permitted in where clause (josh-a-hicks)
  • 0004473: [Bug] Convert to modules, module is already installed (elong)
  • 0004474: [Improvement] Web server require or accept client ssl certificate authentication (elong)
  • 0004476: [Bug] Kafka avro module missing, no errors from install (elong)
  • 0004479: [Bug] Confluent jackson modules missing from install (JJ_Starrett)

New in SymmetricDS Pro 3.12.1 (Jun 25, 2020)

  • 0004453: [Improvement] Purge service high CPU for query data range (elong)
  • 0004413: [Bug] MSSQL support for binary types in the primary key (josh-a-hicks)
  • 0004415: [New Feature] Ingres Dialect Implementation (pmarzullo)
  • 0004419: [Bug] HTTP2 Connection response body not closed (elong)
  • 0004420: [Bug] Error "hostnameVerifier parameter specified as non-null is null" (elong)
  • 0004421: [Bug] Primary key ordering based on the sequence of the PK (josh-a-hicks)
  • 0004427: [Bug] Ingres Dialect: Foreign Key DDL Reader issue and System Generated Indexes (pmarzullo)
  • 0004435: [Bug] Kafka key.serializer issue (josh-a-hicks)
  • 0004436: [Bug] Unable to handle unknown csv values: ts (elong)
  • 0004441: [Bug] Kafka module missing during setup of Kafka node. (josh-a-hicks)
  • 0004442: [Bug] Invalid lines in batch with HTTP2 (elong)
  • 0004444: [Improvement] Push job gets error writing request body (elong)
  • 0004445: [Improvement] Log4j2 log entries missing engine name, jar in stack trace (elong)
  • 0004448: [Improvement] Missing JDBC drivers - add "symadmin module convert" to download drivers as modules (elong)
  • 0004449: [Bug] Authentication for JMX and default to localhost only (elong)
  • 0004452: [Bug] Trigger Rebuild: custom_before_insert_text is ignored when rebuilding triggers (JJ_Starrett)

New in SymmetricDS Pro 3.12.0 (May 26, 2020)

  • 0003972: [Bug] Tables become out of sync due incorrect conflict detection (and/or invalid conflict resolution) (elong)
  • 0004167: [Improvement] sym_router table should require router_type value, providing a default value of 'default' (elong)
  • 0004192: [Improvement] Non-unique index on sym_data should be unique (elong)
  • 0004226: [Bug] Table trigger configuration - Sync on Insert/Delete/Update Condition, wrong Sync Condition example (elong)
  • 0004229: [Bug] [Docs] Invalid column name in "Example 2. Sample Group Links" (elong)
  • 0004279: [Improvement] Remove JAR files that are not used as often to download separately (elong)
  • 0004302: [Improvement] Conflict resolution NEWER_TIME based on capture time of row (elong)
  • 0004303: [Improvement] Change default of dataloader.apply.changes.only to true to support better conflict resolution (elong)
  • 0004322: [Improvement] Upgrade to swagger 2, optional swagger-ui as module (elong)
  • 0004324: [Improvement] Upgrade to log4j2 (elong)
  • 0004334: [New Feature] Provide tool to backup and restore configuration that does not reside in the database (pmarzullo)
  • 0004338: [New Feature] Use HTTP/2 for encrypted HTTPS synchronization (elong)
  • 0004351: [Improvement] Change registration to send request parameters as POST instead of GET (elong)
  • 0004352: [Improvement] Sybase dialect should enable row locking and set identity gap (elong)
  • 0004356: [New Feature] Extension points to provide credentials and authorize remote node registration (elong)
  • 0004360: [Improvement] Record node login failures and prevent too many logins (elong)
  • 0004401: [Bug] Oracle ntype characters lost from conversion in capture (elong)
  • 0004402: [Bug] Default the file.sync.fast.scan back to false since it only works reliably on Unix (elong)

New in SymmetricDS Pro 3.11.8 (Apr 21, 2020)

  • [Improvement] Add a parameter that will force SymmetricDS to create nclobs in sym_data on Oracle. (elong)
  • [Improvement] Sync Triggers Should enhance syncing of triggers to not delete trigger if platform supports create or replace syntax (elong)
  • [Bug] Oracle rebuilding triggers can result in changed data not being captured (elong)
  • [Bug] JdbcBatchBulk Make it work for insert conflict resolution to be able to be used on reload channel (josh-a-hicks)
  • [Bug] JdbcBatchBulk Make it work for all conflict resolution (josh-a-hicks)
  • [Improvement] Sybase Enhance trigger definition to include ordering specification (elong)
  • [Improvement] Oracle Version 12.2 supports 128 character names for tables, columns, constraints, and foreign key names (pmarzullo)
  • [Bug] MySQL Drop of transaction function when database upgrade occurs is happening after the create of the database objects (pmarzullo)
  • [Bug] Raima create session variables does not commit/rollback/close transaction (pmarzullo)
  • [Bug] Routing hash collision does not clean up properly (elong)
  • [Improvement] Pass IAlterDatabaseInterceptors through the platform to DDLBuilders (josh-a-hicks)

New in SymmetricDS Pro 3.11.7 (Mar 17, 2020)

  • 0004300: [Bug] Oracle Bulk Loader: Fails to parse dbUrl parameter when using service names for sqlldr connect string (pmarzullo)
  • 0004304: [Bug] MySql and MariaDB: Streaming row mode does not call concat() on primary keys for insert and update reload triggers (pmarzullo)
  • 0004305: [Bug] File sync null pointer exception reading acks (elong)
  • 0004307: [Bug] Upgrade libraries with known vulnerabilities (elong)
  • 0004308: [Improvement] Lazy load bouncy castle (elong)
  • 0004309: [Bug] batchError incorrectly checks create time (elong)
  • 0004311: [Bug] DataExtractorService: Stream row query with null values does not deal with the null values correctly (pmarzullo)
  • 0004312: [Improvement] Routing data gap detection option for Postgres to use earliest transaction time (elong)
  • 0004313: [Bug] MySQL and MariaDB: Streaming row mode does not capture updates correctly (pmarzullo)
  • 0004320: [Bug] MySQL upgrade gets sym_transaction_id_pre_5_7_6 does not exist (elong)

New in SymmetricDS Pro 3.11.6 (Mar 5, 2020)

  • 0004288: [Bug] Oracle Bulk Loader: Support BLOB, CLOB, and NCLOB with lengths longer than 4000 (pmarzullo)
  • 0004290: [Bug] Oracle bulk loader uses wrong user and password for load-only (elong)
  • 0004292: [Bug] Auto resolve foreign keys not working when source is extract-only database (elong)
  • 0004293: [Bug] Auto resolve fails for delete or update when existing child row references candidate key (elong)
  • 0004294: [Bug] Primary key are dropped and created continuously (chenson)
  • 0004296: [Bug] On MySQL, if some SymmetricDS table columns are uppercase and others are lowercase in the same table you get a null pointer (chenson)

New in SymmetricDS Pro 3.11.5 (Feb 14, 2020)

  • [Improvement] SnapshotFor MySql, add the 'show variables' output (elong)
  • [Improvement] Oracle Bulk LoaderAllow specification of field terminator and line terminator (pmarzullo)
  • [Bug] Adding node to instance without registration server does not have access to all node groups (pmarzullo)
  • [Bug] FormatUtils parseTimestampWithTimezone interprets fractional seconds incorrectly (pmarzullo)
  • [Improvement] Oracle Bulk LoaderAllow specification of input file character set (pmarzullo)
  • [Bug] Multi-master configuration with 3 nodes doesn't work (pmarzullo)
  • [Bug] When max loads reached, new load with initial_load_enabled keeps entering rows into sym_table_reload_request (elong)

New in SymmetricDS Pro 3.11.4 (Jan 23, 2020)

  • [Bug] Jdbc Batch Loader support for MSSQL Identity Inserts and IllegalStateExceptions (josh-a-hicks)
  • [Bug] Custom delete statement during initial load is overridden (elong)
  • [Bug] Oracle trigger creates row data and old data when streaming row (pmarzullo)
  • [Improvement] DbCompare: continue on processing rows when parse of value causes exception (pmarzullo)
  • [Improvement] MailService: Allow the specification of TO, CC, and BCC recipients in the MailService service (pmarzullo)
  • [Bug] Conflict Resolution: Problem with timestamp with time zones as the USE_TIMESTAMP column (pmarzullo)
  • [Improvement] Potential bottleneck from hitting sequence service during routing large number of nodes (elong)
  • [Improvement] Parameter to route incoming changes as non-common batches when using common groups (elong)
  • [Improvement] Kafka driver outputs INFO log message, causing noise in the log (pmarzullo)
  • [Improvement] Upgrade of sym_data_event is slow (elong)
  • [Improvement] Java 9 and newer class not found javax.xml.bind.DatatypeConverter (elong)
  • [Improvement] Data gap detector should use batch mode to insert and delete sym_data_gap (elong)
  • [Improvement] Recreate keystore if missing (elong)
  • [Bug] getTruncateSql() should use getDeleteSql() when dialect does not support truncate (pmarzullo)

New in SymmetricDS Pro 3.11.3 (Jan 2, 2020)

  • [Bug] Startup fails on Interbase trying to insert sym_monitor bec "type" is reserved word (elong)
  • [Bug] In the documentation of lookup transform it says a column name can be accessed by MY_COLUMN (elong)
  • [Bug] NPE loading batch with JdbcBatchBulkDatabaseWriter data loader "bulk" (elong)
  • [Bug] Oracle Decimal precision can contain 40 digits after the decimal but sync only sends 39 (elong)
  • [Improvement] Efficient logging of trigger hist and trigger router problems (elong)
  • [Improvement] Disable initial load in background if max batch size is 1 (elong)
  • [Bug] ArrayIndexOutOfBoundsException getPkDataFor while loading batch (elong)
  • [Bug] MSSQL JDBC 7.4 with Azure causing NullPointerException while reading tables (elong)
  • [Bug] Resolve foreign key violation can pick up table from wrong catalog or schema (elong)
  • [Improvement] Prevent hash collision when routing common batch groups (elong)
  • [Improvement] Routing should use transaction and batch mode to insert multiple sym_outgoing_batch rows (elong)
  • [Bug] DB2 delete statement should not specify "reuse storage immediate" (pmarzullo)
  • [Bug] DB2 truncate before table load needs to commit early in order for truncate to work (pmarzullo)

New in SymmetricDS Pro 3.11.1 (Dec 3, 2019)

  • [Bug] Routing unique key violation sym_data_event (elong)
  • [Bug] MySQL ignore zeroDateTimeBehavior=convertToNull if server is set to NO_ZERO_DATE (elong)
  • [Bug] Purge not working when using prefix on sym tables. (elong)
  • [Bug] In a sql code example the number of columns doesn't match the number of values (elong)
  • [Bug] Initial load in background contention with routing (elong)

New in SymmetricDS Pro 3.11.0 (Nov 15, 2019)

  • [New Feature] Support SAP HANA as target for replication (josh-a-hicks)
  • [Improvement] Refresh lock for purge service (elong)
  • [New Feature] Routing common batch mode for groups of nodes (elong)
  • [Improvement] Unrouted count should check current sequence instead of running max(data_id) (elong)
  • [Improvement] Change routing parameter default to always query with gaps (elong)
  • [Improvement] Move default location of H2 and Derby database files to <SYM_HOME>/db instead of <SYM_HOME>/tmp (pmarzullo)
  • [Improvement] Drop router_id column from sym_data_event to improve size and performance (elong)
  • [Improvement] Raise an error if an MSSQL Update fails to get captured (pmarzullo)
  • [Bug] MSSQL: Updating multiple rows in source table results in reversed rows in destination table (pmarzullo)
  • [New Feature] Router convertToReload that converts multiple changes into a reload batch (elong)
  • [New Feature] Extract only nodes (josh-a-hicks)
  • [New Feature] Queue initial load in its own job (elong)
  • [Improvement] Snapshot: use log file names from log4j configuration to filter files to include in snapshot (pmarzullo)
  • [Bug] Postgres Time column type can't be converted to Timestamp column type without a cast when restoring the data (pmarzullo)
  • [New Feature] Security token in header and session authentication (elong)
  • [Improvement] Common batch staging with sub-directories (elong)
  • [Bug] Purge job performance with offline nodes (elong)
  • [Improvement] Remove ping back enabled from trigger router (elong)

New in SymmetricDS Pro 3.10.5 (Nov 1, 2019)

  • [Improvement] In PostgreSQL trigger function should be SECURITY DEFINER (elong)
  • [Improvement] Truncate host name to fit into 60 char database limit (elong)
  • [Improvement] Logging of data gaps in router service can use too much memory (elong)
  • [Improvement] Optimize network usage on pull by closing connection as soon as batches are transferred (elong)
  • [Bug] Failed to delete blocking row (elong)
  • [Bug] Batch staging manager does not purge old .create files (elong)
  • [Improvement] Snapshot: use log file names from log4j configuration to filter files to include in snapshot (pmarzullo)
  • [Improvement] Improve performance of purge stranded data (elong)
  • [Bug] Postgres Time column type can't be converted to Timestamp column type without a cast when restoring the data (pmarzullo)
  • [Bug] MySQL zero date to null works on initial load but not change capture (elong)
  • [Bug] Bulk loading performance into Postgres degraded in 3.10 (elong)
  • [Bug] Sym file snapshot batch sent as part of initial load (josh-a-hicks)
  • [Improvement] DBFill support for auto increment columns (josh-a-hicks)
  • [Bug] DB2 AS400 dialect is mis-identified as Generic (elong)
  • [Bug] Extraction of double byte characters from sym_data exceeding a size of 4000 will fail and not fall back (josh-a-hicks)
  • [Improvement] Upgrade redshift driver (elong)
  • [Bug] Server node with at least one offline client does not update its heartbeat (elong)
  • [Improvement] Excluded columns that are part of an index but the index remains in table object (elong)
  • [New Feature] Add a IClientReloadListener to add a hook for reloads on the client (elong)
  • [Improvement] Processed count job stats for purge and staging clean (elong)
  • [Improvement] Add data_event_type variable to subselect router (elong)
  • [Bug] DB2 AS400 error trying to remove a column (elong)
  • [Bug] Oracle character set problem with "value too large for column" (elong)
  • [Bug] Initial load table with 0 rows doesn't close off all estimated batches (pmarzullo)
  • [Bug] LOBs that have values too large to store in a java array will crash the SymmetricDS JVM (josh-a-hicks)

New in SymmetricDS Pro 3.10.4 (Aug 23, 2019)

  • 0003560: [Bug] Unable to use SymmetricDS service in Ubuntu 18.04 / bionic beaver (Systemd in general) (pmarzullo)
  • 0003726: [Bug] Delete or truncate should quote table name and include catalog/schema (JJ_Starrett)
  • 0004025: [Bug] Duplicate Registration Requests when IP-Address of client changes (elong)
  • 0003801: [Bug] Ignoring a batch in RQ status with an extract error can cause replication to stop
  • 0004006: [Bug] CAST Error on auto.resolve.foreign.key.violation=true (JJ_Starrett)
  • 0004068: [Bug] Row.getDate(String value, String[] pattern) not parsing String representations of Timestamp correctly (pmarzullo)
  • 0004026: [Bug] Registration server gets "Removing identity because registration is required" (elong)
  • 0004027: [Improvement] Oracle Numeric types used to return DECIMAL, but now returns NUMERIC with new driver (pmarzullo)
  • 0004028: [Bug] failed to sync when Oracle column which datatype is char changes it's value to chinese characters (elong)
  • 0004067: [Bug] Install using open jdk 11 fails on creation of service (pmarzullo)
  • 0004033: [Improvement] Upgrade the embedded Jetty to newest version (elong)
  • 0004035: [Bug] Firebird 3 gets wrong dialect, errors on sym_escape (elong)
  • 0004044: [Improvement] Potential bottleneck from thread locking during initial load with multiple clients (elong)
  • 0004045: [Bug] Load Data request with multiple nodes and "create table" option fails to create foreign key batches for all but one node (elong)
  • 0004046: [Improvement] Potential bottleneck from flushing cache while processing extract requests (elong)
  • 0004051: [New Feature] Allow dbsql to use list of sql statements from file (pmarzullo)
  • 0004052: [Bug] H2 database: Capture of milliseconds on a date are incorrect (elong)
  • 0004056: [Bug] WrapperService needs to make sure server process exits before looking at childValue() (pmarzullo)
  • 0004058: [Improvement] LookupTableRouter should use initial load select when provided on the trigger router (josh-a-hicks)
  • 0004060: [Improvement] Mac: Support Mac services for running SymmetricDS (pmarzullo)
  • 0004063: [Bug] SQL Server table creation for varbinary(max) (josh-a-hicks)
  • 0004065: [Improvement] Allow zero date on MySQL or convert to null otherwise (3.10) (elong)
  • 0004066: [Improvement] Potential bottleneck from counting commas in rows of initial load (elong)
  • 0004069: [Improvement] SQL Server tests failing because of out of date tests (pmarzullo)
  • 0004071: [Improvement] Added method to retrieve active load status only (josh-a-hicks)
  • 0004072: [Improvement] Potential bottleneck from checking exists() on staging files (elong)
  • 0004073: [Bug] External ID unique parameter not working (elong)
  • 0004074: [Bug] Multiple nodes initial load with wildcards sending table twice and missing table (elong)
  • 0004075: [Bug] During upgrade, remove triggers for symmetric tables that changed, then add them back before doing any possible DML statements (pmarzullo)
  • 0004076: [Bug] Get estimated row counts for initial load for SQL Server 2008 needs to use delimiter quoting if turned on (pmarzullo)

New in SymmetricDS Pro 3.10.3 (Jun 26, 2019)

  • 0003973: [Bug] Putting in non-numeric string for numeric parameters causes error (jaredfrees)
  • 0000963: [Bug] Update and delete does not sync on tables with varbinary primary key (josh-a-hicks)
  • 0003987: [Bug] Add varbinary support for H2 (elong)
  • 0003953: [Bug] Firebird 2.5 trying to recreate existing tables (metadata problem with Jaybird 3.x driver) (elong)
  • 0002563: [Bug] When Primary key is binary; SymmetricDS fails capture changes. (josh-a-hicks)
  • 0002612: [Improvement] DBExport Should Allow Excluding Specific Columns From the Export (jaredfrees)
  • 0003936: [Bug] MSSQL Server to allow varbinary and binary in the where clause (updates and deletes) (josh-a-hicks)
  • 0003974: [Bug] Too many threads, crashing server (elong)
  • 0003242: [Bug] Running DS as a Windows Service in a folder path that contains whitespace causes error (jaredfrees)
  • 0004005: [Bug] Initial load batches are not purging immediately on incoming side (elong)
  • 0003512: [Improvement] Make snapshot name configurable (jaredfrees)
  • 0003659: [Bug] SqlAnywhere dialect crashes when DB name has special char (jaredfrees)
  • 0003844: [Bug] "Failed to execute: CREATE TABLE" in PostgreSQL 9.6 (BIT data type with default) (pmarzullo)
  • 0003868: [Bug] SymmetricDS fails to create SQLITE3 tables on initial load if table name conflicts with reserved SQL keywords. (jaredfrees)
  • 0003917: [Improvement] In the snapshot, include sym_data records for batches that are in ERROR (jaredfrees)
  • 0003977: [Bug] Stream LOB fails (NullPointerException) when row is missing during extraction (elong)
  • 0003978: [Bug] SQLAnywhere will not create engine when database name contains hyphen (jaredfrees)
  • 0003980: [Bug] Exception when dashboard refreshes node status panel (pmarzullo)
  • 0003982: [Bug] MSSQL ddl reader fails if user does not have access to a catalog (josh-a-hicks)
  • 0003984: [Bug] SymmetricDS doesn't respect the sticky session setting for AWS ELB ALB which can result in resending logging when under stress (elong)
  • 0003988: [Bug] Table name with comma won't sync (elong)
  • 0003989: [Improvement] Java versions 11 and 12 should work with SymmetricDS (pmarzullo)
  • 0003992: [Bug] Create-Table batches resulting from a Load Data "Create Table" aren't being marked with a load id (elong)
  • 0003994: [Bug] DbExport CSV file should escape quote characters with double quotes (jaredfrees)
  • 0004003: [Bug] MySQL table creation failed for ENUM during initial load (elong)
  • 0004009: [Improvement] Improve logging for conflict resolution (elong)
  • 0003990: [Bug] dbcompare use-sym-config ignore table name argument (jaredfrees)
  • 0003991: [Bug] dbcompare null pointers with basic setup with two source tables to a target with no transforms (jaredfrees)
  • 0004002: [Bug] Table name with special characters won't sync (elong)
  • 0004011: [Bug] DBCompare does not use catalog/schema properly on MySQL (mmichalek)
  • 0004012: [Bug] Post-create batches for a Load Data operation are not created in the case where wildcards are involved. (elong)
  • 0004016: [Improvement] Lack of -s option in symadmin help send-schema (elong)
  • 0004018: [Bug] User table creation fails when table exists in another user's schema (elong)
  • 0004019: [Bug] Skipping a batch that contains a CREATE event gets a NullPointerException (elong)
  • 0004020: [Improvement] Allow file router to include transaction ID (jaredfrees)
  • 0004021: [Bug] On every startup with MariaDB, alters to SYM tables (elong)
  • 0003959: [Bug] Possible race conditions in parameters, MongoDB, and initializing nodes (jaredfrees)

New in SymmetricDS Pro 3.9.21 (Jun 26, 2019)

  • 0003958: [Improvement] Add table_name variable to subselect router (elong)
  • 0003957: [Bug] Configuration service contains missing sql statement (josh-a-hicks)
  • 0002709: [Bug] documentation for Transforms - incorrect query for SYM_TRANSFORM_TABLE (elong)
  • 0003934: [Improvement] Add simple request/response logging filter for HTTP troubleshooting (mmichalek)
  • 0003927: [Bug] Excessive logging generated by ChannelRouterContext.logStats (3.9) (mmichalek)
  • 0003954: [Bug] BIT from SQLServer comes in as Integer, Postgres needs value converted to String (VARCHAR) to handle it correctly (3.9) (pmarzullo)
  • 0003986: [Bug] Firebird mis-identified as DB2 (elong)

New in SymmetricDS Pro 3.10.2 (May 8, 2019)

  • 0001279: [Bug] Derby - clob - primary key (date) (elong)
  • 0003925: [Improvement] While using initial load and reverse initial load flags on node_security also create a table_reload_request (josh-a-hicks)
  • 0001957: [Bug] Redundant condition in AbstractParameterService.getString (elong)
  • 0003924: [Improvement] When load configured to clear table first, it should clear table again when restarting load (josh-a-hicks)
  • 0003935: [Bug] Error "database is locked" on SQLite during initial load (elong)
  • 0003319: [Bug] Stopping the engine on the main node via REST stops the whole system (elong)
  • 0003932: [Bug] Routing fails when data data gaps exceed routing.max.gaps.to.qualify.in.sql $(selectDataUsingStartDataIdHint) (3.10) (mmichalek)
  • 0003929: [Improvement] Improve logging of offline scenarios (3.10) (mmichalek)

New in SymmetricDS Pro 3.9.20 (May 2, 2019)

  • Routing fails when data data gaps exceed routing.max.gaps.to.qualify.in.sql $(selectDataUsingStartDataIdHint) (mmichalek)
  • Improvement: Improve logging of offline scenarios (mmichalek)

New in SymmetricDS Pro 3.9.19 (Apr 23, 2019)

  • [Bug] Routing bottleneck on long routing runs (mmichalek)
  • [Improvement] Optimize routing query for Oracle when majority of sym_data is unrouted (mmichalek)
  • [Improvement] More efficient routing for non-transactional channels (mmichalek)
  • [Bug] DB2 for i version 6 and earlier: LPAD not available (elong)
  • [New Feature] Snowflake data loader (josh-a-hicks)
  • [Improvement] MySQL Version 8 returning error code 1216 when foreign key constraint is violated (used to be 1452) (pmarzullo)
  • [Bug] When changing just a LOB field on SQL Server, the change is not captured by the trigger (pmarzullo)
  • [Improvement] Improve performance of Oracle RAC routing processing (mmichalek)
  • [Bug] Dashboard refresh data uses Vaadin UI component without locking (pmarzullo)
  • [New Feature] LDAP Base DN specification should be able to provide more than one LDAP tree for searching (also in 3.8 using issue 0003910) (pmarzullo)
  • [Bug] Exception during keep alive can cause concurrent loading of batches (mmichalek)

New in SymmetricDS Pro 3.9.18 (Mar 1, 2019)

  • [Bug] The 'audit' router should not write rows to the audit table during a load (3.9) (mmichalek)
  • [Bug] MSSQL Bulk loader creates excessive logging when max batch size for the load is greater than max rows to flush (josh-a-hicks)

New in SymmetricDS Pro 3.9.17 (Mar 1, 2019)

  • [Improvement] initial load create: Cascade Delete rule is not syncing as part of the create DDL (pmarzullo)
  • [Bug] System tables should be ignored on MssqlDdlReader (elong)
  • [Bug] Documentation fix: Monitor Events sync on the monitor channel, not the heartbeat channel (elong)
  • {Improvement] Documentation for monitor.events.capture.enabled parameter is vague (elong)
  • [Bug] On startup with Postgres 10, always alters sym_sequence (elong)
  • [Bug] Postgres error column type tsvector but expression is of type character varying (elong)
  • [Bug] Startup on Postgres no relation for gp_id (elong)
  • [Improvement] Initial load use estimated counts (elong)
  • [Bug] Oracle bulk loader issue with a load only target node (josh-a-hicks)
  • [Bug] Table reload request by channel will be treated as a full load and mark all outgoing batches as OK (josh-a-hicks)
  • [Improvement] Oracle raw data type faster load extraction (josh-a-hicks)
  • [Bug] job.purge.first.pass=true does not work on firebird (pmarzullo)
  • [Bug] MSSQL Server datetime2 does not capture null values (josh-a-hicks)
  • [Bug] MSSQL Server datetimeoffset data type not converting to UTC and losing time zone (josh-a-hicks)

New in SymmetricDS Pro 3.8.40 (Oct 4, 2018)

  • Improvement:
  • Improve purge performance of sym_data and sym_data_event
  • Bug:
  • Routing log messages can be excessively long
  • Can't drop indexes in separate schemas in MS SQL Server

New in SymmetricDS Pro 3.9.14 (Oct 4, 2018)

  • [Improvement] Support row-by-row stream lob for DB2 (elong)
  • [Bug] Individual Table reloads should not clear a node's incoming batches (mmichalek)
  • [Bug] MSSQL 2008 Create table DDL for TIME data type incorrect when coming from a different source database (josh-a-hicks)
  • [Improvement] Batch in error on a reload channel by default blocks all other channels. Should not block config channel though. (josh-a-hicks)
  • [Improvement] Logging for authorization denied (elong)
  • [Bug] Raima dialect support for obtaining last inserted id (josh-a-hicks)
  • [Bug] Extract request should record last update time (elong)
  • [Bug] Gaps taking longer to expire and using slower method of querying sym_data (elong)
  • [Improvement] Purge stranded batches can get deadlock or timeout when outgoing_batches is large (elong)
  • [Bug] 3 Tier registration issue when trigger create before initial load is false. (josh-a-hicks)
  • [Bug] File sync extract batches sometimes show incorrect row counts (mmichalek)
  • [Bug] MSSQL bulk loader fails when truncate table is used as part of the load with a different target database and schema (josh-a-hicks)
  • [Improvement] Raima dialect rebuilds triggers with each restart (josh-a-hicks)
  • [Bug] Stream row with large number of columns on DB2 (elong)
  • [Bug] Extract row count statistics double when staging is cleared (elong)
  • [New Feature] Jdbc Batch bulk data loader (josh-a-hicks)

New in SymmetricDS Pro 3.9.13 (Sep 2, 2018)

  • [Bug] XML table definitions with FK do not need to provide catalog and schema for the FK if it is in the same as the table (josh-a-hicks)
  • [Improvement] Add cluster.staging.enabled to indicate whether a shared staging area is being used. ** Upgrade Alert ** (chenson)
  • [Bug] initial.load.before.sql and initial.load.after.sql don't work with a full load anymore (chenson)
  • [Bug] Routing log messages can be excessively long (3.9) (mmichalek)
  • [Improvement] Add cached data gaps to snapshot (elong)
  • [Bug] Load Filter Beanshell variables are not properly scoped (mmichalek)
  • [Bug] Excluded columns that are part of a foreign key the foreign key remains in table object (josh-a-hicks)
  • [Improvement] Purge stranded data and batches after channel is deleted (elong)
  • [Improvement] XMLType support for Oracle (josh-a-hicks)
  • [Improvement] Table xml contains FK source catalog and schema even if same as default (josh-a-hicks)

New in SymmetricDS Pro 3.9.12 (Aug 21, 2018)

  • Auto resolve foreign key can fail when primary keys are not first in table definition (elong)
  • [Bug] Registration sometimes throws java.lang.InterruptedException (chenson)
  • [Bug] Interrupted Registration results in node which cannot start because of mismatching instance.uuid (mmichalek)

New in SymmetricDS Pro 3.9.11 (Aug 14, 2018)

  • [New Feature] Kafka support in conjunction with a Confluent registry (josh-a-hicks)
  • [Bug] DB2 9.5 on Linux doesn't support to_clob (elong)
  • [Improvement] Bulk loads should not log errors while falling back to default loader (josh-a-hicks)
  • [Bug] If a table doesn't exist, but it has a sym_trigger_hist row and a sym_table_reload_request, it gets a nullpointerexception (chenson)
  • [Bug] RouterService logging too much (mmichalek)

New in SymmetricDS Pro 3.9.10 (Aug 4, 2018)

  • Routing log messages can be excessively long (3.9)

New in SymmetricDS Pro 3.8.39 (Aug 1, 2018)

  • [Bug] Oracle RAC using sequence noorder can expire last gaps

New in SymmetricDS Pro 3.8.38 (Jul 26, 2018)

  • [Bug] Auto resolve foreign key can fail on Oracle RAC in noorder mode

New in SymmetricDS Pro 3.8.37 (Jul 24, 2018)

  • Add better logging and handling for intermittent "Had trouble renaming file" message in the log (mmichalek)
  • [Improvement] Oracle sequence noorder does not need extra index (elong)

New in SymmetricDS Pro 3.9.9 (Jun 21, 2018)

  • [Improvement] DBFill improvements for JSONB in Postgres and not filling sym tables
  • [Improvement] Order rows in initial load for table with self-referencing foreign key
  • [Improvement] Read instance.uuid one time for server instance
  • [New Feature] Deleted columns list transform
  • [Improvement] Transforms should return an old value for delete and new value for insert and updates
  • [Improvement] H2 lost data from restart or power failure
  • [New Feature] Kafka support as a load only node (josh-a-hicks)

New in SymmetricDS Pro 3.9.8 (Jun 6, 2018)

  • 0003581: [New Feature] Cassandra support as a load only node (josh-a-hicks)
  • 0003312: [Bug] Compare tablename case insensitiv on SQLite on trigger creation (mmichalek)
  • 0003504: [Improvement] SyncTrigger slow due to synchronized this.getClass() on AbstractDatabasePlatform.getTableFromCache (mmichalek)
  • 0003541: [Improvement] Caches should be cleared on a server restart (mmichalek)
  • 0003544: [Improvement] Not all unique sqlite error message are respected on unique error detection (mmichalek)
  • 0003547: [Improvement] Improve Sqlite DdlBuilder support
  • 0003557: [New Feature] MSSQL support for datetimeoffset data types. (josh-a-hicks)
  • 0003559: [Improvement] Log expiration of data gaps at info level (mmichalek)
  • 0003565: [Improvement] Add a new staging.dir parameter that controls the location of the staging area. (chenson)
  • 0003572: [Improvement] Improve SymmetricDS acknowledgement logging (mmichalek)
  • 0003573: [New Feature] TopSpeed (TPS) Router (josh-a-hicks)
  • 0003574: [Improvement] Improved logging for data truncation issues in Postgres (josh-a-hicks)
  • 0003580: [Improvement] Treat misconfiguration more serious: initial.load.use.extract.job.enabled=true and stream.to.file.enabled=false (mmichalek)
  • 0003583: [Bug] Windows service installer missing config files (elong)
  • 0003584: [Bug] Update BSH variables documentation (elong)
  • 0003585: [Improvement] Default BSH column transform to return old value for deletes (elong)
  • 0003586: [Improvement] Noorder sequence for performance on Oracle RAC (elong)
  • 0003588: [Bug] Configuring a custom job with a cron schedule may result in exceptions in the log and the custom job failing to start (mmichalek)
  • 0003589: [Improvement] Initial load extract job should check file.sync.enabled parameter (elong)
  • 0003590: [Bug] If routing is backed up and a restart happens gaps with data can be expired causing missing data (chenson)

New in SymmetricDS Pro 3.9.7 (May 9, 2018)

  • 0003315: [Bug] Cache hash collision in ColumnsAccordingToTriggerHistory (mmichalek)
  • 0003327: [Improvement] Support SQL Server geography type (mmichalek)
  • 0003363: [Bug] A file reload is produced if an unrelated table reload is requested (mmichalek)
  • 0003509: [Improvement] Postgres support for DDL table creation of JSONB data types (josh-a-hicks)
  • 0003510: [Bug] Service wrapper hanging on start on Windows 2003 server (elong)
  • 0003514: [Improvement] Improve purge performance of sym_data and sym_data_event (elong)
  • 0003515: [Bug] Null pointer in AddForeignKeyChange (josh-a-hicks)
  • 0003516: [Improvement] Support for DDL creation of a Postgres table with a JSONB data type (josh-a-hicks)
  • 0003518: [Bug] Cross database foreign key support during table creation (josh-a-hicks)
  • 0003524: [Improvement] Indicate when the JVM has optimized a stack in the log (mmichalek)
  • 0003525: [Improvement] Service wrapper: remove reliance on SYM_HOME environment variable (elong)
  • 0003531: [Improvement] Add parameter right.trim.char.values to always right trim CHAR fields
  • 0003536: [Improvement] Documentation clarification/warning about clearing staging (josh-a-hicks)
  • 0003538: [Bug] Batch left in status resend (RS) is never loaded on target and marked okay (OK) on source (elong)
  • 0003542: [Bug] Somestimes jobs are loaded and executed on not assigned node groups
  • 0003549: [Improvement] Add log files to snapshot as last operation (elong)
  • 0003550: [Improvement] Timeouts on routing query and purge service (elong)
  • 0003552: [Bug] Snapshot creations fails due to missing table sym_console_event on community edition
  • 0003553: [Bug] NPE in SnapshotUtil due to returning null on getImplementationTitle()

New in SymmetricDS Pro 3.9.6 (Mar 29, 2018)

  • [Bug] Add initial.load.transport.max.bytes.to.sync parameter. transport.max.bytes.to.sync not respected in 3.9 during loads/reload (mmichalek)
  • [Bug] Data Capture Can't Handle Large XMLTYPE Values (josh-a-hicks)
  • [Bug] Executing ISqlTemplate.update() with multiple statements swallows errors (mmichalek)
  • [Bug] Postgres create table with Boolean default value needs to wrap with quotes (josh-a-hicks)
  • [Bug] Multiple channels in error, should sort batches order by oldest first (elong)
  • [Bug] Incoming staging files can be purged by the staging manager before they are processed (gwilmer)
  • [Bug] Batches with status of RS (resend) are flagged as In Error. (gwilmer)
  • [Improvement] Tibero date type columns will not be mapped as timestamp during dml statements (josh-a-hicks)
  • [Bug] Service wrapper not finding process name correctly on Windows 10 (elong)
  • [Improvement] Increase the default values of transport.max.bytes.to.sync and initial.load.transport.max.bytes.to.sync parameters (mmichalek)
  • [Bug] Create/Alter table with a foreign key that crosses catalog or schema (josh-a-hicks)

New in SymmetricDS Pro 3.9.5 (Mar 12, 2018)

  • [Improvement] Service stops working after upgrading Java (elong)
  • [Bug] Service wrapper should verify and kill abandoned processes (elong)
  • [Improvement] Recovery options for service wrapper (elong)
  • [Improvement] Change default start type of windows service to automatic (delayed) (elong)
  • [Bug] Error during sync triggers can result in dropping triggers (elong)
  • [Improvement] Warning in Java 9 illegal reflective access (elong)
  • [Improvement] Update the PostgreSQL JDBC driver. (kstojanovska)
  • [Bug] Delaying triggers until after initial load when auto creating tables (elong)
  • [Bug] Batch extract locks aren't released when "java.lang.IllegalStateException: Had trouble renaming file." occurs. (mmichalek)
  • [Bug] Prevent registration until sync triggers has run (elong)
  • [Bug] Purge of stranded data_events on PostgreSQL is too slow (elong)
  • [Bug] Stage management job does not use cluster locks (mmichalek)
  • [Bug] Oracle geometry/geography type fails to insert if geometry data > 4k (mmichalek)
  • [New Feature] Extension point for registration redirect (elong)
  • [Improvement] Adjust default parameter value for dataloader.apply.changes.only (josh-a-hicks)
  • [Bug] SyncTrigger via REST call does not return errorcode if trigger creation fails (mmichalek)
  • [Improvement] RemoteNodeStatuses actively waits for completeness (mmichalek)
  • [Bug] DBFill support for JSON types (josh-a-hicks)
  • [Improvement] Upgrade MySQL driver (josh-a-hicks)
  • [Bug] DataService insertReloadEvent(TableReloadRequest request, boolean deleteAtClient) fails to route without a channelID (josh-a-hicks)
  • [Bug] MySQL does not properly retrieve SYM triggers if they are in a different catalog than the connection catalog (josh-a-hicks)
  • [Bug] Table reload request for specific tables causes sync triggers to run (elong)
  • [Bug] Transport manager factory not using proper parameter (josh-a-hicks)
  • [Bug] java.lang.AbstractMethodError: java/sql/PreparedStatement.setNString (elong)
  • [Bug] Sync triggers in MySQL will fail if there is an active trigger history record but the table was removed manually (josh-a-hicks)
  • [Bug] Postgres create tables with an auto increment column create sequence without respect to schema (josh-a-hicks)
  • [Improvement] MySQL tinyint columns can be sent as boolean columns through DDL statements (josh-a-hicks)

New in SymmetricDS Pro 3.9.4 (Feb 17, 2018)

  • 0003408: [Improvement] Update jackson-databind version (maxwellpettit)
  • 0003404: [Bug] --jmx-disable command line option doesn't disable JMX. (mmichalek)
  • 0003406: [Improvement] Improvements for Timeouts related to slow databases (mmichalek)
  • 0003429: [Bug] Compression of staging with initial load gets IllegalStateException (elong)
  • 0003423: [Bug] Node host stats not working (josh-a-hicks)
  • 0003427: [Bug] Node host channel stats sent count inflated (josh-a-hicks)
  • 0003381: [Bug] symadmin does not always return 1 on failure (kstojanovska)
  • 0003391: [Bug] dbcompare command throws Null Pointer when no arguments passed. Should print help commands. (kstojanovska)
  • 0003392: [New Feature] Resolve foreign key errors using target database metadata and request rows from source (elong)
  • 0003394: [Bug] Booleans fields fail on Sybase 15 using Sybase 12 query optimizer (mmichalek)
  • 0003395: [Improvement] Evaluate the use of the jsch dependency in SymmetricDS (mmichalek)
  • 0003398: [Bug] new sym_job table causes registration error on clients older than 3.8 (chenson)
  • 0003400: [Improvement] Additional information for snapshot file (elong)
  • 0003405: [Improvement] Default to strong crypto and fall back if not available (elong)
  • 0003416: [Improvement] Raima dialect support for global variables (josh-a-hicks)
  • 0003420: [New Feature] Teradata bulk loader (josh-a-hicks)
  • 0003425: [Improvement] Adding and modifying variables used in initial load and configuration (elong)
  • 0003407: [Improvement] Add ability to specify a date time format for dbcompare (kstojanovska)
  • 0003390: [Bug] DB2 on ZOS error during snapshot: dbexport throws IllegalArgumentException for --compatible db2zos (kstojanovska)

New in SymmetricDS Pro 3.9.3 (Jan 22, 2018)

  • [Improvement] Add prompt for password in encrypt-text (kstojanovska)
  • [Bug] Extract file lock can't be created when "common" directory doesn't exist yet (mmichalek)
  • [Improvement] Safeguard against initial.load.delete being routed to the wrong node (mmichalek)
  • [Improvement] Support transactional sync triggers (kstojanovska)
  • [Bug] Null pointer when using CSV Router (maxwellpettit)
  • [Improvement] Handle exceptions while trying to determine the database version (josh-a-hicks)
  • [New Feature] Raima Dialect (josh-a-hicks)
  • [Improvement] Load only db passwords not encrypted (josh-a-hicks)
  • [Bug] If sym_trigger_hist is missing symmetricds will attempt to recreate the row, but rebuild of triggers fails (kstojanovska)
  • [Improvement] IReloadGenerator is not used when node security flag is used for initial loads (josh-a-hicks)
  • [Bug] Creating a FULLTEXT index in MySQL or MariaDB is not supported (josh-a-hicks)
  • [Improvement] Populate deployment sub type on sym_node (josh-a-hicks)

New in SymmetricDS Pro 3.9.2 (Jan 3, 2018)

  • Triggers get created on similarly named schemas (schemas with extension of each other) in Oracle database (kstojanovska)
  • [Improvement] Support Cluster Lock refresh for extract in background (kstojanovska)
  • [Bug] Fix boolean handling on ASE 16 (mmichalek)
  • [Bug] FileSyncExtractorService sets IG on non file batches (mmichalek)

New in SymmetricDS Pro 3.8.33 (Dec 14, 2017)

  • [Bug] Fix sql maps to avoid using hard coded prefixes to tables. (kstojanovska)
  • [New Feature] Extension point during reloads to adjust the active trigger histories (josh-a-hicks)
  • [Improvement] MySql Bulk Writer should not fail on table creation if it already exists. (josh-a-hicks)
  • [Bug] Informix fails to read existing triggers due to invalid sql (josh-a-hicks)
  • [Improvement] Upgrade 3rd Party Libraries to address security concerns (mmichalek)

New in SymmetricDS Pro 3.8.32 (Nov 21, 2017)

  • 0003320: [Bug] Possible NullPointerException during extension registration on a busy system (mmichalek)
  • 0003306: [Bug] MSSQL Server will not retrieve schemas correctly for a different database/catalog (josh-a-hicks)
  • 0003314: [Improvement] Support row-by-row stream lob for Sybase (kstojanovska)
  • 0003317: [Bug] Failed to delete data gaps message in the log (mmichalek)
  • 0003318: [Bug] common batches can get corrupted because of 0003275 and 0003282 (chenson)

New in SymmetricDS Pro 3.8.31 (Nov 7, 2017)

  • 0002886: [Bug] Disabling self signed certificates (elong)
  • 0003275: [Improvement] Allow users to reset batch status to NE to force re-extraction of a batch (mmichalek)
  • 0003277: [Bug] null pointer during sorting of tables for initial load (josh-a-hicks)
  • 0003278: [Bug] Fixes for NuoDB dialect (elong)
  • 0003279: [Bug] Rest services return HTTP response code 200 when disabled, but should return a response code indicating something's wrong. (mmichalek)
  • 0003282: [Bug] Common batch extracts may fail when a cluster is using a shared staging area (mmichalek)
  • 0003285: [Improvement] Move loading of trigger_routers to more specific execution branch to reduce unneeded db calls (chenson)
  • 0003286: [Improvement] dbcompare improvements (mmichalek)
  • 0003288: [Bug] The cancellation of pending heartbeat batches can cause a deadlock on SQL Server (mmichalek)
  • 0003293: [Bug] Resource leak when loading data from transport (chenson)
  • 0003294: [Bug] Loads that use a custom sql (truncate table %s) to not take into account transforms (josh-a-hicks)
  • 0003296: [Improvement] Routing should use a dirtySqlTemplate for getReadyChannels() (mmichalek)
  • 0003297: [Bug] Treat Oracle DATE type as a TIMESTAMP (kstojanovska)
  • 0003298: [Bug] On Sybase ASE, SymmetricDS sometimes fails to detect triggers in different catalog (mmichalek)
  • 0003300: [Improvement] Run fix data gaps by default the first time routing runs after a restart (chenson)
  • 0003301: [Improvement] Don't package snapshot zip like a jar file. Use zip utility instead. (chenson)
  • 0003302: [Improvement] Package all symmetric log files and wrapper log files in a system snapshot (chenson)
  • 0003303: [Improvement] Include more outgoing batch rows in the snapshot (chenson)
  • 0003304: [Improvement] For a failed batch log the channel it was on as well as the batch id. This will be useful to see in the log file (chenson)
  • 0003287: [Bug] Invalid symbols in index name lead to sync error on SQLite (chenson)

New in SymmetricDS Pro 3.8.30 (Oct 9, 2017)

  • 0003258: [Improvement] DB2 support for transaction id (josh-a-hicks)
  • 0002846: [Bug] SymmetricDS blocks on startup when AS400 password expires (elong)
  • 0003210: [Bug] Turkish Locale Problem (elong)
  • 0003212: [New Feature] Add NuoDB Dialect (kstojanovska)
  • 0003224: [Bug] batch_to_send_count does not get reset in hybrid model (kstojanovska)
  • 0003226: [Bug] Enabling File Sync doesn't start jobs on client nodes (maxwellpettit)
  • 0003227: [Improvement] When pushing to a large number of nodes on limited number of thread, only allocate nodes that have pending changes (chenson)
  • 0003234: [Improvement] Ability to store additional statistics by channel (josh-a-hicks)
  • 0003237: [Bug] DB2 zOS does not support to_clob function (josh-a-hicks)
  • 0003239: [Bug] Observed that two load threads are loading the same batch at the same time during a pull (maxwellpettit)
  • 0003240: [Bug] Each time a batch is loaded it uses the same thread name. This can be confusing if the same node is being loaded by two thread (maxwellpettit)
  • 0003246: [Improvement] Check for journaling on DB2 for i (elong)
  • 0003247: [Improvement] Include check for next data_id to ensure within range of sym_data_gap (chenson)
  • 0003249: [Bug] Setting EXTERNAL.ID.IS.UNIQUE can create a race condition that allows to nodes to share registration (gwilmer)
  • 0003250: [Bug] Clustered DataExtractorService re-extracts batches when they have already been extracted by another node in the cluster (gwilmer)
  • 0003259: [Improvement] Retry batch should be flushed when written to the output stream so we don't hit timeouts (chenson)
  • 0003263: [Improvement] Optimize inserting of initial load events for lots of nodes (chenson)
  • 0003264: [Bug] The MySQL Bulk Loader throws a null pointer exception if the table is not found in the target database (chenson)
  • 0003267: [Improvement] Log better error message when SymmetricDS fails to decrypt a db.password (chenson)
  • 0003268: [Bug] symadmin encrypt-text requires a valid properties file that can connect to a database to encrypt new passwords. (chenson)
  • 0003269: [Bug] If a file exists in staging with a done or create suffix and no period to separate the suffix, then the server won't startup (chenson)
  • 0003270: [Improvement] Document how to import a pkcs12 formatted ssl cert into symmetricds (chenson)
  • 0003271: [Bug] Postgres bulk loader will produce a stack overflow error on create tables (josh-a-hicks)
  • 0003272: [Bug] Table reload requests that use the custom sql (for truncates or other) run agains the improper order of tables (josh-a-hicks)
  • 0003273: [Bug] Initial load order was not correct for all cases. (josh-a-hicks)

New in SymmetricDS Pro 3.8.29 (Aug 16, 2017)

  • 0003209: [Improvement] Delay detection of offline nodes after restart (elong) resolved.
  • 0003168: [New Feature] Create CSV Router to route data from a CSV file into a database and update documentation. (kstojanovska) resolved.
  • 0002684: [New Feature] Support Custom Jobs (mmichalek) resolved.
  • 0003060: [Bug] Data generated by a transform isn't visible to later transforms (when using multiple load transforms on one table) (mmichalek) resolved.
  • 0003114: [New Feature] Update service detects new software versions (elong) resolved.
  • 0002937: [Improvement] Disable and deprecate Grouplets feature in 3.9 (mmichalek) resolved.
  • 0003087: [Improvement] When a trigger_hist row can't be found use the catalog and schema from the trigger definition to look up the table to "recreate" (chenson) resolved.
  • 0002909: [Bug] Built in extension points should be marked as built in extension points so they show up as such (chenson) resolved.
  • 0002911: [New Feature] Immediate re-pull when data was just pulled (elong) resolved.
  • 0003115: [Bug] You can miss sym_monitor_event sync's because they are on the heartbeat channel. Create a new "monitor" channel. (chenson) closed.
  • 0003113: [Bug] Typo in sym_service.conf (chenson) closed.
  • 0002912: [Improvement] Prevent reading out database password via rest api (elong) closed.
  • 0003053: [Improvement] Default handle_key_updates in sym_trigger to 1 (chenson) closed.
  • 0003120: [Task] Upgrade build to the latest version of gradle (chenson) closed.
  • 0003138: [Task] Default monitor.events.capture.enabled to false (chenson) closed.
  • 0003112: [Improvement] Make Outgoing Batch and Incoming Batch Similar (maxwellpettit) closed.
  • 0003092: [Improvement] Remove sym_trigger_router.initial_load_batch_count. It is no longer used. (chenson) closed.

New in SymmetricDS Pro 3.8.28 (Jul 20, 2017)

  • 0003197: [Bug] One file trigger that is configured with two routers to two different target locations syncs only to one location (chenson) - closed.
  • 0003200: [Bug] Auto Create Router on Group Link Value Too Long (maxwellpettit) - closed.
  • 0003176: [Improvement] SymDS V3.7 and V3.8 for "sym_context" With INTERBASE (maxwellpettit) - closed.
  • 0003194: [Bug] SymmetricDS fails to start on multi-homed installations using the exact same db.url (mmichalek) - closed.
  • 0003199: [Improvement] Support 'NaN' Datatype for Numeric Columns in Postgres (maxwellpettit) - closed.

New in SymmetricDS Pro 3.8.26 (Jun 20, 2017)

  • 0003157: [Improvement] Allow bulk loaders to fall back to default loader when an error occurs (josh-a-hicks) - resolved.
  • 0003154: [Bug] Reopen registration sets created_at_node_id to be the selected node rather than registration server/managing node (kstojanovska) - resolved.
  • 0003145: [Improvement] Allow $(schemaName) variable in channel expression (elong) - closed.
  • 0003143: [Bug] Table reload request load sql using alias "t" will not work (josh-a-hicks) - closed.
  • 0003147: [Improvement] Create table reload requests by channel (josh-a-hicks) - closed.
  • 0003148: [Bug] Stream rows does not honor sync key names if provided (josh-a-hicks) - closed.
  • 0003150: [Bug] ProcessInfo duration is for the entire sync (versus batch) and the rows/sec is off because it is calculated using the total time (maxwellpettit) - closed.
  • 0003155: [Bug] Refresh the group link cache when node group links are modified. (maxwellpettit) - closed.
  • 0003156: [Improvement] Validate the number of table columns match the number of data elements before attempting to load data (chenson) - closed.
  • 0003146: [Bug] Wildcards for schema and table on Oracle (elong) - closed.
  • 0003162: [Bug] Empty batches are created on load when using subselect router (maxwellpettit) - closed.

New in SymmetricDS Pro 3.8 (Mar 29, 2017)

  • JumpMind is excited to announce the release of 3.8. This release was primarily focused on performance based changes. Through the process of profiling the code base and addressing a lot of the pain points in the community, we were able to address some key performance improvements.
  • Monitors and Notifications:
  • Monitors:
  • There has been a great deal of interest in being able to track issues with the replication system and then broadcast those results to the necessary parties. Monitors and Notifications does just this through a few quick configuration screens. First, you create the monitors you would like to use to look over your environment. Such monitors include:
  • Batches in Error
  • Batches Unsent
  • Data Gaps
  • Unrouted Data
  • CPU Usage
  • Disk Usage
  • Memory Usage
  • Data Load Wizard
  • Once you have created the appropriate monitors you can specify how you would like to be notified when a monitor is activated. For instance you can setup a notification to email users when a specific monitor event is fired.
  • Channel Queues:
  • Until now SymmetricDS utilized only one thread per node while pushing or pulling data. Now through the use of channel queues you can achieve multi-threading between nodes. By default all channels will use the same queue (named default) but they can be changed to different values so that each queue will be able to communicate on its own thread between nodes.
  • Data Load Wizard / Partial Loads:
  • Load Data Wizard:
  • There is a new data load wizard to help simplify the creation of loads between nodes. The wizard allows you to select the source and target nodes involved. You can then tell it to take an action before loading the data such as creating the tables, deleting data in the target, or running some custom SQL. There is also the ability to select specific tables involved in the load (partial load) with a "where" condition for each. For example, load three tables from node "server" to "client" where the data is older than one day.
  • Improved Routing:
  • Data gaps serve as a critical piece in the routing process of SymmetricDS to create batches from changed data. Gaps can be created for a number of reasons such as uncommited data. This affects the data IDs that SymmetricDS uses internally and data gap analysis helps solve this problem. In 3.8, the data gap analysis has been improved a great deal and results in much faster routing. With improved routing performance the batches are able to be sent and loaded to the targets faster as well.
  • DB Compare:
  • The DB compare feature allows you to compare two databases that are setup with SymmetricDS. You can select a subset of tables or compare all tables by providing the engine files of the nodes you wish to compare. The comparison is done at the column level and can output a SQL file for all differences.
  • SQL Explorer enhancements:
  • There were several enhancements made to the explore tab in the SymmetricDS Pro web console. You can now view the triggers on tables as well as the source of the triggers. The query result tabs are now pinnable and refreshable so that result sets can be retained while additional queries are executed. Within the results you can now edit the data directly inline without having to create update statements.
  • Hybrid Pulls:
  • Hybrid pull is useful when you have a scenario where you want the target to pull data from the source, but you also want to avoid too much wasted network traffic on ineffective pulls. For example, a client system may wake up and ask the server if there is any new data each minute. But what if new data is only available every 30 minutes or so? That means that virtually all of the pull requests are a waste, because there isn't actually new data to pull yet. With hybrid pull, the server will notify the client when there is new data to pull. Then, the client is able to use those notifications to throttle and prioritize when to pull from the server.
  • Multi-threading for extract, transferring, and loading:
  • The core ETL concepts involved in every SymmetricDS push and pull have been setup now to process in parallel. Once a batch is extracted and marked with a status NE (new) it can be picked up by a transferring thread to begin sending the data to the target while additional batch extractions are taking place. Once a transfer thread has finished sending the data, a new thread will pick up the process of loading the data into the target so that additional transfers can occur at the same time.
  • Web Console Events:
  • With the ability to have multiple users accessing the SymmetricDS web console at the same time, we provided a way to track their interactions with system. Operational events such as ignoring a batch, creating an initial load, and syncing triggers are recorded along with the time, the user, and some extra details about which node the change affected. The output of these events is now available on the manage tabs, console events screen.
  • Volt DB added:
  • There was a new database dialect added in 3.8. VoltDB is now supported. A very fast, reliable in-memory database.

New in SymmetricDS Pro 3.3 (Apr 17, 2013)

  • Pilot configuration changes
  • Reload tables easily
  • Understand the source of conflicts
  • Find configuration errors

New in SymmetricDS Pro 3.2 (Apr 17, 2013)

  • Sync data with the SQLite database
  • Integrate with enterprise and remote systems
  • Handle new types of synchronization scenarios
  • Track historical changes for auditing
  • Configure and troubleshoot more productively

New in SymmetricDS Pro 3.1 (Apr 17, 2013)

  • Dynamically add tables to synchronization
  • Migrate and backup data between database platforms
  • Save time during configuration and testing
  • Filter data through configuration using scripting

New in SymmetricDS Pro 3.0 (Apr 17, 2013)

  • Improve and gain more control over performance
  • Detect and resolve data conflicts
  • Sync with Android mobile devices

New in SymmetricDS Pro 2.5 (Apr 17, 2013)

  • Setup and get running faster
  • Consolidate multiple servers in one SymmetricDS service
  • Synchronize data to the Greenplum database
  • Reduce the time you spend on diagnosing and resolving problems

New in SymmetricDS Pro 2.4 (Apr 17, 2013)

  • Replicate tables that have different column names between the source and target
  • Transform, merge, and supplement tables during replication
  • Synchronize more data in large object (LOB) columns

New in SymmetricDS Pro 2.3 (Apr 17, 2013)

  • Perform heterogeneous database replication in the enterprise

New in SymmetricDS Pro 2.2 (Apr 17, 2013)

  • Monitor and gather statistics around replication
  • Build a light client distribution
  • Control last update wins in a conflict