Message forwarded multiple times.
-
Hi all:
Uplink messages are delivered in json to my application like:
{ "reports": [ { "serialNumber": "IMEI:357518080495880", "timestamp": 1611055046615, "subscriptionId": "*******", "resourcePath": "uplinkMsg/0/data", "value": "02010ff39 .. shortened .." } ] }
Sometimes I get this message multiple times. At first I thought it was my device sending the same data twice. But the timestamp comes from T-Mobile (I think), and stays the same. They are 100% duplicated.
Why does this happen. How can I prevent this?
A properly formatted message (and they are) is answered with RC=200 by my application.Thanks.
-
@Gijs-Mos
I checked the UDP logs for your device and I agree. Your device doesn’t send the messages twice.If your application end-point doesn’t return to our platform within 1 second we go into a re-try loop to re-deliver the message. We re-try max. 5 times. Every minute ones. If within the period of re-trieng additional messages from other devices arrive they are put into the same post request and delivered as an additional element of the “reports” array. But in this case you would see different serialNumbers and timestamps.
Is it possible that your callback returns sometimes slower than 1 second. In this case our platform would re-deliver the message a second time.
I saw cases where the application end-point didn’t publish the message into a queue for asynchronous processing. It processed the message directly and stored it away into a DB. Sometimes the DB blocked. By the this the response time was bad and the messages have been delivered a second time.
Regards, Roland
-
@Roalnd-Baldin
Thanks. Also your analysis may be spot-on. The current applications indeed waits for the database. In general this goes well within 1 sec. But while typing this I just realize that it tends to happen mostly when a number of devices report at the same about time. And the thing is single threaded. So queueing it will be.