sfpx Posted April 20, 2016 Posted April 20, 2016 I have a table that gets written a few hundreds records on an initial sync and for some reasons the screen goes completely white on the device while it's writing on this table. Any way to avoid this ?
Jesse Barnum Posted April 20, 2016 Posted April 20, 2016 I've never seen this happen, so it's hard for me to come up with any suggestions for a solution.
sfpx Posted April 25, 2016 Author Posted April 25, 2016 It happens with 2 particular tables out of 20. Those 2 tables have only a few fields to sync (less than 10) but they have many occurrences and some of them have access to other occurrences of themselves.I know from experience that it slows down the writing process. So maybe it's related to that. The sync works fine but the white screen makes it look like the app is frozen. Maybe I could add a refresh somewhere in the Mirrorsync code ?
sfpx Posted May 2, 2016 Author Posted May 2, 2016 Note that I modified the mirrorsync layout so everything is basically hidden (hide condition = "1" for all objects) and only a label is actually displayed. Maybe it's related to that. I will retry tomorrow with the default mirrorsync layout and report the result here.
sfpx Posted May 4, 2016 Author Posted May 4, 2016 I think that happens with small tables that are long to write (because of the database structure more than the actual size of data) For example, my large table seems to be written in batches of 25 records while the tables that give me the white screen seem to be written in batches of 250 records. Not too sure about this...this was deduced by looking at the config utility while syncing.
Jesse Barnum Posted May 4, 2016 Posted May 4, 2016 That has to do with container fields. We write in batches of 25 for any table that has one or more container fields; 250 for tables that don't.
sfpx Posted May 4, 2016 Author Posted May 4, 2016 That's funny because I was just thinking about that. I may add an empty container to sync for those tables and see if that fixes my problem. Thanks for the quick reply Jesse
sfpx Posted May 5, 2016 Author Posted May 5, 2016 (edited) I can replicate the white screen behavior by running this script (any table will do) Script: New Window Refresh Window Freeze Window Go to Layout Test loop Set Variable $1=$i+1 New Record Exit loop if $i=2000 End loop Close Window I tested this script on an new database with only this table On Filemaker Pro on Mac you are getting a black screen for a second or so. On Filemaker Go you get a white screen for the duration of the loop. If you add a Pause Script 0.1 second Just before "Freeze Window" it fixes the problem. I also noticed that the white screen on my syncs always happen after the first batch has been written. If you have any idea on what I could try. I tried to add a pause script in the Mirror Sync Layout onLayoutEnter but it didn't eliminate the white screen. I presume it has to be added inside the mirrorsync script. Edited May 5, 2016 by sfpx
sfpx Posted May 5, 2016 Author Posted May 5, 2016 (edited) I was able to eliminate the white screen by modifying the mirrorsync script In the #Update/insert records in client from server section of the script Solution removed as it was not the correct one. Edited May 6, 2016 by sfpx
sfpx Posted May 6, 2016 Author Posted May 6, 2016 (edited) Turns out the solution is even simpler In the Mirrorsync script #Update/insert records in client from server Set Variable [ $parseError; .....] Set Field [ MirrorSync::status; ..... ] If [ not $$isServer ] Pause/Resume Script [ Duration (seconds): 0 ] End If If I change the duration of this pause from 0 to 0.1 it seems to fix my white screen issue. This remains to be tested more deeply but so far so good. Edited May 6, 2016 by sfpx
Jesse Barnum Posted May 6, 2016 Posted May 6, 2016 We were having very frequent crashes with FileMaker Go clients. The solution turned out to be disabling one of the pause script steps in MirrorSync. Amazingly, that solved the problem. Ever since then, I've been very hesitant to add or remove any pause script steps, for fear that the problem could come back: https://community.filemaker.com/thread/134315?start=15&tstart=0 It looks like the part you're recommending the change in is different than the other spot where changing it caused / fixed the crash. I will go ahead and make this change in the next MirrorSync release. Thanks for your help!
sfpx Posted May 6, 2016 Author Posted May 6, 2016 1 minute ago, Jesse Barnum said: We were having very frequent crashes with FileMaker Go clients. The solution turned out to be disabling one of the pause script steps in MirrorSync. Amazingly, that solved the problem. Ever since then, I've been very hesitant to add or remove any pause script steps, for fear that the problem could come back: https://community.filemaker.com/thread/134315?start=15&tstart=0 But was it this particular pause that caused the crashes ? Also if a pause is unsafe I may try other things (freeze window?...go to layout "MirrorSync") but I would prefer that simple pause duration fix. I don't mind having to add it manually. It only takes a few seconds. Also how frequent were the crashes. Were there easily reproducible ? If so, how ?
Recommended Posts
This topic is 3121 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now