July 15 –360Works’ MirrorSync 2 – the perfect mobile development solution
Thank you to everyone who attended our webinar titled 360Works’ MirrorSync 2- The perfect mobile development solution. MirrorSync is the best way to use your FileMaker database on an iPad, iPhone, or laptop without a network connection. Work on an offline mobile database at the fastest possible speed, and sync your changes with FileMaker Server when you have working network access. MirrorSync is completely free for syncing one device.
This Webinar discussed:
- Set up a two-way sync between a database hosted on FileMaker Server and a lightweight FileMaker Go database.
- Customize scripts to only sync the records that mobile users need to access.
- Easily deploy to users in the field with iPads or laptops
Here’s the video for those of you who missed the live performance:
There were a lot more questions than we had time for. I thought that it would be helpful for everybody to see all of the questions and answers, so I’ve put them together into a single list. If you asked a question during the webinar, it should be here.
If you still have questions about the content we covered or if you’re interested in learning more about leveraging MirrorSync with your existing solution, email FM Academy at webinar@filemakeracademy.com.
===
Q:
Resolving conflicts between data inside the same field: how does it happen? Can you show an example?
Resolving conflicts of data in the same field. I haven’t seen any demo of this problem.
I will try MS because I’m concern about the way it solves the same-record-and-same-field conflicts. I’m sure 360works found a clever solution but this is currently my only unanswed concern.
A:
A lot of people asked this question, which makes me wish that I had taken the time to show this during the webinar. I’ve uploaded a quick video to YouTube showing how this works. You can see the 4-minute video demonstration here: http://youtu.be/_9TD8FyVraM
===
Q:
Container fields… does mirrorsync preserve contained files eg. images, embedded EXIF data, etc?
Handling large amounts of media content – image and video, for example. Does mirrorsync preserve embedded metadata, and/or change files in any way? In other words, will files pass a hash check on both sides of the transfer?
Will MS cause a Tampering issue if the container field is altered in anyway, such as you did with Sam’s changes. Meaning posting a New picture on the end that didn’t originate the first picture.
A:
If you have a JPEG from a camera that has embedded EXIF data, this will all be preserved during a sync. The files are preserved exactly as their original state, so an MD5 hash of the container data is identical on both sides of the sync operation (I just tested this to be sure).
If you were to replace a synced container field with some other container data, then this new container data would be written back to the server, exactly as if the user had been connected directly to FileMaker Server.
===
Q:
What about syncing related information. Child tables?
A:
MirrorSync fully supports related tables when syncing. It makes sure to sync parent records prior to children records, so that referential integrity validation will pass, and also to make sure that cascading deletion rules work correctly. If you are using serial numbers (as opposed to UUIDs), MirrorSync will re-write your foreign keys as necessary to make sure that parent-child relationships are maintained when syncing to different devices.
===
Q:
This is not vanilla FileMaker so what other technologies are being used to bind mirror sync
What technogies are used to build MirrorSync? Server? Mac/Win config clients?
A:
* The server component of MirrorSync is a Java web application that runs in Tomcat, just like the FileMaker Web Publishing Engine. This can be run either on FileMaker Server, or any other server computer.
*The Mac/Win config client is written using Swing.
*The FileMaker sync script is just native FileMaker scripting with no plug-ins or other software required. It communicates with the MirrorSync server web application.
===
Q:
When deleting a record on GO, then sync, is the record(s) really deleted on the FM server or these records are simply marked for deletion ?
A:
For bi-directional sync, the records are really deleted on FM Server. If you don’t want the records to be deleted, you can either configure the sync to be one-way from Go to the FM Server (which does not delete records on FM Server), or you can change the MirrorSync customization script to not allow records to be deleted.
===
Q:
For Container fields sync, is it possible on externally stored containers ?
A:
Yes, it works fine with externally stored containers. If you plan on copying your existing database to an iOS device and it has externally stored containers, you’ll need to follow these instructions to prep the database first:
===
Q:
will a terminated user get one last sync – leaving them with zero data ?
Can you disable a remote user from being able to SYNC?
A:
That depends on what you do on the server. If you delete their device from the list of devices that can sync, then any further attempts they do to sync their file will fail, leaving their offline file unchanged from whatever their last sync was. If you want to delete all the data on their device, then you can modify the MirrorSync customization script to return an empty found set for their username. This will lead to all records in all synced tables being deleted on their next sync (assuming they run a next sync, and also assuming that they don’t cancel the sync when they see that records are being deleted).
===
Q:
Planning on using this to mobile reps who have no computer technical skills. Is this possible? Plan on using a FM hosting service, any recommendations?
Our Filemaker host, triple8.net, does not support MirrorSync. We need hosting comparable to triple8.net that does support MirrorSync. Suggestions?
Need to create a system to support mobile users that have little to no computer skills. Can this be done so that the users will just have to click the proper button to perform any task required including connecting to the FM db? Currently planning to use a FM hosting service, is this workable or should we use a virtual co-location? or?
A:
Yes, your users do not need any technical skill to use MirrorSync. All they are prompted for is their computer name (which is pre-filled, so they can just hit return) and their password. You can also change the ‘MirrorSync customization’ script to control what messages your users see before, during, and after the sync, or hide all messages altogether.
There is a list of hosting providers who support MirrorSync here:
http://docs.360works.com/index.php/MirrorSync_basic_setup#MirrorSync_With_Hosting_Providers
I’ve talked to Triple8; they will support MirrorSync on a dedicated server, just not on a shared hosting provider. If you need shared hosting, then check the list of hosting providers above.
===
Q:
Can you push a new db version out to your mobile users?
Can sync scripts be triggered so mobile user devices get updated when they become available?
A:
MirrorSync does not include any feature to automatically send a new version to your customers. However, it does have a feature to send them a link to download a new version. By e-mailing them this link, they can just click on it to get the most recent version of the file from your FileMaker Server.
===
Q:
Need to see if I can set it up so that some tables are bidirectional while others may only sync in one direction. In the demo it appeared that this was a file level option rather than a table level option.
Is it possible during the syncing that the data that is pulling is not the same that is pushing? For example: from the ipad I can sync the custumers and the notes, but i can only push the notes to the host.
A:
Yes. Although it was not showed during the demonstration, there is a checkbox in the same screen where the sync direction is configured that says ‘Same for all tables’. If this box is un-checked, then the sync direction can be set separately for each table, so that some tables will pull only, others will push only, and others will go in both directions.
===
Q:
If the FM server is behind a firewall, is that a problem?
A:
No, MirrorSync is very firewall-friendly. Since it operates over standard web port 80, and does not connect as a guest of FileMaker Server, you just need to make sure that HTTP web traffic is sent over the firewall to the computer where MirrorSync is running. Virtually every firewall supports HTTP forwarding.
===
Q:
Can you map one table to many tables, e.g., if you have addresses/numbers in child tables?
A:
You can certainly map one-to-many relationship in MirrorSync, so if you have contacts that have related addresses / phone numbers, and the contacts, addresses, and phone numbers are each in their own table, this can be done easily.
If your question is whether or not a single flat table on the hub which contains contact, phone number and address information could be mapped to three separate tables on the spoke, then the answer is no. That would be really complicated, although I wouldn’t say it’s impossible. We’ll keep it in mind for some future version of MirrorSync.
===
Q:
Anything specific change with a Linux install?
A:
MirrorSync is a standard Tomcat web application, so you install it on Linux like you would install any other webapp. There are a few customizations that do need to be made for Linux though, and they are documented here:
===
Q:
Does the FM database have to be hosted on FM Server or will this work on FM Pro?
A:
The database does have to be hosted on FM Server for MirrorSync to be able to sync with it. We do not support syncing between FileMaker Pro and FileMaker Go without server.
===
Q:
Are there common pitfalls that will cause MirrorSync to fail to be able to sync dbs? E.g. running fine for a while and then admin changed something that breaks it?
A:
Here are some reasons that the sync could stop working after succeeding on the initial sync (not including temporary problems like network drops, quitting out of FileMaker while sync is running, etc.):
* Password change on the server
* Deleting/renaming layouts or fields used by the sync (adding is fine)
* Running out of memory due to very large sync batches (ie. over 200K batches). Easily fixed by adjusting MirrorSync memory allocation.
* We’ve had reports of failures to sync after replacing the file on the server with a new empty clone and importing the records back into it. We’re checking into this.
===
Q:
I use SyncDeK currently and wanted to get a comparison. I do have a concern about large data sets and deletions which is currently a non-issue with SyncDeK, wonder how that would go with MirrorSync. Overall looks like a good product.
A:
MirrorSync is designed to handle large data sets as well. Our largest sync operation to date is a 3 million record bidirectional sync between Oracle and MySQL. Sometimes it is necessary to increase the memory allocation for MirrorSync when syncing very large data sets; this is explained here: http://docs.360works.com/index.php/MirrorSync_advanced_topics#OutOfMemoryError
===
Q:
I’d like to see official Postgres support, since its fully open source (and not subject to the whims of Oracle), although I don’t have a real purpose for syncing with a Postgres db right now.
A:
Contact us if you have an active need for Postgres. We will be happy to work with you to make sure that this works correctly.
===
Q:
MirrorSync advantages over GoZync?
A:
If you’d like our comparison points, please contact me directly and I will send that to you.
===
About the Sponsor and Presenter:
Jesse Barnum is President of 360Works in Atlanta, Georgia. Jesse is the author of MirrorSync, and won FileMaker Excellence awards for both Outstanding Contribution to the FileMaker Community, as well Solution of the Year (2013) for MirrorSync.
Regions
- Atlanta FileMaker Developers
- Birmingham FileMaker Developers
- Connecticut • Massachusetts FileMaker Developers
- Indiana FileMaker Developers
- Philadelphia • New York FileMaker Developers
- Portland FileMaker Developers
- St. Louis • Missouri • FileMaker Developers
- Washington, DC • Baltimore FileMaker Developers