Skip to main content
Question

Big data synchronization issue to FSM Mobile

  • December 11, 2024
  • 4 replies
  • 68 views

Forum|alt.badge.img+5

I'm facing some issues with the synchronization of FSM Mobile.

Mobile Replication from Scheduled process is activated.

I just reduced the time to make it easier to check. After solving this issue we will update it to 1 hour.

Let's analyse first the Sync rule Attribute:

The XML Poster result just to check if there is any problem with the XML:
 


Converting XML to SQL:
 

Total amount of rows from Attribute sync rule

The Mobile should receive 217.691 attributes.

After synching the Mobile database returns:

Mobile database result from Table Attribute

From server database: 217.691

From the mobile database: 200.000

Difference: 217.691-200.000 = 17.691 

 

Sync Rules concept investigation:

From the beginning, I thought by selecting Batch-Delta the system would divide the total amount of rows int packages of max_rows from XML initial query. But If I do it and limite the max_row = 50000 as the advice: 

Doing this the maximum of received amount of data became 50.000. The system was only updating the data from the INITIAL query not inserting the remaining amount. 

So for testing, I decided to remove the max_row parameter from the Sync rule.

The device received more data (200.000) but not all (217.691).

What could I do to send all data and not miss part of the rows ?

Any suggestion? Logs ? 

4 replies

Forum|alt.badge.img+6
  • Hero (Partner)
  • December 12, 2024

@RTTATOVAR,

 

did you try to change the initial query to something larger than 200k, like  ‘max_rows = 500000’ ?

 

Also, I suggest you rethink the design as syncing this amount of data will make the initialization process of mobile devices longer and will increase the database size.

 

Maybe using a relationship (like request/task/place) you can limit the data you sync to device significantly. That way device will only have the required data rather than a whole table.


Forum|alt.badge.img+5
  • Author
  • Do Gooder (Customer)
  • December 13, 2024

Thank you ​@IniNimesK!

 

The solution max_rows = 500000 worked perfectly to resolve the issue!

 

Could you kindly elaborate on your suggestion regarding limiting synced data using relationships (e.g., request/task/place)? I’d like to understand how this approach would ensure the device only retrieves the necessary data instead of the entire table. Any example or further explanation would be greatly appreciated!


Forum|alt.badge.img+6
  • Hero (Partner)
  • December 13, 2024

Thank you ​@IniNimesK!

 

The solution max_rows = 500000 worked perfectly to resolve the issue!

 

Could you kindly elaborate on your suggestion regarding limiting synced data using relationships (e.g., request/task/place)? I’d like to understand how this approach would ensure the device only retrieves the necessary data instead of the entire table. Any example or further explanation would be greatly appreciated!

@RTTATOVAR it depends on what you are trying to achieve with the data, for instance if you need some data for a specific task, then you can use the Task sync rule’s related query to sync the data.

 

Baseline example you can look at would be (if i remember correctly) is non_part_usage table. Using the related query in Task, it just syncs only the relevant data.


Forum|alt.badge.img+5
  • Author
  • Do Gooder (Customer)
  • December 16, 2024

Thank you ​@IniNimesK !

I will check it.