2

I have read in multiple places where the EdgeHub will store messages not sent to IoT Hub due to network issues. What I haven't found is, does the EdgeHub persist these unsent messages in case of a power cycle.

The configuration in question is storeAndForwardConfiguration.timeToLiveSecs

Here are some links where network outages are mentioned but not persistent storage: https://learn.microsoft.com/en-us/azure/iot-edge/module-edgeagent-edgehub https://azure.microsoft.com/en-us/blog/what-s-new-with-azure-iot-edge/

In summary, does the EdgeHub store and forward persist unsent messages, or do I need to create a custom module (SQL server, SQLite, etc.) to persist unsent messages?

krb224
  • 345
  • 1
  • 11
  • [Volumes in Docker](https://docs.docker.com/storage/volumes/) can persist data. So you can open an issue at [Edge repo](https://github.com/azure/iot-edge) for how to persist unsent messages using volumes. – Rita Han Jun 19 '18 at 07:43

1 Answers1

3

Based on physical testing, the edgeHub module does persist data over power cycles if that data has not been sent to the cloud.

Test method is as follows:

  1. Start IoT Edge device with tempSensor module to send data to cloud.
  2. Remove network connection.
  3. Run for 24 hours without network connection.
  4. Power cycle device.
  5. Reconnect network.

All data was reported to the cloud.

krb224
  • 345
  • 1
  • 11