MirrorSync 2 basic setup
MirrorSync is an elegant synchronization product that can sync between any combination of FileMaker Pro, FileMaker Go, FileMaker Server, or SQL database (MySQL, Oracle, SQL Server, or any database that supports JDBC). For mobile devices, users can sync the hosted file with their FMGo or Pro clients, go off network to make changes, and sync again when a connection is available. For servers, MirrorSync allows a database to run in multiple locations, or to integrate different databases and make sure that changes to each server are reflected in the other server.
MirrorSync is only installed on the server computer. It is not a plug-in, and does not require any software installation on client devices.
MirrorSync is extremely easy to set up. The only required database changes are:
- Enabling the FMXML extended privilege in your security configuration.
- Making sure that every table you want to sync has a primary key, modification timestamp, and creation timestamp.
- Creating a layout for each table.
- Four copy and paste operations.
Why use MirrorSync?
- For mobile users who access the database with FileMaker Go on their iOS device, MirrorSync allows these users to work efficiently with limited or no connectivity to the server network. Each user can take a local copy on their iPad or iPhone, input the information from the field, and then sync when they regain a network connection. Depending on their workflow, they could even specify a one-way sync where their information is pushed to the server, but no data is pulled down, or vice versa for users who need fast read-only information.
- For remote users who work on laptops, MirrorSync solves the problem of how to work productively on a hosted FileMaker database, regardless of network speed. If, for example, you have multiple users connecting to FileMaker Server over a wide area network (WAN) you could notice a substantial slowdown, as every change is immediately written back to FileMaker Server. MirrorSync allows each user to take a local copy of the database which would run on the users machine and not be affected by the WAN performance. The user could sync when they first came into the office, work on their local copy throughout the day, and sync at specified times (or on demand) to push and pull the latest data to the server.
- For groups of users at multiple locations, MirrorSync should be used in server-to-server mode, where an identical copy of the database is installed on FileMaker Server in each location. Each workgroup works at full LAN speed on their own FileMaker Server, and MirrorSync takes care of keeping the servers in sync with each other, so that each workgroup can see and edit changes made by the other group. In this configuration, MirrorSync should be set to sync very often, such as every 30-60 seconds.
- For integration with non-FileMaker databases, MirrorSync is the simplest and most efficient way to accomplish this. For instance, if you have an online storefront running with MySQL or Oracle at a remote data center, but you need to have instant access to all of the orders in a database running on FileMaker Server, MirrorSync can selectively sync certain SQL tables to FileMaker, even if the table and field names do not match. In this configuration, MirrorSync should be set to sync fairly often, such as every 5-10 minutes.
- Windows 2003r2 or later / Mac OS X 10.5 or later / Linux running Tomcat 6 or 7.052 or later.
- FileMaker Server 10.0v2, 11.0v3, 12, or 13, with XML Web Publishing enabled.
- 3 gigabytes or more of RAM. 8 gigabytes or more are recommended for large databases with hundreds of thousands of rows, or for more than 10 simultaneous sync operations.
- Configuration utility (only run by developer / administrator):
- OS X 10.6 or later, or Windows 2007 with Java 1.6 or higher installed
- FileMaker Pro 11, 12, or 13 (FileMaker Pro Advanced is recommended and reduces setup steps, but not required. If you do not have FileMaker Pro Advanced, read the FAQ on Is FileMaker Pro Advanced necessary for configuration?.
- Sync Client:
- Mac or Windows with FileMaker Pro 10, 11, 12, or 13 OR
- FileMaker Go (any version) running on iPad, iPhone, or iPod Touch
MirrorSync With Hosting Providers
MirrorSync supports hosting provider installations of MirrorSync.
The following companies have indicated that they are set up or willing to configure their servers to host MirrorSync. If you'd like to be added to this list, please contact us at firstname.lastname@example.org.
- ODI Technologies ( http://www.oditech.com/ )
- John May, Point in Space ( http://www.pointinspace.com/ )
- Foxtail Technology ( http://www.foxtailtech.com/ )
- Michael Tinder, DataUp365 ( http://dataup365.com/DU/ )
- Andrew McCallum, Niche IT Pty Lty ( http://www.nicheit.com.au/ )
- NeoCode Software ( http://www.neocodesoftware.com )
- WorldCloud ( http://www.worldcloud.com )
- ZeroBlue Technology Solutions (http://store.zerobluetech.com/hosting/filemaker-hosting.html)
- 360Works can also host your database with MirrorSync, so please contact us directly about this service.
The following companies have specifically indicated that they are NOT willing to host MirrorSync at this time:
- Productive Computing
If you are a hosting provider, read the Installation for hosting providers' section in the advanced documentation page.
MirrorSync is a web application, installed on a server (typically on FileMaker Server) and accessed on client machines through a FileMaker Web Viewer and the Insert from URL script step. MirrorSync communicates with FileMaker Server using the XML Web Publishing Engine.
For FileMaker Pro/Go sync, users run the sync by triggering a regular FileMaker Script in the solution. For server-to-server sync, the syncs are run using the MirrorSync admin utility, and can be scheduled to run in the background at regular intervals.
There are no plug-ins or other software to install on user's devices. Java does not need to be installed on any user's computer, although it is needed during the configuration process.
For server-to-server sync, all communication is done via the XML Web Publishing Engine, or via JDBC (for non-FileMaker databases).
Three ways to get started with MirrorSync
We've setup three ways for you to try MirrorSync:
- Live demo (time to sync: Less than 1 minute): If you would like to see MirrorSync in action without even needing to install anything, you can download our live MirrorSync demo database from here. Just open the file in FileMaker Pro or Go, make some changes, and then hit the sync button. To see how MirrorSync works between multiple devices, use that same download URL on a different device and sync away! Be aware that the data in this file is shared with everybody who downloads it, and also that it resets every night at midnight EST, so don't put anything important in this file.
- Sync using the Tasks template (time to sync: Approximately 20 minutes): Using the tasks starter solution that comes with FileMaker Pro, we provide a step-by-step video walkthrough that you can follow along with. This 13 minute video starts with creating a new FileMaker database and goes through setup and sync. Just watch the video for each step, and pause while you do it on your own file. Watch the video on YouTube.
- Configure your own file for syncing (time to sync: 30-60 minutes for most solutions): Follow the instructions below to configure MirrorSync with your own FileMaker solution.
Installing / upgrading
MirrorSync has a standard OS X and Windows installer included with it. Just double-click the installer for your platform and follow the instructions. Be aware that if you re-install FileMaker Server at some point in the future, you may need to re-run the MirrorSync installer in order to set the web server settings correctly.
If you are upgrading from MirrorSync 1, be aware that existing configurations will not be preserved, and must be re-created. Offline users will not be able to sync with their old offline files, so they should sync any unsaved changes before proceeding. Your existing sync layouts can still be used with MirrorSync 2, with one change: You must include a creation timestamp field on the layout, in addition to the required fields for version 1. Read the upgrading section in the advanced documentation for more details.
Preparing your database for use with MirrorSync
- If you have a multi-file solution (ie. separation model or migrated from older FileMaker version), make sure that there is a single main file with external table occurrences referencing the other files. If you are using a separation model, this should be the data file. When you distribute offline files to your users, you will distribute the entire set of files, which will include the main sync file.
- Be sure that the XML extended privilege is enabled in FileMaker Pro for all accounts that will use MirrorSync. Choose this option under File > Manage > Security… Double click the FileMaker user, and choose Edit… from the Privilege Set.
- Make sure that every table in your solution has a primary key. This is a unique identifier which cannot be empty, and should never be changed once the record is created. MirrorSync can work with traditional serial number primary keys, UUID primary keys, or custom primary key strategies. It will save steps during setup (but it's not required) for your primary keys to have the 'not empty' validation option enabled. Also, if you are using UUID primary keys, be sure to UNCHECK the field options checkboxes that say 'Do not replace existing value of field' and 'Prohibit modification of value during data entry'. For a deeper discussion of how primary keys are handled when syncing, refer to 'Primary key considerations' in the advanced documentation.
- If your solution uses serial numbers as user-visible data for things like job numbers, check numbers, P.O. numbers, or invoice numbers, refer to the section 'User-visible serial numbers' in the advanced documentation.
- Every table (including join tables) must have a timestamp field which is set to auto-enter a modification timestamp, as well as a creation timestamp field which auto-enters the creation timestamp. If you will have users with direct, online access to FileMaker Server who are not in the same time zone as the FileMaker Server, you will need to set up special host modification timestamps as outlined in the 'Time zone considerations' section of the advanced documentation. This requirement does not apply to offline users in different time zones, who access the server via MirrorSync.
- Please remove or rename fields that have parentheses ( ) or square brackets [ ] in the name. These fields are incompatible with MirrorSync.
- Host the database on FileMaker Server. Open the file from the server with FileMaker Pro Advanced, using a full access account. If you do not have FileMaker Pro Advanced, refer to the 'Configuration without FileMaker Pro Advanced' section in the advanced documentation.
Integrating MirrorSync into your solution
Here are the steps to integrate MirrorSync into your solution:
- Install MirrorSync. You can install MirrorSync on any Mac, Windows, or Linux computer, although the easiest option is to install it on your FileMaker Server. During installation, you will create a username and password that will be used to administer MirrorSync.
- After installation, you will be taken to the MirrorSync home page. This is located at http://yourServerAddress/MirrorSync, or in some cases, http://yourServerAddress:42424/MirrorSync. Keep in mind that you can open this page and proceed with the rest of the integration process from your own computer - you don't need to do the entire process from where you have MirrorSync installed. From the home page, click the blue 'Launch MirrorSync Client' button. If you are using Mac OS X, you will then need to double-click the downloaded JNLP file.
- Use the username and password you created during setup to log in to the config client, and then follow the setup instructions in the config client.
- After completing the setup, if you will be syncing with FileMaker Pro or Go, you will need to distribute offline copies of your solution to your users. Click the 'Download Database' button in the config client and choose either 'Download' for quick testing on your own computer, or 'Create Link' for deployment to end users.
- Once you have created an offline copy, run the 'MirrorSync' script to do the initial sync, and then run it again whenever you want to sync with the server. If you'd like to, you can add a button somewhere on the layout for users to run the sync easily.
Distributing new versions of your application
When you make development changes to the file hosted on FileMaker Server, as long as you do not delete or rename fields, it will not interfere with offline user's ability to sync. You can add new tables, layouts, fields, scripts, etc., and your existing offline files will continue to sync normally.
Once you are ready to deploy your changes to offline users, edit the configuration in the MirrorSync admin utility. When you get to the end of the process, re-copy and paste the script steps into your FileMaker solutions. Send an e-mail to your users with a download link (you can use one you've generated in the past or create a new one) and instructions to sync their old file, delete it, and then download a new one. Users who do not download the file will also continue to sync normally, they just won't have the latest and greatest version of the solution.
This document should get you up and running with MirrorSync. However, there are many advanced features and customizations available, which are covered on the MirrorSync advanced topics page.
If you encounter an unexpected error message when syncing, please go to the MirrorSync homepage and click the link titled 'report a bug'. This will send us the sync log file, which is required to solve almost all issues. Be sure to include your contact info in the bug report so that we can get in touch with you.
There is an online discussion forum hosted by FMForums. Please look through the posts and see if your question has been posted before making a new topic.
If you have other questions, we have a dedicated support team that is ready to help. Send us an e-mail at email@example.com or call us at 866-662-9185.