J'ai une application client riche Java qui enregistre un abonnement durable sur un sujet HornetQ JMS distant au démarrage. Toutefois, si le serveur redémarre, la connexion est perdue et ne peut être restaurée qu'en redémarrant l'application cliente. Cela conduit à des situations confuses dans lesquelles les messages JMS ne sont pas reçus et après le redémarrage d'un client, un grand nombre de messages sont reçus en même temps.Comment savoir quand la connexion à un sujet JMS est perdue?
Une solution simple pour restaurer la connexion serait d'exécuter une minuterie pour vérifier périodiquement si la connexion est toujours valide et essayer de se reconnecter autrement. Le serveur peut également envoyer un signal de présence au client et tenter de se reconnecter si aucun signal de présence n'est reçu après un certain délai (comme indiqué dans ce code answer).
Mais les deux semblent des approches maladroites à ce problème et donc je voudrais savoir s'il y a une meilleure solution pour découvrir que la connexion n'est plus disponible?