I have an issue with the c-sdk-126.96.36.1994-release when connecting to a Thingworx hosted server 7.2.3-b48
If my device has an active internet connection the sdk posts to the server without a problem. When I test the scenario where the connection drops off (our device is mobile). The system start to post to the offline message store for about 25 messages error code 308 (which is expected), and then there is a 15 second delay and I get the error 1113 (service not available) , the message is not added to the offline message store. I can see the offline message store file growing in size ( I think the largest I ever saw it was 7K - far below my limit) before the error code 1113 is returned, but not after. When I reconnect the internet only the readings that received the 308 error code in the offline_msg_store are sent to the server.
Here are some pertinent settings
from my make file
export OFFLINE_MSG_STORE = 2
#define OFFLINE_MSG_QUEUE_SIZE 1048576
here is how I am sending the reading
res = twApi_PushProperties(TW_THING, thingName, proplist, -1, TRUE);
res = twApi_DeletePropertyList(proplist);
I am aware of the following error, but I have no idea if this is related ( FYI it is still present in this version of the SDK)
Any updates on this? This is a really big issue for us and it we need it resolved. If additional information is needed to help trouble shoot the problem please let us know.
This is known issue with C SDK , with JIRA ticket already filed (EDGE 630 ) and is expected to get fixed in upcoming release 1.3.3.
I agree with Ravi. This is a known bug and work on this JIRA ticket (EDGE-630) is currently in progress. Meanwhile, as a workaround for the issue would be to implement a data structure that will continuously store and roll over the last 5 property update lists that were sent or supposed to be sent to the ThingWorx server, and upon the offline message store being cleared out upon reconnect this list of property updates can be pushed to the server to ensure that no messages were lost during the loss of communication.
It seems issue is still not fixed in 1.3.3. ....Please confirm if this is really addressed.? Did a primary test with the sample application and found data loss is still there....
How are you confirming that there is data loss? Are you logging a counter property to a ValueStream or just looking at the logs?
I logged in the console logs as well as ValueStream for my sample application (out of the box sample Steam Sensor with Openssl for this analysis).
I am logging a counter property . I see a definite loss for 3 payloads after network connection is lost .
I witnessed on my application that the tw_PushProperties function doesn't return for 10 seconds if the internet connection while executing this function. The return code is GATEWAY_TIMEOUT and I assume, though haven't confirmed, that the data is also lost. We decided to create our own offline message storage, to backup TW offline message storage, and store every reading that we don't get a success or sent to offline message store return code.