360Works MirrorSync Changelog

What's new in 360Works MirrorSync 2.506

Nov 12, 2015
  • [Requires script update] Made error messages more user-friendly if a field is renamed after MirrorSync configuration
  • [Requires script update] Better error reporting for container fields that cannot be synced (i.e., if they are stored as a reference)
  • [Requires script update] You can now optionally set a $$MIRRORSYNC_EXTERNAL_URL variable in the MirrorSync customization script to override the value of the external URL set in the MirrorSync configuration process.
  • You can right-click on the configuration to re-sync old records, for instance if you restored from backup and wanted to make everything current.
  • When writing empty fields to MySQL that are configured as not nullable, write as an empty string instead. This fixes issues syncing with WordPress.
  • Added a configuration property in context.xml to disable audit logging
  • Better error reporting if resetting sync data fails for some reason
  • Treat date / time / timestamp objects as text if they are not parseable (ie. if somebody enters bad values into a date, time, or timestamp field in FileMaker) instead of giving an error message
  • Reduced XML requests to Web Publishing Engine when running on the same computer as MirrorSync
  • Better error reporting if the sync expires due to iPad going to sleep
  • Fixed repeating fields (repeating container fields are not supported)
  • Fixed a problem where refresh button in field mapping panel did not detect new/missing fields
  • Fixed a memory leak caused by connection pooling
  • Fixed a bug with FMP11 with the ok and cancel buttons not showing.
  • Fixed problems generating schema for MySQL with BLOBs and UUID primary keys
  • Fixed rare cases where internal database connections would unexpectedly close during a long sync
  • Fixed a bug that caused sync to fail with passwords longer than 76 characters

New in 360Works MirrorSync 2.505 (Aug 7, 2015)

  • Fixed a bug introduced in 2.5 that could cause reads from SQL databases to fail when using writebacks from the primary key
  • Fixed a bug introduced in 2.504 that could occur when clicking the 'copy script steps' button multiple times

New in 360Works MirrorSync 2.504 (Aug 6, 2015)

  • Improved speed when running through sync configuration process
  • Now honors FileMaker default certificate for SSL requests to server. This means that SSL checkbox can be enabled without needing to install a custom certificate for the XML Web Publishing Engine.
  • Makes a full backup coy of old sync data before upgrading to version 2.5 format, so that it's possible to roll back to a previous version if desired
  • Correctly warns user if they do not have their gLastInsert field set for global storage
  • Added an internalDatabaseCache parameter that can be increased if the sync metadata size gets too large
  • Fixed incorrect error message about "can't happen, allowInterrupt is false"
  • Fixed a bug where sync errors on the client were not being sent to the server, making MirrorSync wait forever for the sync to finish
  • Fixed a bug where MirrorSync window is left open if the sync is aborted
  • Fixed a bug that, when SSL was enabled, was causing incorrect warnings about not being able to sync from outside the network

New in 360Works MirrorSync 2.503 (Jul 27, 2015)

  • You can now stop as well as start MirrorSync using the 360Works admin utility (previously you could only restart it; it was always running)
  • Fixed a bug introduced in 2.5 where resetting the sync data was causing a new incomplete database to be written

New in 360Works MirrorSync 2.502 (Jul 23, 2015)

  • Fixed bug in HXSQL conversion on Windows
  • Fixed bug that could cause unintended deletions of SyncJoin

New in 360Works MirrorSync 2.50103 (Jul 22, 2015)

  • Fixed bug that could cause unintended deletions of SyncJoin

New in 360Works MirrorSync 2.501 (Jul 16, 2015)

  • Fixed broken dependency for SQL Server syncing

New in 360Works MirrorSync 2.5 (Jul 11, 2015)

  • It is now safe to transfer files between devices. This means that you can run an initial sync for your users before sending them the offline file. Also, if your offline users are having trouble syncing, they can send the files to you where you will be able to sync them. NOTE - it is not a good idea to sync from the same copy of a file from multiple devices on an ongoing basis - once a file has been sent to a second device, stop using it on the first device.
  • Better recovery after a syncing client crashes or is interrupted; significantly less chance of incorrect deletions or duplicate records. Note that this change requires an internal database change that may cause the first sync after this update is applied to take much longer than normal.
  • Now deletes MirrorSync log files older than 2 weeks (does not delete SyncAuditLog files, which are smaller and useful for historical reasons)
  • Now checks external IP addresses during configuration to make sure that they are accessible from the Internet; checks NAT settings and port forwarding to make sure that external users will be able to sync.
  • Switched to a newer, higher performance database (HXSQL) for tracking internal sync metadata. This speedup is most noticeable when doing an initial sync with a large database.
  • Downloading a clone using the MirrorSync download URL no longer appends 'Clone' to the filename.
  • 'Report a bug' button that comes up during sync now works for both internal and external IP addresses (previously always used the internal IP address)
  • Now retries XML requests when IIS returns empty results
  • Improved speed for deleting devices
  • Better error reporting if FileMaker XML Web Publishing Engine is not responding correctly
  • Many low-level improvements to reliability and thread-safety
  • Limit error messages sent to the offline file to 64,000 characters to prevent FileMaker Go from crashing when there are thousands of warnings / errors.
  • Workaround for a bug in FileMaker Go 14 that was causing Mirrorsync script to crash on iOS devices
  • Fixed a case where container syncing did not work in server-to-server configurations if the JDBC query failed and we fall back to XML
  • Fixed a case where recently-created records could be duplicated during initial sync when using hub filtering in customization script
  • Fixed a problem where MySQL BLOB fields sometimes did not transfer to FileMaker Server container fields

