2010-06-25 22 views
1

Je travaille sur une application où nous voulons surveiller la connexion/déconnexion des clients. Comme ActiveMQ contient des rubriques consultatives qui vous préviennent des nouvelles connexions et de la suppression des connexions, l'idée était d'utiliser ces messages de conseil (ActiveMQ.Advisory.Connection). Cela a bien fonctionné pendant le développement mais maintenant, quand nous allons à la production dans notre réseau de courtiers, nous avons remarqué que les messages des courtiers distants dans le réseau ne parviennent pas à nos consommateurs.Rubriques de conseil ActiveMQ pour les connexions non transmises dans le réseau de courtiers?

Notre configuration est:

Producteur | Broker A et B (maître ou esclave) dans le site 1 -> Celles-ci ont un connecteur de réseau de duplex à nos courtiers publique (C & D)

Broker C et D (maître-esclave à nouveau) dans le site 2

et attachés à C et D, nous avons les «consommateurs» dont nous voulons connaître les informations de connexion/déconnexion. Lorsque nous jetons un coup d'œil à la rubrique d'avis dans la console d'administration du courtier A, nous voyons l'abonné et nous recevons des messages de connexion si nous laissons un client se connecter. Sur le courtier C, je ne vois aucun abonné sur le sujet de conseil, et quand un consommateur se connecte/se déconnecte, nous ne voyons pas le message d'avertissement.

Ce comportement est-il activé par défaut ou ai-je une config?

+0

La consultation est-elle désactivée dans la configuration XML du courtier C? crowne

+0

Non. J'obtiens aussi d'autres avis. Et je reçois les avis de connexion/déconnexion sur la machine locale mais je ne les vois pas transmis par le réseau de courtiers – Noctris

Répondre

1

Il existe différents endroits que vous devez rechercher:

  • Vérifiez que la configuration de votre courtier ne les désactive pas: dans la configuration de votre courtier (A, B, C, D), vérifiez que l'avis ne sont pas désactivons (nous ne devrions pas obtenir de <broker advisorySupport="false">. Normalement, cela semble vérifier déjà
  • Vérifiez que votre code ne désactive pas broker.setAdvisorySupport(false);. cela devrait semble pas être la cause de racine car il fonctionne dans un environnement de développement
  • sont vos destinations dynamiques? Vérifiez la page suivante de Network of brokers, en particulier la section "Réseaux dynamiques"