Troubleshooting an Error Pushing/Persisting Properties and Property Lists
Use Case: Many devices running a C SDK application are connected to a ThingWorx Platform, all using the same application key to authenticate with the platform.
Issue: Some devices can connect to the ThingWorx Platform and write data while other devices do not connect to the platform and return errors similar to the following::
...[ERROR] ... twSubscribedPropsMgr_PushProperties: error pushing or persisting property list, code: 1114
...[WARN ] ... api:sendMessageBlocking: Message 7940 timed out
...[ERROR] ... twSubscribedPropsMgr_PushPropertyInfoList: Error pushing properties for *<device_name>. Error: 1114.
...[ERROR] ... twSubscribedPropsMgr_PushProperties: error pushing or persisting property list, code: 1114
...[WARN ] ... api:sendMessageBlocking: Message 7943 timed out
...[ERROR] ... twSubscribedPropsMgr_PushPropertyInfoList: Error pushing properties for *<device_name>. Error: 1114.
...[ERROR] ... twSubscribedPropsMgr_PushProperties: error pushing or persisting property list, code: 1114
Possible Causes
The devices ARE connecting because the error messages above occur after a successful connection. What they do not appear to be able to do is push property values. Possible reasons why:
• Each device may have many property updates stored in their offline message store and they may be overloading your server when they all come back online.
• If a lot of data is being collected on these devices, the devices may be causing congestion on the server when they all are sending property updates at once.
Possible Solutions
Here are possible solutions to the errors:
1. Increase the value of DEFAULT_MESSAGE_TIMEOUT in twDefaultSettings.h to values higher than the default value, which is 10 seconds. This increase will give your property pushes more time to execute. This might just set the bar higher for when your devices overload the server.
2. Consider reducing your data collection rates or using the FOLDED aspect on some of your properties to reduce the amount of data you are moving.
3. Evaluate your network performance.
5. One last thing to try is wait. This problem may resolve itself as your property values will eventually be resent when the server is less busy, unless your data collection rate is so high that the problem never resolves itself..