New in 360Works MirrorSync 2.406 (May 29, 2015)

  • Now intelligently tests different ports to figure out the best HTTP port for communicating with FileMaker XML Web Publishing Engine
  • Made table mapping panel more intuitive
  • Change download URLs to use the external IP address instead of the internal IP address
  • Fixed a bug that could cause duplicate records on the initial sync if filtering is enabled on the server, and filtered records were modified within 24 hours of a users initial sync who does not have access to the filtered records.
  • Fixed problem that could occur when recording metadata to internal database after sync completes, if there were numerous errors during the sync.
  • Fixed case sensitivty issue when creating new tables in MySQL with mixed-case table names
  • Fixed very long delays when deleting devices in license management screen
  • Disabled feature where device sync storage data was listed in licensing panel; was taking too long and slowing down license panel from displaying
  • Exiting the sync script should now close the MirrorSync window and enter browser mode (previously would remain in find mode)
  • Calc fields should be able to be synced if the sync is one-way to a writeable field, but this was not working in the case of one-way syncs from spoke to hub. Fixed.
  • Fixed a case where clicking cancel in the URL downloading dialog would not exit the sync script

New in 360Works MirrorSync 2.405 (Apr 7, 2015)

  • Worked around a problem in the fmsadmin command line tool that could sometimes leave the FileMaker http server in an 'off' state after running installer.

New in 360Works MirrorSync 2.404 (Apr 3, 2015)

  • Fixed a change in 2.4 that caused changes to not be picked up if offline device was in a different timezone than the server
  • Now compatible with FileMaker Server 12 and earlier configurations that have Apache on a separate computer from the Web Publishing Engine (not applicable for newer versions of FileMaker Server)

New in 360Works MirrorSync 2.403 (Mar 27, 2015)

  • Last minute change (just minutes after 2.402 shipped) to fix a bug where syncing containers using JDBC does not retain the file names.

New in 360Works MirrorSync 2.402 (Mar 27, 2015)

  • Fixed an infinite loop that could happen when starting the sync script with a non-functional network connection
  • Fixed a case where old versions of MirrorSync scripts would include garbage characters around ampersands (&) in text.
  • Improved BLOB image support with MS SQL Server to work around some problems with its JDBC driver
  • Added option to send emails either using Amazon Simple Email Sender (the default; no configuration required) or an internal SMTP server
  • Reuse active sessions on XML Web Publishing Engine for better speed and reduced memory usage
  • Fixed a bug that could, in certain cases, authenticate as the wrong user if a password was mis-typed
  • Continue to improve error handling and reporting in case of user-initiated and unexpected aborted syncs
  • MirrorSync script now exits with a '0' in case of a successful sync, so that developers can check for this
  • Fixed a bug affecting record counts when using custom SQL filtering
  • Fixed a bug that generated invalid SQL with MS SQL when syncing with a spoke database that is a duplicate of the hub database
  • When creating new tables in FileMaker from an SQL database, boolean values are now treated as Number instead of Text

New in 360Works MirrorSync 2.401 (Mar 6, 2015)

  • This is a major update with many improvements and fixes:
  • Download links now support offline FileMaker databases larger than 2 gigabytes
  • Opens a single JDBC connection to FileMaker Server instead of one per table. This can substantially reduce memory usage when syncing a large number of tables.
  • Significantly improved setup time for syncs with large number of tables. Performance increase will be most noticeable when there are a small amount of changes across a large number of tables.
  • Improved handling of dropped network connections during sync; will now attempt 3 times before giving up on sync.
  • Improved auto-switching behavior between internal and external IP addresses
  • Performance improvements to skip several situations where deletion scanning was done when not necessary
  • Deletion scanning can now complete successfully even when users are adding new records to the server at the same time as the deletion scan
  • MirrorSync now optionally reports sync performance statistics to 360Works. If this is not desired, this option can be disabled when running the installer.
  • Reliability and speed improvements to avoid re-transmitting updates unnecessarily on the next sync after an aborted sync.
  • MirrorSync now supports SOAP as an alternative to REST for enterprise-level organizations that need to install MirrorSync behind a SOAP web services gateway.
  • Now bypasses IIS / Apache and communicates directly with the XML Web Publishing Engine when MirrorSync is installed on the same computer as FileMaker Server. This should give faster speed and more reliable communication.
  • Removed attempt to connect to 'ProscNoSuchDatabase' every 10 minutes, causing error 105 messages in the wpe logs
  • Fixed a case where trying to resolve thousands of conflicts could cause FileMaker Go to crash
  • Fixed a problem that could cause syncs to deadlock when there are numerous simultaneous syncs operating on the same configuration
  • Fixed duplicate record error that could occur when a record from hub to spoke fails validation, and is then fixed and re-synced
  • Fixed an error that was causing customization to MirrorSync.xml to be lost when updating
  • Fixed various time zone problems with MySQL
  • Fixed some time zone problems that can occur when syncing with MySQL in a different time zone than where the MirrorSync server is running.
  • Fixed another time zone problem that only occurred when using time fields in the British Summer Time zone; times were being written one hour off
  • Fixed a case where resolving conflicts with container fields could sometimes not write the container data to both databases
  • Fixed occasional problem where creation timestamps would be written incorrectly (far in the future)
  • Fixed a problem where tables names sometimes did not display during the configuration process (Windows only)

