MirrorSync Advanced Topics
Table of Contents:
MirrorSync Advanced Topics
Welcome to the advanced section of the MirrorSync 7 documentation! This guide will help you customize MirrorSync to suit your development needs, and provide detailed instructions for various situations. If you would like a good general overview of the software, please read through the basic setup documentation first!
Hub and Spoke Terminology
MirrorSync uses the word 'hub' to refer to your central database that everybody syncs with. MirrorSync supports many different types of hub databases, including FileMaker Server, Salesforce, Oracle, MySQL, SQL Server, or any other JDBC database.
A 'spoke' is another database that syncs with the hub. A spoke could be a copy of the hub database running on a laptop, iPhone, or iPad with FileMaker Pro or Go. It could also be another database server.
In addition to the supported hub database types, MirrorSync supports spoke servers running DynamoDB and AWS RedShift. MirrorSync even supports FileMaker spokes with a non-FileMaker hub: You could have a fleet of iPads syncing with a MySQL, PostgreSQL, or Salesforce database, for instance. See supported configuration types for a full list of supported types.
For any configuration, there is exactly one hub, and one or more spokes. If you're setting up a server-to-server sync between two servers, and you're not sure which one to use as the hub, ask "If I were going to delete one of these and replace it with a copy of the other?" The one that you'd keep is the hub, and the one you'd delete is the spoke. The hub database is where the data starts when configuring MirrorSync, and the spoke database(s) will be set up to match the hub during the initial sync.
Reporting problems
If you encounter any problems during syncing, PLEASE use the 'send problem report' link on the MirrorSync launch page (you can access this using the same URL that you use in your config client, e.g. http(s)://yourServer/MirrorSync). This is much more useful than emailing us. If you do email us, we will probably ask you to re-send the report using that link, because that sends us the detailed sync log file, which is necessary to solve most tech support issues.
Compatibility
What type of sync configurations are supported by MirrorSync?
See terminology at the top of this document for a discussion of what a 'hub' and 'spoke' database are.
MirrorSync can sync with the following hub database types:
- FileMaker Server
- MySQL
- Oracle
- MS SQL Server
- Any JDBC-compatible database (e.g. PostgreSQL)
- Salesforce
- Amazon RedShift
The spoke database can be any of the above hub types, as well as:
- FileMaker Pro/Go
- DynamoDB
Here are a few examples of supported configurations:
- FileMaker Server (hub) syncing with FileMaker Pro or Go (spoke)
- FileMaker Server syncing with one or more FileMaker Servers
- MySQL / Oracle / SQL Server / JDBC database / Salesforce / RedShift (hub) syncing with FileMaker Pro or Go (spoke). FileMaker Server is needed during sync setup, but not for actual syncing
- FileMaker Server / MySQL / Oracle / SQL Server / JDBC database / Salesforce / RedShift syncing with one or more database servers, including DynamoDB
MirrorSync does NOT support syncing FileMaker Pro/Go directly with other FileMaker Pro/Go devices without using some database such as FileMaker Server as the hub. It also does not support different types of spoke databases in a single configuration, such as syncing a FileMaker Server hub with a MySQL spoke and an Oracle spoke. This can be done by setting up multiple configurations that share the same hub database.
If you need to sync with a database or API that is not on this list, contact us and we'll get you a quote to support it. We've created custom implementations for state governments that use MirrorSync to sync with Web XML API's. We've also synced FileMaker Server with iTunes libraries for music companies. We're always open to a new challenge!
Does MirrorSync work with runtime versions of FileMaker Pro?
MirrorSync is untested and unsupported for use in this configuration. In addition, the legal licensing agreement for creating runtime versions of FileMaker specifically disallows any automated transfer of data between the runtime version and FileMaker Server. This restriction means that no sync process can legally be used to transfer data between the runtime edition and FileMaker Server, whether that is from a 3rd party or a home-grown automation process. Contact your FileMaker Business Account Manager for volume pricing on FileMaker Pro licenses.
Can MirrorSync be used with the iOS App SDK?
Yes, we've developed a tool that will make deployment and version updates in a mobile app much easier. We have a page dedicated to this here.
Does MirrorSync work with the Apple Silicon Macs?
Yes, MirrorSync is fully supported on Apple Silicon Macs. It also runs natively on Intel CPUs and AWS Graviton Processors.
Does MirrorSync support FileMaker Cloud?
No, MirrorSync does not support FileMaker Cloud.
Does MirrorSync work with SuperContainer?
Yes, it does. However, with SuperContainer the approach is very different. You will need to have a field on your sync layout that contains the SuperContainer URL that the web viewer is pointing to. That way only the URLs are synchronized, not the actual files - they remain on the SuperContainer server. The advantage is that syncing is very fast - there is no binary data being transferred. The disadvantage is that you'll only have access to the files stored in SuperContainer when you have working network access from your computer or iOS device.
Installation and Deployment
Installation for hosting providers
To install multiple instances of MirrorSync, choose the Hosting provider option in the installer. This is exactly the same as the regular installation process, except that it will allow you to rename the instance of MirrorSync. You can continue running the installer as many times as you like, once per client, renaming each instance to something unique. These copies can then be managed via the 360Admin utility, which is found either in your Program Files or Applications folder. When installing additional instances of the application, only a single Tomcat process will be installed which is shared by all the MirrorSync instances. Log files are separated by the MirrorSync application name. This is important for hosting providers to be able to see each customer's log files separately, and makes troubleshooting with 360Works easier.
Hosting providers who do not provide FMS Admin credentials to their customers should read the next item 'MirrorSync configuration without FMS admin credentials'
Hosting providers may choose to share a dedicated computer running MirrorSync with multiple hosting customers. Be sure to read the 'split server deployments' section below. We recommend customizing your server.xml file and setting the startStopThreads attribute to at least as many instances as you're hosting, to make Tomcat start and stop much faster. Here's an example:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" startStopThreads="30">
For installation on Mac or Windows, we recommend you use the installer with the 'hosting provider' option selected.
If you prefer to skip the installer and manually deploy using your own instance of Tomcat that you've set up, read these notes:
- Create a folder at
/Library/360Workson Mac,C:\Program Files\360Workson Windows, or/var/lib/360workson Linux. Make sure that it is readable and writeable to the process that Tomcat is running as. This is where MirrorSync stores its private data including the internal sync database and the stored configurations. You can use the '360directory' system property in Tomcat to point to some other path. - If you're running a single instance of Tomcat shared by multiple customers (which is how we host MirrorSync for our customers), rename the
MirrorSync.warfile to whatever name you'd like the instance to run as for your hosting customer, i.e.MyCustomerSync.warIf you decide to run multiple instances of Tomcat, you'll need to set '360directory' separately for each Tomcat instance, otherwise those multiple instances will overwrite each other's private data. - Drop that
.warfile into the webapps directory in your Tomcat instance. - Modify the
MirrorSync.xmlcontext descriptor and set the administrative username and password for MirrorSync. The file is located in your Tomcat home directory, in theCalina/locahost/MirrorSync.xml. The .xml filename will match the .war filename. - If necessary for your configuration, set up URL forwarding from IIS / Apache / nginx to your Tomcat connectors, using ProxyPass or something similar. See the Tomcat documentation on how to do this.
Regardless of whether you use the installer or not, if you install enough instances of MirrorSync, you may start to run out of memory. If the memory error messages you get talk about PermGenSpace, then the memory problem is related to loading the MirrorSync classes, not the memory used during actual sync operations. In this case, modify the setenv file for your MirrorSync version (see the file locations under Increasing MirrorSync memory allocation) and add this to the list of launch arguments:
-XX:PermSize=64m -XX:MaxPermSize=256m
Silent Installation
You can run the Tomcat Linux installer without any user interaction. This is useful for those who wish to automate the installation process. See the Silent Installer for details.