Je travaille avec Java EE et ActiveMQ. Je veux réaliser une File d'attente JMS où je peux envoyer des messages à ma FILE D'ATTENTE et un Message + Message de Consumer + devrait lire ces messages.ActiveMQ, comment puis-je créer un seul consommateur?
Le code pour ma consommation ist ce qui suit:
private void initializeActiveMq() throws JMSException {
// Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
// Create a Connection
connection = connectionFactory.createConnection();
connection.start();
// Create a Session
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Queue)
Queue queue = session.createQueue(queueName);
// Create a MessageConsumer from the Session to the Queue
consumer = session.createConsumer(queue);
consumer.setMessageListener(this);
}
Mais le problème est, chaque fois que je vais exécuter ce code, il annonce une nouvelle consommation à ma file d'attente, puis-je avoir un comportement étrange des consommateurs n'a pas alors livré les messages correctement. Si je n'ai qu'un seul consommateur, cela fonctionne parfaitement. Comment puis-je m'assurer que je n'ai qu'un seul consommateur dans ma file d'attente?
seulement appelez ce code une fois? – jtahlborn
Le problème est, que je construis un fichier de guerre avec ce code. et chaque fois que je redéploie mon fichier ware sur mon serveur, ce code va appeler et il ajoute un nouveau consommateur. La seule solution à la monent est, chaque fois que je redéploie mon fichier de guerre, je dois redémarrer activemq, cela va tuer tous les consommateurs. Mais je veux une solution que je ne dois pas redémarrer activemq .. – user2115378