cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

tw-c-sdk fails to use offline message storage

Highlighted
Level 1

tw-c-sdk fails to use offline message storage

I have an issue with the c-sdk-1.3.2.294-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

from twDefaultSettings.h

#define OFFLINE_MSG_QUEUE_SIZE 1048576

here is how I am sending the reading

res = twApi_PushProperties(TW_THING, thingName, proplist, -1, TRUE);

followed by

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)

CS241898 - The Offline Message Store in the C SDK loses the first property update upon disconnect wi...

Tags (2)
9 REPLIES 9

Re: tw-c-sdk fails to use offline message storage

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.

Re: tw-c-sdk fails to use offline message storage

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.

Re: tw-c-sdk fails to use offline message storage

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.

Re: tw-c-sdk fails to use offline message storage

Is there a target date for release of SDK 1.3.3?

Re: tw-c-sdk fails to use offline message storage

it sounds like it is currently scheduled for December 15th release.

Re: tw-c-sdk fails to use offline message storage

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....

Re: tw-c-sdk fails to use offline message storage

How are you confirming that there is data loss? Are you logging a counter property to a ValueStream or just looking at the logs?

Re: tw-c-sdk fails to use offline message storage

Meghan,

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 .

Re: tw-c-sdk fails to use offline message storage

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.