Long initialization /synchronization time in MWO App
Hello All, We are currently using IFS MWO Service 10 (UPD9) and we are experiencing increased Initialization time and slowness in MWO App.
When we referred to the Lobby Page for Mobile App Status we noticed ‘Queued Out Messages’ has reached almost 700,000 and would you kindly share your thoughts and advice if there is any connection related to the above Message Queue and any recommendation on reducing the increased initialization time? Many thanks.
Page 1 / 1
The high number of Out Messages will more than likely be due to Inactive Users/Devices that are no longer in use. You should review these and delete any User/Devices that are no longer in use. In later UPD versions the system manages this for you.
You should also look at the sync time per entity and volumes of data per entity. You can add Permission Set Filters that will improve the performance of these entities.
You should also look to upgrade to a later UPD version. On IFS Applications 10 the latest UPD version is 21. Being on UPD9 means you are missing out on performance and system improvements which will help your sync times considerably.
Cheers
James
Hi,
Yes growing out queue will impact the data synchronization. It’s not the only reason but there are many. But in your case it’s good to address that first. 700k out queue messages can indicate that you have lot of installed app devices which are still active but no longer downloads data because of device might be physically offline. Which means back end data sync process keep filling out queue continuously . So you need to clean-up them.
In the latest version we have a new functionality call ‘Inactive App Device’ which has been implemented to prevented this by automatically clear such out messages and other related data if a device has offline for a longer period. But for UPD9 you might need to do this manually. One way is check the last active time of the device from the Install device App and identify the user/Devices which are offline for a longer period and clean their data manually.
Hi @James Ashmore Thanks for your kind thoughts and guidance. Sure, we shall investigate about the Inactive Users/Devices who are no longer in use. And thanks for the recommendations on entities and consider application of Permission Set filters.
One more clarification, would you kindly advise if IFS support team will be able to provide performance and system improvements as a patch to apply in UPD 9 version until we move for an upgrade or updated version? Many thanks.
Hi @ISD,
You can try below to improve the performance:
Data Volume:
Identify how many records are synchronized to a user/device per entity. Use Synchronized Entities screen or DB query to identify.
Apply Entity filters to the data to decrease the number of records that is synchronized down to each user and device.
Sync Time
Use Synchronized Volume screen or DB query to identify.
Apply Entity filters to the data to decrease the number of records that is synchronized down to each user and device. This will decrease synchronization time.
Check the performance of the “where” statement if custom field exists
Bad “Where” statement on an entity needs to be reported to IFS for investigation where it’s necessary.
Security - Security Groups
If the customer do not use certain functionality, you should turn off that functionality.
It is important to remove functionality that is not used as this will assist the overall system performance, App initialization, push and batch synchronization timings.
Background Processing
Check Batch Queue Configurations and number of processes assigned to process the messages. Depending on the number of users as well as the volume of Push and Batch related data there might be a need to increase the number of processes to be able to parallel run the push and batch sync processes.
It’s a good idea to use a separate batch queue for mobile processes.
Synchronization Rules - Go through each entity for the app and decide the frequency of the synchronization.
If it is not a lot of data in the Grouped Push entities, then it is better to change the delivery method from Grouped Push to Batch for those entities. (It can always be reversed back to Grouped push). - Depends on the customer business needs
Out Messages
Having large numbers of Out Messages shows that the Users or Devices are not active. Because once the data is downloaded to the mobile, out message will be removed from IFS.
Consider using the app parameter DEVICE_INACTIVE_DAYS to park the app/ device, where the sync process changes the device state to INACTIVE. INACTIVE device apps will be excluded from the sync process, and the clean-up jobs will clean older messages collected for such devices.
Unused apps
Make sure not used apps are disabled and removed from the system. Because those apps will continue to capture batch changes for the existing registered users regardless if they are using the app or not.
Not active Users/Device
Make sure that non-active Users/Devices are removed from the system. Because it will clean up the Out Messages table.
Device/ App Initializations
It is advisable to instruct the end-users to not do unnecessary initializations, if it is not prompted by the client to do an initialization.
Clean-up jobs
Check that the clean-up jobs are active and that they are running.
Note: These are some of the ways I have been using to improve overall performance on mobile apps. You can try several based-on customer business scenario.
Hope this helps.
Hi,
Yes growing out queue will impact the data synchronization. It’s not the only reason but there are many. But in your case it’s good to address that first. 700k out queue messages can indicate that you have lot of installed app devices which are still active but no longer downloads data because of device might be physically offline. Which means back end data sync process keep filling out queue continuously . So you need to clean-up them.
In the latest version we have a new functionality call ‘Inactive App Device’ which has been implemented to prevented this by automatically clear such out messages and other related data if a device has offline for a longer period. But for UPD9 you might need to do this manually. One way is check the last active time of the device from the Install device App and identify the user/Devices which are offline for a longer period and clean their data manually.
Hello @kathlk Thanks for your kind inputs and suggestions. As you mentioned, sure we shall investigate for the Installed devices/Users but not actively using. Thank you for the guidance to perform manually clear out messages and to identify potential users and it will definitely help to perform the task conveniently. Many thanks.
Hi @ISD,
You can try below to improve the performance:
Data Volume:
Identify how many records are synchronized to a user/device per entity. Use Synchronized Entities screen or DB query to identify.
Apply Entity filters to the data to decrease the number of records that is synchronized down to each user and device.
Sync Time
Use Synchronized Volume screen or DB query to identify.
Apply Entity filters to the data to decrease the number of records that is synchronized down to each user and device. This will decrease synchronization time.
Check the performance of the “where” statement if custom field exists
Bad “Where” statement on an entity needs to be reported to IFS for investigation where it’s necessary.
Security - Security Groups
If the customer do not use certain functionality, you should turn off that functionality.
It is important to remove functionality that is not used as this will assist the overall system performance, App initialization, push and batch synchronization timings.
Background Processing
Check Batch Queue Configurations and number of processes assigned to process the messages. Depending on the number of users as well as the volume of Push and Batch related data there might be a need to increase the number of processes to be able to parallel run the push and batch sync processes.
It’s a good idea to use a separate batch queue for mobile processes.
Synchronization Rules - Go through each entity for the app and decide the frequency of the synchronization.
If it is not a lot of data in the Grouped Push entities, then it is better to change the delivery method from Grouped Push to Batch for those entities. (It can always be reversed back to Grouped push). - Depends on the customer business needs
Out Messages
Having large numbers of Out Messages shows that the Users or Devices are not active. Because once the data is downloaded to the mobile, out message will be removed from IFS.
Consider using the app parameter DEVICE_INACTIVE_DAYS to park the app/ device, where the sync process changes the device state to INACTIVE. INACTIVE device apps will be excluded from the sync process, and the clean-up jobs will clean older messages collected for such devices.
Unused apps
Make sure not used apps are disabled and removed from the system. Because those apps will continue to capture batch changes for the existing registered users regardless if they are using the app or not.
Not active Users/Device
Make sure that non-active Users/Devices are removed from the system. Because it will clean up the Out Messages table.
Device/ App Initializations
It is advisable to instruct the end-users to not do unnecessary initializations, if it is not prompted by the client to do an initialization.
Clean-up jobs
Check that the clean-up jobs are active and that they are running.
Note: These are some of the ways I have been using to improve overall performance on mobile apps. You can try several based-on customer business scenario.
Hope this helps.
Hello @NimeshE Thanks for your kind recommendations and shared experiences on improving MWO App. And im sure this would be very helpful and could use as a checklist. Thanks again.
Hi,
Yes growing out queue will impact the data synchronization. It’s not the only reason but there are many. But in your case it’s good to address that first. 700k out queue messages can indicate that you have lot of installed app devices which are still active but no longer downloads data because of device might be physically offline. Which means back end data sync process keep filling out queue continuously . So you need to clean-up them.
In the latest version we have a new functionality call ‘Inactive App Device’ which has been implemented to prevented this by automatically clear such out messages and other related data if a device has offline for a longer period. But for UPD9 you might need to do this manually. One way is check the last active time of the device from the Install device App and identify the user/Devices which are offline for a longer period and clean their data manually.
Hello @kathlk Would like to have another clarification from you on clearing out messages. We have identified several Users having a long duration with reference to the last active time from the installed device. Would you kindly advise, if manually clearing data means disabling the device as below and would that help to clear the out messages? Thanks.