Sur mon JMS applications que nous utilisons files d'attente temporaires sur les Producteurs pour être en mesure de recevoir les réponses à partir des demandes des Consommateurs.
Je suis confronté exactement le même problème sur ma fin, comme mentionné dans ce fil: http://activemq.2283324.n4.nabble.com/jira-Created-AMQ-3336-Temporary-Destination-errors-on-H-A-failover-in-broker-network-with-Failover-tt-td3551034.html#a3612738
Chaque fois que j'ai redémarré l'arbitraire d'un courtier dans mon réseau, j'ai été faire beaucoup d'erreurs de ce genre dans mon application Consommateur de journal, tout en essayant d'envoyer la réponse à une file d'attente temporaire:
javax.jms.InvalidDestinationException:
Cannot publish to a deleted Destination: temp-queue://ID:...
Puis j'ai vu Gary réponse ce qui suggère d'utiliser
jms.watchTopicAdvisories=false
comme un param url sur le client brokerURL. J'ai rapidement changé mon client courtier Url avec ce paramètre supplémentaire. Mais maintenant, je vois des erreurs de ce genre quand j'ai redémarrer mon courtiers en réseau pour ce test de basculement:
javax.jms.JMSException:
The destination temp-queue:
//ID:client.host-65070-1308610734958-2:1:1 does not exist.
Je suis à l'aide de ActiveMQ version 5.5. Et mon client courtier URL ressemble à ceci:
failover:(tcp://amq-host1:61616,tcp://amq-host2.tred.aol.com:61616,tcp://amq-host3:61616,tcp://amq-host4:61616)?jms.useAsyncSend=true&timeout=5000&jms.watchTopicAdvisories=false
En outre, voici mon activemq config XML pour l'une des 4 courtiers: amq1.xml
Quelqu'un peut ici s'il vous plaît examiner ce problème et de me suggérer ce que l'erreur que j'ai fais dans cette configuration.
Mise à jour:
Pour clarifier davantage sur la façon dont je suis en train de faire de requête-réponse dans mon code:
- J'ai déjà utiliser par un producteur de destination (c'est à dire temporaire d'attente) et dans la réponse de l'en-tête de chaque message.
- Je suis en train d'envoyer un message par unique identificateur de corrélation dans JMSCorrelationID en-tête.
- Autant que je sache, même Chameau et le Printemps sont également à l'aide temporaire d'attente pour demande de mécanisme de réaction. La seule différence est que le Printemps JMS mise en œuvre crée et détruit temporaire de la file d'attente pour chaque message alors que j'ai créer file d'attente temporaire pour la durée de vie du producteur. Cette file d'attente temporaire est détruit lorsque le client (producteur) app shutsdown ou par l'AMQ courtier lorsqu'il se rend compte qu'il n'est actif producteur attaché à cette file d'attente temporaire.
- Je suis déjà un message d'expiration de chaque message sur le Producteur de côté afin que le message ne soit pas bloqué dans une file d'attente trop long (60 sec).