New in 360Works MirrorSync 2.4 (Mar 5, 2015)

  • This is a major update with many improvements and fixes:
  • Download links now support offline FileMaker databases larger than 2 gigabytes
  • Opens a single JDBC connection to FileMaker Server instead of one per table. This can substantially reduce memory usage when syncing a large number of tables.
  • Significantly improved setup time for syncs with large number of tables. Performance increase will be most noticeable when there are a small amount of changes across a large number of tables.
  • Improved handling of dropped network connections during sync; will now attempt 3 times before giving up on sync.
  • Improved auto-switching behavior between internal and external IP addresses
  • Performance improvements to skip several situations where deletion scanning was done when not necessary
  • Deletion scanning can now complete successfully even when users are adding new records to the server at the same time as the deletion scan
  • MirrorSync now optionally reports sync performance statistics to 360Works. If this is not desired, this option can be disabled when running the installer.
  • Reliability and speed improvements to avoid re-transmitting updates unnecessarily on the next sync after an aborted sync.
  • MirrorSync now supports SOAP as an alternative to REST for enterprise-level organizations that need to install MirrorSync behind a SOAP web services gateway.
  • Now bypasses IIS / Apache and communicates directly with the XML Web Publishing Engine when MirrorSync is installed on the same computer as FileMaker Server. This should give faster speed and more reliable communication.
  • Removed attempt to connect to 'ProscNoSuchDatabase' every 10 minutes, causing error 105 messages in the wpe logs
  • Fixed a case where trying to resolve thousands of conflicts could cause FileMaker Go to crash
  • Fixed a problem that could cause syncs to deadlock when there are numerous simultaneous syncs operating on the same configuration
  • Fixed duplicate record error that could occur when a record from hub to spoke fails validation, and is then fixed and re-synced
  • Fixed an error that was causing customization to MirrorSync.xml to be lost when updating
  • Fixed various time zone problems with MySQL
  • Fixed some time zone problems that can occur when syncing with MySQL in a different time zone than where the MirrorSync server is running.
  • Fixed another time zone problem that only occurred when using time fields in the British Summer Time zone; times were being written one hour off
  • Fixed a case where resolving conflicts with container fields could sometimes not write the container data to both databases
  • Fixed occasional problem where creation timestamps would be written incorrectly (far in the future)
  • Fixed a problem where tables names sometimes did not display during the configuration process (Windows only)

New in 360Works MirrorSync 2.305 (Dec 24, 2014)

  • Japanese localization improvements
  • Error message when wifi / cellular data is unavailable is now more user-friendly
  • If a MySQL data truncation error occurs when writing to the destination, don't continue to retry writing that record until the source data is changed.
  • Can now run in free mode (1 device, 1 configuration) without a network connection to the 360Works license server

New in 360Works MirrorSync 2.304 (Dec 11, 2014)

  • Fixed a bug introduced in 2.303 that broke the sync if there were empty container fields

New in 360Works MirrorSync 2.303 (Dec 9, 2014)

  • BLOB images synced from SQL databases will now render as images in FileMaker Pro; previously just showed a generic file icon
  • Fixed an error uploading BLOB data to Oracle databases from FileMaker Pro or Go
  • Fixed a recent bug in the installer that prevented first-time installation on OS X

New in 360Works MirrorSync 2.302 (Dec 4, 2014)

  • Using download link now works when using a non-FileMaker hub database, such as Oracle or MySQL, with a FileMaker spoke database
  • Writebacks are now written from hub to spoke on updates (was previously only for inserts). This makes it easy to see when a spoke record was last synced with the server.
  • Conflict resolution webpage allows saving to server from the last resolved conflict
  • Improved Japanese localization
  • Fixed error message about "Items are submitted in the wrong sort order"

New in 360Works MirrorSync 2.301 (Dec 3, 2014)

  • Overhauled installer to run much faster; fixed cases where it was disabling XML Web Publishing Engine by starting up the web server with the incorrect configuration
  • Undelete operations are now inserted in their original insertion order (was inserting them in reverse sort order)
  • Fixed a bug when creating new FileMaker tables from SQL databases: Creation timestamp was being added twice
  • Fixed a rare bug with incorrect SQL generation when 1) undeleting objects that 2) used a compound primary key, and 3) have a custom SQL filter applied

