I just realized I asked this exact question about 5 years ago, but was hoping Alpha has provided some additional information about how the synchronization log feature works.
I have a disconnected mobile app that started to leave duplicate records on the server when it synched. I turned on the synch log feature and most of them stopped, but there are still a few duplicates being created every once in a while. I'd therefore like to know exactly how this log works so I can track down the cause of the problem (it might be something my app is doing). The best I can find is exactly the same information that appeared when I asked the question the last time. Alpha uses the log to prevent duplicates and it somehow involves the client app firing an additional callback after it gets a response from the server. I tried to figure out how this works but I can't seem to do it: For example, suppose the client app sends a new record to the server, to be added to the database. The record of course has no primary key (we use AI Numeric PKs). The server adds it and then adds a record to the log, including the new AI primary key. The server also sends a message back to the client, but if the client has in the meantime lost its connection it never receives that message. So no additional callback is fired and the server knows this. But now suppose the client adds another record and sends another package to the server. In particular, the server receives two records with blank primary keys, one the original that the server has already added and the other a completely new one. How does the server use the log to figure out WHICH record was the one it previously added to the database?
The above is of course a long way of asking if anyone has any idea how this synch log table actually works (i.e. if any new information has been released). I can't find anything new via Google search or search of these Boards.
As an aside, I HAVE checked the "Clear log table...." option in Project Properties but find (as best I can determine) that Alpha does not clear it, it just keeps getting larger. Of course that's of secondary concern.
Thanks in advance for any (new) ideas.
Norman
I have a disconnected mobile app that started to leave duplicate records on the server when it synched. I turned on the synch log feature and most of them stopped, but there are still a few duplicates being created every once in a while. I'd therefore like to know exactly how this log works so I can track down the cause of the problem (it might be something my app is doing). The best I can find is exactly the same information that appeared when I asked the question the last time. Alpha uses the log to prevent duplicates and it somehow involves the client app firing an additional callback after it gets a response from the server. I tried to figure out how this works but I can't seem to do it: For example, suppose the client app sends a new record to the server, to be added to the database. The record of course has no primary key (we use AI Numeric PKs). The server adds it and then adds a record to the log, including the new AI primary key. The server also sends a message back to the client, but if the client has in the meantime lost its connection it never receives that message. So no additional callback is fired and the server knows this. But now suppose the client adds another record and sends another package to the server. In particular, the server receives two records with blank primary keys, one the original that the server has already added and the other a completely new one. How does the server use the log to figure out WHICH record was the one it previously added to the database?
The above is of course a long way of asking if anyone has any idea how this synch log table actually works (i.e. if any new information has been released). I can't find anything new via Google search or search of these Boards.
As an aside, I HAVE checked the "Clear log table...." option in Project Properties but find (as best I can determine) that Alpha does not clear it, it just keeps getting larger. Of course that's of secondary concern.
Thanks in advance for any (new) ideas.
Norman
Comment