How to ensure/know if all the changes made by a client are updated to the server
I have recently moved a FileMaker Pro 11 database that allowed a single user on a single machine, to a File Maker Server 12 database. Part of the testing I have done so far involves multiple users accessing the database from different locations. The first thing that I notice was that the updates made by one user take noticeably longer to show up on the other user's machine, compared to when two users are in the one location. So far, not a problem. But just recently I had a situation where an update from one user did not come through for a very long time. This is a big problem for the viability of the system.
To explain further, user one was creating and updating a number of records in office one, while user two was creating and updating another lot of records in office two. User two made some changes that were shortly seen by user one. Some following changes that were made by user two however, were not seen. I confirmed that these last changes made by user two were committed, by having user two running a script which picked up the changes (thus proving their were committed).
I believe the problem was that the FileMaker client in office two did not send the transaction to the server (successfully), because opening and third and fourth user to look for the change on different machines did not get the change either (rather than it being a problem with user one). I also tried closing down the client in office one (where the change had not come through to) and re-opening it, but to no avail. It was not until I asked user two (some 12 hours later) to open their database again that the change came through to the other users (user one and others).
Is there a way to ensure, or find out if there are any changes committed by a client that have not been received by the server? I do not mind if it can only work for the current user (ie, it only covers their changes).
If seems that the committal of a record will schedule that record to be updated to the server, but there is no guaranteed when it will happen.
My Specific Problem
In case anyone is interested, the reason why I want to ensure the data is the most up-to-date is that I want to be able to export data and know that I have the all the changes that have been made are present. With the current situation (like my example above), I was in a situation where I had half of the edits made by one user, with no way of knowing other thank confirming the changes verbally.
I have found this thread useful to understand the problem:
And this video excellent to understand record committing: