Comment savoir si JMS Connection est là?
Dans JMS il est facile de savoir si une connexion est perdue, une exception se produit. Mais comment puis-je savoir si la connexion est de nouveau là?
Scénario: j'utilise JMS pour communiquer avec mon serveur. Maintenant, mes sauts de connexion (serveur est down), ce qui provoque une exception. So far So good. Si le serveur est à nouveau en hausse et la connexion est rétablie, comment je le sais?
Je ne vois pas les Auditeurs qui permettrait de faciliter de telles informations.
source d'informationauteur Mauli
Vous devez vous connecter pour publier un commentaire.
Ahhh...le vieux la gestion des exceptions/reconnexion de l'énigme.
Il y a quelques prestataires de transport qui se reconnectera automatiquement à votre demande pour vous et d'autres qui en font l'application de lecteur de reconnexion. En général, les reconnections masquer l'exception de l'application. L'inconvénient est que vous ne voulez pas de l'application pour s'accrocher éternellement si tous la messagerie distant nœuds sont vers le bas de sorte que, finalement, vous doit inclure certains la logique de reconnexion.
Maintenant, voici la partie intéressante - comment avez-vous gérer les exceptions dans un fournisseur de neutralité? Le JMS exception est pratiquement sans valeur. Par exemple, une "exception de sécurité" peut être que le Java politiques de sécurité sont trop restrictives, que les autorisations de système de fichiers sont trop restrictives, que les informations d'identification LDAP échoué, que la connexion avec le transport a échoué, que l'ouverture de la file d'attente ou le sujet a échoué ou des douzaines d'autres problèmes liés à la sécurité. Il est lié exception qui a les détails de l'opérateur de transport qui a vraiment aider à résoudre le problème. Mes clients sont généralement prises à l'une des trois approches différentes ici...
Dans votre cas, la file d'attente de sujet et les objets sont probablement seulement valable dans le contexte de la connexion d'origine. En supposant un fournisseur qui se reconnecte automatiquement le fait que vous avez obtenu une exception moyens de se reconnecter a échoué et le contexte de la file d'attente et le sujet des objets n'a pas pu être restauré. Fermez tous les objets et rebranchez-le.
Si vous voulez faire quelque chose de plus spécifique au fournisseur tels que la distinction entre les transitoires et permanents des erreurs est un de ceux "ça dépend" des choses et vous aurez à trouver au cas par cas.
Le meilleur moyen de surveiller exception de connexion est l'établissement d'une exception à l'écoute, par exemple:
JMS spec ne décrit pas tous les protocoles de transport, il ne dit rien sur les connexions (à savoir, si le courtier de les garder en vie ou d'établir une nouvelle connexion pour chaque session). Donc, je pense que ce que tu veux dire par
est que vous tentez d'envoyer un message et que vous obtenez un JmsException.
Je pense, le seul moyen de voir si le courtier est en haut est d'essayer d'envoyer un message.
Votre seule option dans le cas d'une Connexion à base de JMSException est de tenter de rétablir la connexion dans votre gestionnaire d'exception, et recommencez l'opération.