Hi all,
I've been looking for a way to ensure that notifications sent by a client are continued to be received by the LWM2M server after the server restarts/crashes and reboots.
I first unsuccessfully tried to persist connections, but that seemed unnecessarily complex.
Luckily this works! When a client registers, the DTLSSession is persisted on sessionEstablished event. Then the server observes a resource and notifications are received. The server then stops and restarts. On restart the sessions are read and for each session a connection object is created and the inMemoryConnectionStore is populated.
The notifications thus continue to be received.
All good, but I'm trying to understand why exactly this works and when would it not work. Since the session was saved when the client registered, there can be a significant time between saving a session and restoring it.
My first guess is that since we're talking about UDP here, the server simply assumes that some packets were lost and just continues as though nothing happened. But this explanation seems to simple.
Also, it appears that losing parts of the connection object (basically everything other than the session object) has no bearing whatsoever to the normal functioning of the server.
Regards,