Zumero for SQL Server v3.0 - Release Notes
Zumero for SQL Server (ZSS) v3.0 is now available for download in the dev center.
Important Client- and Server-side Updates
Although older ZSS client libraries will work with ZSS 3.0 servers, we strongly recommend upgrading your apps’ client libraries to 3.0 as soon as possible. Some major bug fixes and performance improvements (noted below) are only available when both client and server are running ZSS 3.0 code.
New features and enhancements in ZSS 3.0
New ZSS Manager
Creating DBFiles and preparing tables is much simpler than before, with a redesigned UI that shows you exactly what you need to see and nothing else.
Notable new features:
- A new interface, which removes clutter and makes managing multiple DBFiles and SQL Server databases clearer
- Prepare multiple tables for synchronization at once
- When preparing a table that has a foreign key reference to an unprepared table, you may choose to prepare the parent table, or to leave the column unsynced
- At preparation time, you can choose which columns will be synced
Rollback Recovery
If the SQL Server database is ever rolled back, client devices can now recover from the “server rollback detected” error state by syncing rolled-back data to the server or by simply rolling back to the same point. Use ZSS Manager to configure what should happen after the rollback.
Android 7.0 (Nougat) support
Android 7.0 introduced a warning message when using previous versions of Zumero. Zumero 3.0 fully supports Android 7.0.
SQLCipher support
We have improved support for using SQLCipher to encrypt client SQLite databases. The now-supported platforms are:
- Android - Java and Xamarin (via NuGet)
- iOS - Objective-C, Swift and Xamarin (via NuGet)
- Windows Desktop (via NuGet)
Bug fixes in ZSS 3.0
Critical bug fixes
ZSS 3.0 contains several critical bug fixes. It is highly recommended that you upgrade your server and all client devices to version 3.0 at your earliest convenience.
Critical bug fixes include:
- Fix a bug where an incomplete sync could lead to “duplicate rid” errors later and prevent a client device from syncing. This bugfix requires the Zumero SDK on client devices be upgraded in addition to the server.
- Fix a bug where deleting a Foreign Key constraint with an ON DELETE action would leave a faulty trigger in place, and possibly lead to data loss. This bugfix requires the Zumero SDK on client devices be upgraded in addition to the server.
- Fix a couple of bugs that could allow foreign key references to IDENTITY column values to be set to the wrong value under certain conditions involving “column merge” conflict resolution or incomplete syncs. These bugfixes require the Zumero SDK on client devices be upgraded in addition to the server.
- Fix a bug where pushing the DELETE of a row in an IDENTITY table–when a foreign key reference pointing to its identity value had been added since the client’s baseline–could introduce an error that would cause syncs to fail.
- Fix a bug that could lead to spurious foreign key constraint violations in certain cases involving multiple levels of foreign key references, which would prevent a client from syncing.
- Fixed a bug where renaming non-synced columns in synced tables would break ZSS sync.
Other fixes and improvements include:
- Improved error reporting on both the client and server.
- Fixed handling of SQL Server bit columns with ‘True’ or ‘False’ strings as the default value.
- The Zumero server is now more diligent about removing tempfiles that it created but no longer needs.
- Zumero will no longer sync disabled (NOCHECK) foreign keys as if they were enabled.
- Numerous performance enhancements and minor bug fixes.
Upgrade Instructions
Upgrade Order
The recommended order for upgrading to ZSS 3.0 is:
- Stop the Zumero web site in IIS.
- Upgrade the ZSS Server.
- Upgrade the ZSS Manager
- Run ZSS Manager and follow the upgrade prompts (see Upgrading in the ZSS Manager documentation). If you have multiple databases, you should examine them all for upgrades.
- Restart the IIS site.
Activation
ZSS Server versions 2.x and 3.x require activation. If you are upgrading from version 1.x, please visit the Activation page to activate your existing license keys. If you have already activated your license keys, you do not need to reactivate them or take any additional action for this upgrade.
Compatibility
Older clients will work with ZSS 3.0 servers, but will not be able to take full advantage of the new features and improvements. Newer clients will not sync with older ZSS servers.
Clients earlier than ZSS 2.0 should not be used with date-based purging. See the documentation for details.