J'ai le problème suivant: J'ai plusieurs sites avec un courtier ActiveMQ local qui transmet à un courtier distant (dans un centre de données). Cette connexion est souvent instable, et descend plusieurs fois par mois pendant quelques minutes ou quelques heures à la fois.Transfert d'ActiveMQ d'un courtier local à un courtier distant [avec une connexion instable]
Les messages doivent donc attendre sur le courtier local si le courtier distant n'est pas accessible pour le moment.
J'ai la configuration ActiveMQ suivante:
<networkConnectors>
<networkConnector uri="static://(tcp://my-remote-broker:61616)"
name="myremotebroker" dynamicOnly="false"
conduitSubscriptions="true"
decreaseNetworkConsumerPriority="false">
<!-- Exclude all destinations by default -->
<excludedDestinations>
<queue physicalName=">" />
<topic physicalName=">" />
</excludedDestinations>
<!-- Only forward these to our connection -->
<staticallyIncludedDestinations>
<topic physicalName="MySpecialTopic"/>
</staticallyIncludedDestinations>
</networkConnector>
</networkConnectors>
Ce transmet les messages du courtier local (sur le sujet MySpecialTopic), au courtier à distance. Cela fonctionne lorsque la connexion est stable.
Cependant, j'ai essayé temporairement de désactiver la connexion Internet, de sorte que le courtier local a perdu la connexion avec le courtier distant. À ce moment, j'ai envoyé un nouveau message, qui a été mis en file d'attente sur le courtier local, mais n'est jamais arrivé sur le courtier distant, même après que le courtier local se soit reconnecté!
Y at-il quelque chose dans la configuration ActiveMQ qui me manque?
Merci!
Quel serveur J2EE et MQ courez-vous? Courez-vous WebSphere? Parce que si c'est le cas, ils ont une fonctionnalité vraiment impressionnante appelée bus étrangers qui résout réellement ce problème. –
Bonjour Chris, Je teste ceci avec ActiveMQ seul, puisque son panneau de contrôle a un moyen d'envoyer des messages manuellement à des fins de test. Ne pas exécuter Websphere. Il a essentiellement besoin de fonctionner sur ActiveMQ tout seul, donc il ne dépend pas d'un serveur d'applications. –