New in 360Works MirrorSync 2.208 (Oct 28, 2014)

  • Added a 'WillSync' and 'DidSync' section of the MirrorSync customization script, so that you can easily have your own pre- and post-sync actions.
  • Added a feature to override the last sync timestamp, to re-sync old records (for example, if they failed validation and you've changed the validation rules and want to re-sync). Right-click the name of the configuration to access this feature.
  • Speed improvements during sync configuration when reading table information
  • Now correctly generates MySQL tables from FileMaker tables with text primary keys
  • Prevents multiple syncs from running simultaneously if user double-clicks the 'sync' button for server-to-server syncing
  • Much smarter auto-selection of primary keys during setup
  • Improved error reporting when trying to sync records with blank primary keys
  • More informative subject lines in sync e-mail notifications
  • More user-friendly error messages in case of a conflict
  • Improved accuracy of when to retry failed operations
  • Fixed some assumptions about the international date line that could affect people in New Zealand during daylight savings time
  • Fixed an issue that caused configurations created prior to 2.207 to be lost during the update
  • Fixed an issue that could cause blank data to be written to a record, when resolving multiple conflicts simultaneously
  • Fixed an out of memory error that could occur when syncing many binary fields (BLOB) with an SQL database
  • Fixed an issue that caused Microsoft SQL Server to sometimes incorrectly complain about duplicate primary keys
  • Fixed a problem that occurred when syncing records with blank modification timestamps from FileMaker Server with an SQL database
  • Fixed a problem where customizations to memory allocation for MirrorSync were being reverted (Windows only)
  • Fixed an incorrect error message when multiple records were deleted on the server, and the offline user only had access to delete some records but not others

New in 360Works MirrorSync 2.207 (Sep 12, 2014)

  • Fixed a problem causing duplicate records when an insert operation is unexpectedly interrupted
  • MirrorSync installer now uses Tomcat 7 (upgraded from Tomcat 6)
  • Fixed a problem where customizations to the MirrorSync.xml file were being lost when an update is installed
  • Fixed a problem that occurred when using the writeback feature with multiple records in a single sync

New in 360Works MirrorSync 2.206 (Sep 5, 2014)

  • International e-mail addresses that ended with 2 characters (like [email protected]) were not being accepted as a valid admin e-mail address. This is fixed.

New in 360Works MirrorSync 2.205 (Sep 4, 2014)

  • Fixed a bug that occurred in 2.204 which could cause text keys used as foreign keys to have invalid data written to them

New in 360Works MirrorSync 2.204 (Aug 28, 2014)

  • New feature allows syncing with a separate mobile file that is pre-populated with record data matching the server (previous version required offline file to be empty, if it was not a copy of the server file). This now works with both UUIDs and serial numbers. See documentation for details.
  • Corrected a bug that could occur when syncing large numbers of changes between MySQL servers, if both servers had changes
  • Reliability improvements to deletion detection
  • Fixed a rare problem that could occur with certain conflict resolution scenarios that would result in blank values being written to a conflicting record
  • Now allows syncing calculated fields to writeable fields. They will sync to the writeable field, but be ignored if trying to write back to them.
  • Upgrading from 2.1x to 2.2x had a bug that could cause duplicate records to occur during the sync. This update fixes that.

New in 360Works MirrorSync 2.203 (Aug 11, 2014)

  • Fixed an issue that prevented pasted sync script from working in FileMaker 13 in German
  • Fixed an NullPointerException that popped up on the last configuration screen after pasting script steps
  • Added useJdbcIfAvailable context parameter; can be set to false to avoid use of xDBC driver
  • Fixed a parsing error that could occur if invalid data was entered into a number field that looks like a number, like ".E0"
  • Fixed an error that occurred during configuration when mapping two different databases and clicking the 'refresh' button in the field mapping screen

New in 360Works MirrorSync 2.202 (Aug 4, 2014)

  • Fixed two late-breaking problems:
  • Conflict resolution web display did not display
  • Sync fails with error that username is invalid. This would fail every other sync.

New in 360Works MirrorSync 2.201 (Jul 30, 2014)

  • Fixed a late-breaking problem that prevented conflict resolution web display from displaying.

New in 360Works MirrorSync 2.2 (Jul 29, 2014)

  • Can now generate new empty tables in FileMaker Server when syncing with SQL databases
  • Can now generate new empty tables in SQL databases to match FileMaker schema
  • Now supports multi-spoke syncing, so it's possible to sync many database servers together
  • Now optionally supports not defining compound keys as foreign keys (ie. if they point to a table that is not being mapped)
  • Better handling of NOT NULL fields when syncing FileMaker Server with SQL databases
  • Auto-detects foreign keys in MySQL when using InnoDB tables and foreign key constraints
  • Auto-detects creation timestamps in MySQL
  • When creating new creation timestamps and modification timestamps in SQL databases, now has an option to batch-create them for all tables
  • Smoother behavior of drag and drop when mapping fields and tables

New in 360Works MirrorSync 2.112 (Jul 17, 2014)

  • Fixed a NullPointerException introduced in 2.110 that could occur when scanning for deletions.
  • Admin e-mail logs were not being sent (bug occurred in version 2.108 and is now fixed)

New in 360Works MirrorSync 2.110 (Jul 16, 2014)

  • New feature allows syncing with a separate mobile file that is pre-populated with record data matching the server (previous version required offline file to be empty, if it was not a copy of the server file). This only works when using UUIDs.
  • New feature allows de-duping to happen during sync, by customizing the 'MirrorSync customization' script. See advanced docs for more details.
  • MirrorSync log file now includes more detail on how long it took to read and write from each database, to help find performance bottlenecks
  • Better handling of invalid numeric data, such as bad ASCII characters. Now passes through as text instead of trying to convert to number.
  • Fixed a problem that could occur in rare cases during initial sync if primary keys start with a space.
  • Fixed a problem where MirrorSync complained that fields were missing, if there were special characters like periods in the filename
  • Fixed a problem that could occur when using custom record filtering to return a single record, if that single record was different for different syncing users
  • Fixed a problem that could cause the wrong foreign key to be written when resolving a conflict

New in 360Works MirrorSync 2.109 (Jun 5, 2014)

  • Fixed a bug where conflict resolver could not merge fields if there were any container fields in the sync
  • MirrorSync home page now shows whether a newer version of MirrorSync is available
  • Download links did not work when using SSL; this is now fixed.
  • Fixed a bug when using MirrorSync managed keys that the wrong foreign keys could get written during field-level conflict merging
  • AuditLog text file was mis-matching some fields with their values; this is fixed. Did not affect the actual sync, just the audit log.
  • Fixed some cases where the cancel / abort button didn't work during a long sync
  • Fixed a case where containers were not synced from client to server when connecting via a separate IP address

New in 360Works MirrorSync 2.108 (May 7, 2014)

  • Performance optimizations for resolving conflicts
  • Added a feature for developers to set their own e-mail address for the reply-to from 360Works tech support, and to receive copies of all user-submitted bug reports.
  • Made the sync script significantly smaller for syncs that contain many container fields
  • Fixed a bug where records inserted from other devices could be duplicated during initial sync of a new device (only applies when using MirrorSync managed keys)

New in 360Works MirrorSync 2.107 (Apr 22, 2014)

  • Fixed a bug that could potentially lead to duplicate records, if a write operation failed in a certain order
  • Fixed a bug that could lead to error message about duplicate insertOrders
  • When downloading a copy of a file from the server, ensure that no client records exist in the MirrorSync table (this happens if you take a file that has been synced and host it on the server)
  • Fixed a case where sync could hang if the FileMaker Web Publishing Engine returned invalid XML data
  • Fixed a case where commas were being inserted into numeric values. For the most part this was harmless, but some people use these number fields as a component of a primary key in a calculation, and that was causing the PKs to change.
  • More responsive when canceling a sync with many tables.

New in 360Works MirrorSync 2.106 (Apr 5, 2014)

  • Better handling of container data using JDBC driver
  • Fixed a message that could appear about invalid JSON data (was a bug introduced in 2.105)

New in 360Works MirrorSync 2.105 (Apr 3, 2014)

  • Fixed a bug where one container value could be sent to multiple records
  • Fixed bugs when trying to parse international values containing decimal places
  • Fixed a bug where requesting a clone download could return a full copy of the database instead

New in 360Works MirrorSync 2.104 (Apr 2, 2014)

  • Much, much faster writing large record batches to MySQL - benchmarked at 600 records per second from Atlanta to San Francisco and 4,000 records per second on the LAN.
  • 'Report a bug' link did not work from non-English speaking countries. This is now fixed.
  • Fixed a bug where auto-scheduled syncs could build up open connections and eventually become unresponsive, requiring MirrorSync to be restarted.
  • Email notifications are now sent on a separate thread to avoid slowing down the sync

New in 360Works MirrorSync 2.103 (Mar 28, 2014)

  • Added a customization in the context.xml file to set a FileMaker Server admin username and password so that users will not be prompted to enter it when downloading databases. This is targeted towards hosting providers, that want to allow downloads without giving full FMS admin accounts to clients.
  • Worked around a bug in the FileMaker JDBC driver where date values were being set 1 day behind, when syncing in a time zone east of Greenwich Mean Time.
  • Fixed a bug that could prevent containers from downloading when using separate internal and external IP addresses
  • No longer automatically inserts commas into numeric values

New in 360Works MirrorSync 2.101 (Mar 27, 2014)

  • Fixed a bug where generating download links does not work
  • Better handling for SQL databases that have columns which do not allow null values. Will automaticaly insert the default value if one is defined, and will show a warning during configuration if there is no default value
  • Log less detail for record transfers, should greatly shrink MirrorSync log files

New in 360Works MirrorSync 2.1 (Mar 27, 2014)

  • Features:
  • Now uses FileMaker 13 HTTP POST feature for all communication with MirrorSync server. This greatly improves speed, especially for syncing a small number of records across a large number of tables.
  • Now uses Base64 encoding to transfer container data, instead of connecting as a guest of FileMaker Server. This means that offline files with FileMaker Pro/Go 13 never need to connect as a guest of FileMaker Server.
  • Added support for syncing between FileMaker container fields and SQL BLOB columns. This can be used for server-to-server syncing, as well as directly between FileMaker go and SQL databases.
  • Setup wizard now asks user what version of FileMaker they are running, so it is no longer necessary to match the client version with the server version. This means it's fine to use FileMaker 13 client with FileMaker 12 server for MirrorSync.
  • Now compatible with Linux - ideal for hosting providers that want to run a single Linux MirrorSync server which can then coordinate syncs with FileMaker Server
  • Now supports downloading databases from a separate FileMaker Server than where MirrorSync is running
  • Now utilizes native FileMaker JDBC driver for fetching record data. This makes it almost impossible to run out of memory, even for very large record sets.
  • There is now a status page when downloading files from MirrorSync telling the user to wait a moment (instead of just a blank page)
  • Cut about 2 seconds off of no-change sync time when syncing 20-30 tables
  • Field level conflict merging is now exponentially faster for large numbers of conflicting records
  • Added a feature to manage size of internal sync database from licensing management screen. Removing a device from the list now also removes all sync data associated with that device, and compacts the sync database to save disk space.
  • Now does post-sync cleanup, faster as well as on a separate thread so that the sync user does not need to wait for this to happen. Bottom line: Faster syncing!
  • Fixes:
  • Fixed a bug where multiple container fields on the same table could sometimes get placed into the wrong container field when synced
  • Now auto-enters default values for SQL databases, if a default value is defined in the schema and the FileMaker value is empty.
  • Fixed conflict resolution web interface appearing too small on iPad
  • When doing an initial sync with developer-managed keys, will now match up records on just the primary key (instead of primary key + creation timestamp). This will normally will never happen, but is useful when syncing if the internal client sync data is missing.
  • Fixed a problem where MirrorSync could run out of memory after redeploying several updates without restarting Tomcat
  • FileMaker Go has a limit of 64,000 characters in a text field, so we now break the record data into smaller chunks if necessary to transmit data across the network.
  • More accurate detection of deleted record in sync batches that also contained old records that were previously filtered, but now available.

New in 360Works MirrorSync 2.018 (Feb 13, 2014)

  • Now shows MirrorSync version number in the configuration client
  • Fixed a case where config client could not connect to server if you were using NAT and the server had multiple IP addresses
  • Now translates between decimal numbers correctly when syncing between clients and servers in different regional formats. For example, syncing numeric values like "8,1" from Norway will be translated to "8.1" to a FileMaker Server running in the US.
  • Fixed a case where sync would pause indefinitely and not finish in countries that use a ',' character for decimal separators.

New in 360Works MirrorSync 2.016 (Feb 13, 2014)

  • Fixed root cause of 509 validation error that could occur during incremental sync.
  • Fixed bugs that could cause duplicate records during initial sync, if the creation timestamp was not in the same timezone as the MirrorSync server.
  • Much more efficient incremental sync after an initial sync that writes hundreds of thousands or millions of records. This will solve most cases where an OutOfMemory error occurred, as well as the first incremental sync after syncing to an empty clone.
  • Better error reporting if 'MirrorSync' layout is renamed

New in 360Works MirrorSync 2.012 (Feb 6, 2014)

  • Many minor bug fixes.
  • Improved error reporting.

New in 360Works MirrorSync 2.0082 (Jan 25, 2014)

  • Scheduled scripts don't try to run simultaneously, even if the sync duration takes longer than the scheduled frequency.
  • Made the sync scripts more tolerant of MirrorSync customization scripts that do not constrain the found set. Doing that now is inefficient, but it won't cause an error.

New in 360Works MirrorSync 2.0081 (Jan 25, 2014)

  • Fixed a bug introduced in 2.006 that caused syncdata to be reset when editing a sync configuration.

New in 360Works MirrorSync 2.008 (Jan 23, 2014)

  • Fixed error that could occur when deleting records in a certain order: Data from FileMaker Server did not include requested table
  • In device management dialog, show the last sync date and time (instead of just date)
  • Fixed an error that occur when the server hostname is not set correctly
  • Links to open databases for configuration now work with 10 and 11 (previously only worked for 12 and 13)
  • Container fields did not sync correctly when using separate internal and external IP addresses, if the script was pasted in on Windows
  • Fixed a different case where container data was sometimes ignored during sync
  • Auto-entered fields are now synced last, to preserve their custom values without reverting to the auto-entered default value
  • When parsing response from server, ignore invalid / invisble unicode characters in text, instead of throwing an error.
  • Fixed a problem where auto-downloading did not work for the first database in the list of files from the server
  • SSL was not working during sync unless you also used SSL to access the MirrorSync launch page. Now SSL will work regardless of how you launch the admin utility.
  • Fixed a case where installer sometimes did not work on Mavericks 10.9
  • Fixed an error that sometimes occurred in Spanish locale when resolving conflicts

New in 360Works MirrorSync 2.0067 (Jan 18, 2014)

  • Experimental / unsupported, but now adds support for FileMaker 10 (client and/or server)
  • Added script check to make sure that global fields in MirrorSync table are really global (it's easy to mess this up if you aren't using FileMaker Pro Advanced)
  • Added script check to make sure that customizations to the sync scripts do not switch layouts without switching back to the original layout
  • Fixed a last-minute bug found in the Mac OS X installer

New in 360Works MirrorSync 2.0061 (Jan 16, 2014)

  • Fixed a last-minute bug found in the Mac OS X installer.

New in 360Works MirrorSync 2.006 (Jan 16, 2014)

  • Added support for a $$MIRRORSYNC_USERTOKEN global variable that can be set on the client and used by the server during record filtering. This is useful when you have multiple users sharing a single FileMaker sync acocunt name, but still want to filter records differently for each user.
  • Automatic downloading previously only worked for databases in the default Filemaker databases folder. It now works with additional database folders as well.
  • Now sends warning e-mails if MirrorSync is unable to update the MirrorSync table, ie. if the password is changed from when the configuration is created.
  • Added the ability to ignore changes on the spoke, if it's a one-way sync from hub to spoke. Ordinarily, MirrorSync scans the spoke for changes and reverts them to the hub value, but ignoring changes is more efficient, especially for initial syncs with > 100K records.
  • Fixed an error that occurred when duplicating configurations in the config client
  • Can now work with non-numeric data stored in FileMaker number fields without causing an error
  • Fixed a case where ampersands in text fields were being translated as ~%~ to the other database
  • Prevent users from accidentally syncing with an old duplicated version of a file, if they have synced more recently with another version of the file.
  • Improvements to Mac installer; fixed some cases where installation failed to set up URL forwarding in Apache
  • Use MirrorSync logo on config client splash screen
  • Fixed cases where this error happened during initial sync: "Same insertOrder for two different spoke rows in HsqlSyncJoin"

New in 360Works MirrorSync 2.004 (Dec 30, 2013)

  • Files configured in FileMaker Pro 13 were not displaying clickable buttons in dialog messages when opened in FileMaker 12.
  • Field-level merging was reverting to record-based conflict resolution when an unmergeable field value was found. This is now fixed.
  • If container fields could not be written, this was causing the whole sync to stop, and potentially leading to error messages on future syncs. Now the sync continues and just skips the container fields.

New in 360Works MirrorSync 2.003 (Dec 21, 2013)

  • Added a SyncAuditLog file to the logs directory that shows all changes written to all databases
  • Fixed a problem that occurs when doing an initial sync to an empty clone, if the central database contains invalid numeric data at the point of initial sync. This could cause duplicate records to be written to the hub database.
  • Fixed some other licensing issues, mostly cosmetic in the license management dialog

New in 360Works MirrorSync 2.002 (Dec 17, 2013)

  • Fixed a licensing bug that could cause an incorrect message about exceeding the number of valid configurations

New in 360Works MirrorSync 2.001 (Dec 16, 2013)

  • Fixed a licensing bug that could cause an incorrect message about exceeding the number of valid configurations

New in 360Works MirrorSync 2.0 (Dec 12, 2013)

  • New features:
  • Rewritten conflict resolution:
  • Completely overhauled conflict resolution with a new web-based HTML 5 / JavaScript UI.
  • Support for field-level conflict resolution, allowing the user to pick which fields should be kept from which records. Auto-selects each value depending on which record it was changed in.
  • Automatic conflict merging when different fields are modified in the same record.
  • Conflict resolution process allows user to manually enter new value, in order to combine changes from both records.
  • Developer can specify custom conflict resolution policies, overall or per-table: User picks winner, last change wins conflicts, hub wins conflicts, administrator picks winner (notified via e-mail)
  • Server-to-server sync:
  • Now supports server-to-server sync (a single pair of servers). Supports any combination of FileMaker Server, MySQL, SQL Server, Oracle, or generic SQL database with JDBC.
  • Container fields are supported with FileMaker Server to FileMaker Server sync when running version 12 or later (FM Server 11 and SQL BLOB types are not currently supported).
  • Supports syncing dissimilar databases server-to-server databases with simple drag and drop field mapping.
  • Configuration utility assists with schema modification and creation of tables in MySQL, SQL Server, and Oracle.
  • Added auto-sync option for server-to-server sync, so you can sync at whatever frequency you want (defaults to 60 seconds).
  • Mobile sync features:
  • Now supports a dedicated mobile application, with different tables and fields than server file. Simple drag and drop field mapping.
  • Developer can now modify a customization script to control exactly which records should be synced for which user. Record level access privileges are still supported, but no longer required for this purpose.
  • This same script can be used to run custom actions on records when they are inserted or updated on the server.
  • By combining the previous two features, it is now simple to have records automatically deleted from the mobile device when a record status is changed and then synced.
  • There is now a simple process for syncing user-visible sequences which must be the same on the server and the offline file, such as invoice numbers, job numbers, check numbers, etc.
  • Supports downloading empty clones from FileMaker Server for initial sync (in addition to downloading full copies, which was in version 1). It is not necessary for the developer to prepare or distribute a sync file. This feature requires FileMaker 12 or later.
  • It is no longer absolutely necessary for users to run an initial sync before making changes to their offline copy. Inserts and modifications will be preserved and synced to the server. Deletions will be ignored and undone on the client during initial sync.
  • Aesthetic improvements for MirrorSync layout, now fits nicely on an iPhone / iPad.
  • Developer may optionally add the MirrorSync setup script to their own startup script, which will check to see if the file has been synced before, and prompt the user to run the intial sync if applicable.
  • Easier, faster setup process and more configuration options:
  • Automatically detects relationships and foreign keys during setup process, so you don't have to set them manually anymore!
  • Smarter auto-detection of primary keys, modification timestamps, and creation timestamps during configuration
  • Simpler process for creating sync layouts - it is no longer necessary to delete any fields (such as summaries, unstored calcs, or globals), they are automatically ignored.
  • Supports configuration of sync direction and primary keys on a per-table basis.
  • Added $$MIRRORSYNC_HIDE_WINDOW flag to allow users to sync without displaying the status of the sync. Intended as a supplement to $$MIRRORSYNC_SILENT_MODE
  • Developers can now easily customize or suppress dialog messages displayed to user during sync process by editing a FileMaker customization script.
  • Optional ability to customize the clock drift amount to compensate for clients with incorrect clocks or time zones
  • MirrorSync scripts are now grouped into a subfolder when they are pasted.
  • When downloading multiple database files from the server, databases are now shown grouped by folder
  • Progress indicators appear throughout the configuration process, make it more apparent when a long operation is running
  • Blue help icons now hyperlink to relevant section of documentation
  • General features:
  • Now supports 64 bit as well as 32 bit Java installations.
  • Email notifications when sync runs or fails, with configurable frequency and detail.
  • Much better detailed error reporting in case of validation failures while syncing
  • Improved support for international date and time formats.
  • Can now create unlimited download links without having to revoke old ones.
  • Much more accurate tracking of sync progress in the configuration utility, and better error reporting in configuration client if the server is shut down or restarted
  • Ability to install on any hard drive in Windows, not just C: drive.
  • Speed / memory / performance:
  • Now supports fully multi-threaded synchronization, will support as many simultaneous sync clients as available RAM allows. Will take advantage of however many CPU cores are installed (up to 64).
  • Now supports 'fast delete scanning', which is an algorithm for predicting which records were likely to have been deleted, and checking those records for without needing to scan the entire set of primary keys in the database.
  • Inserted records are streamed to the destination instead of loading into memory. This makes inserts much faster, and also means that we can support millions of insertions without running out of memory.
  • Huge (20x) server-side performance improvements for inserting and updating large batches of records, by using a scripted process instead of using the insert/edit operations of the XML Web Publishing Engine.
  • Reduce size of sync script by about 40%, and made many performance optimizations.
  • Reduce transmission of container data to less than 50% of version 1.
  • On-the-fly compression of database copies or clones being downloaded to FileMaker Pro or Go, typically to about 15-25% of the original size.
  • Significant memory optimizations for hosting providers running multiple instances of MirrorSync for hosting clients, allowing more instances to be hosted in a given memory allocation.
  • Significant performance optmizations for initial sync with an empty clone.
  • Implemented connection pooling on the server side to make syncing even faster
  • Now much more efficient process for deleting large numbers of records.
  • When using the download feature of MirrorSync (either directly in the configuration utility or using the download URL), the timestamp of the download is stamped into the offline database, which make initial syncs much faster.
  • Configuration client starts up faster now
  • Bug fixes:
  • Many improvements to overall sync reliability, with over 2,000 lines of code for test cases.
  • Fixed bugs related to multi-user record level access privileges
  • Fixed a case (currently only found with certain hosting provider configurations) where sync could take a very long time because of timeouts on socket connections to FileMaker Server
  • Fixed a performance problem where records inserted from the client to the server would be copied on the next sync back to the client, even if they had not been modified (only applies to UUID sync configurations, not serial numbers). This could potentially lead to false messages about record conflicts.
  • Fixed a case where records deleted on the server would not also be deleted on the client during initial sync
  • When running multiple instances of MirrorSync, fixed a problem that sometimes prevented the configuration client from running until the Java cache was reset.
  • Fixed a bug where newly inserted records could be duplicated if the sync was interrupted at a certain point in the process.
  • Fixed several cases where slow deletion scanning occurred where it was not needed.
  • Better performance diagnostics in the sync log file
  • Fixed cases where client was incorrectly reported as having timed out during sync process
  • Fix for iOS 7 problem with FileMaker Go where MAC addresses and persistent device ID are not being properly reported

New in 360Works MirrorSync 1.5 (Apr 18, 2013)

  • Complete overhaul of installation and deployment process. This version no longer installs as part of the FileMaker Web Publishing Engine; it installs its own Tomcat deployment enviroment.
  • This should make both MirrorSync and the Web Publishing Engine more stable. It also means that the MirrorSync application does not need to run on the same computer as the Web Publishing Engine.
  • We are also now using a native Mac OS X Installer, certified for use with Mountain Lion and Gatekeeper.
  • Added a new download link feature. Instead of downloading a database and sending a copy of it to your users, you can generate a URL that you send to your users. Whenever they trigger this URL, it will download the
  • most recent copy of the database from the server.
  • Adding new tables to the sync configuration will not prevent older offline files from continuing to sync
  • New logging features in the Configuration Client. Users can report a bug straight from the config client, and log errors that may occur in the application.

New in 360Works MirrorSync 1.43 (Feb 1, 2013)

  • Includes new features and bug fixes.

New in 360Works MirrorSync 1.42 (Dec 22, 2012)

  • The major new feature is the ability to specify internal and external IP addresses separately.

New in 360Works MirrorSync 1.4 (Nov 7, 2012)

  • Fixes an issue regarding NoSuchRecordExceptions with multiple devices
  • Fixes issues regarding incorrect field mapping
  • Fixes an issue where repeating fields had leading zeros
  • Fixes an issue with placing scripts into a folder named "MirrorSync"
  • Adds support for Java 7 with Mac OS X
  • Configurations will no longer be removed inadvertently in the MirrorSync client
  • Syncing with empty clones and a one-way sync is now nearly instantaneous

New in 360Works MirrorSync 1.261 (Aug 22, 2012)

  • Restored compatibility with OS X and OS X Server 10.5
  • MirrorSync configuration utility now shows more detailed information if you watch it while the sync is running
  • UUIDs may be numeric

New in 360Works MirrorSync 1.26 (Aug 14, 2012)

  • Adds support for Japanese, Chinese, Dutch, Swedish, and Italian when copying and pasting script steps
  • More reliable sync with very large datasets, especially with iOS sync.
  • Better error reporting if the server where MirrorSync is running is not accessible on the network.
  • Improved sync pre-flight validation to catch more configuration errors. Also now allows any validation failures to be ignored.
  • Fixed a problem that occurred when syncing with remote container fields in FileMaker 12 (note - be sure to use the FileMaker Server Admin, not MirrorSync admin, to download an offline copy of files that use remote container fields)
  • Several other bug fixes

New in 360Works MirrorSync 1.25 (Jul 31, 2012)

  • ESS compatibility: Now take SQL data anywhere, even offline! With just a few extra steps after configuration, your external data is available anywhere.
  • Multiple instances of MirrorSync: hosting providers and other users can now have multiple instances of MirrorSync running simultaneously on a single FileMaker Server.
  • Improved user interface: MirrorSync now warns users about potential problems and file incompatibilities during configuration.
  • Improvements to one-way sync: it’s easier than ever to use an empty copy of a synced database with MirrorSync. Push data back to FileMaker Server quickly and easily with a one-way synchronization.
  • Bug fixes and improvements: includes many bug fixes and a solution for container fields causing a 104 error.

New in 360Works MirrorSync 1.2 (Jul 11, 2012)

  • Manual conflict resolution - When users make conflicting changes on an offline file and sync, now users are given the option to choose which record to use. This user interface provides clear highlighting to emphasize differences in the records.
  • Faster syncing - Syncs are now much faster and efficient, both in the initial sync and with subsequent syncs. The initial sync now generally takes less than a minute, even for tens of thousands of records. See the documentation for speed tips and optimization techniques.
  • Configure MirrorSync anywhere - MirrorSync configuration can now be done over Network Address Translation (NAT) and only using port 80.
  • Stability improvements and bug fixes - Special characters and non-English character encodings are now supported. MirrorSync 1.2 features better error messages, including when records may be locked on the server. Issues with cancelling syncs have been resolved, along with other bugs users might have experienced.

New in 360Works MirrorSync 1.1 (Jun 12, 2012)

  • Includes a number of requested improvements, adding support for container fields and SSL encryption.

New in 360Works MirrorSync 1.01 (Jun 2, 2012)

  • Fixes an expiration date issue that may have left users unable to sync.