GH-3697: Various lifecycle fixed for MQTT v5 CAs
Fixes https://github.com/spring-projects/spring-integration/issues/3697 SO: https://stackoverflow.com/questions/70374046/spring-integration-mqtt-failed-to-start-app-when-the-network-is-disconnected * Add `mqttClient.disconnect()` to `Mqttv5PahoMessageDrivenChannelAdapter.doStop()` - the `doStart()` does `connect()` * Add `Mqttv5PahoMessageDrivenChannelAdapter.destroy()` impl to close `mqttClient` * Fix `Mqttv5PahoMessageHandler.doStart()` to not re-throw an exception on connection. Emit an `MqttConnectionFailedEvent` and log error instead * Fix `Mqttv5PahoMessageHandler.destroy()` to call `mqttClient.close(true)` for better resources clean up * Improve MQTT v5 components Javadocs and add a reconnect note into `mqtt.adoc`
This commit is contained in:
committed by
Gary Russell
parent
30bb8467b4
commit
8c57cb7869
@@ -494,4 +494,7 @@ public IntegrationFlow mqttInFlow() {
|
||||
|
||||
IMPORTANT: The `org.springframework.integration.mqtt.support.MqttMessageConverter` cannot be used with the `Mqttv5PahoMessageDrivenChannelAdapter` since its contract is aimed only for the MQTT v3 protocol.
|
||||
|
||||
See more information in the `Mqttv5PahoMessageDrivenChannelAdapter` javadocs and its superclass.
|
||||
See more information in the `Mqttv5PahoMessageDrivenChannelAdapter` javadocs and its superclass.
|
||||
|
||||
IMPORTANT: It is recommended to have the `MqttConnectionOptions#setAutomaticReconnect(boolean)` set to true to let an internal `IMqttAsyncClient` instance to handle reconnects.
|
||||
Otherwise, only the manual restart of these channel adapters can handle reconnects, e.g. via `MqttConnectionFailedEvent` handling on disconnection.
|
||||
Reference in New Issue
Block a user