2017-09-02 2 views
0

Je dois envoyer un message à la file d'attente IBM. J'ai écrit une classe de producteur normal de pousser le message à la file d'attente comme: -Comment envoyer un message IBM MQ de manière fiable si Destination est en panne?

 Session session = queueConnection.createSession(true, 
      QueueSession.AUTO_ACKNOWLEDGE); 
     Destination destination = 
      session.createQueue("test.queue"); 
     MessageProducer producer = session.createProducer(destination); 

      TextMessage message = session.createTextMessage("test"); 
      producer.send(message); 

     // Close the session 
     session.close(); 

Maintenant, supposons en raison d'une file d'attente de raison qui est présent à l'intérieur QueueManager est en panne ou courtier IBM MQ est en panne ou il y a un problème de réseau ce qui conduit à envoyer un échec de message. Y at-il un mécanisme dans JMS/IBM MQ qui peut réessayer automatiquement d'envoyer le message (essentiellement réessayer mécanisme) et réessayer un certain nombre de fois défini avant d'abandonner finalement pour envoyer le message au courtier IBM MQ?

Répondre

1

IBM MQ JMS Client (autres clients IBM MQ également) dispose d'une fonction dans laquelle une connexion IBM MQ Queue Manager se casse pour une raison quelconque, le client tente de se reconnecter au gestionnaire de files d'attente jusqu'à un certain laps de temps. Voir ici: https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q032520_.htm. Vous devrez configurer la fabrique de connexions pour permettre la reconnexion. Par exemple, si la connexion au gestionnaire de files d'attente est rompue lors de l'exécution de la méthode producer.send, le client IBM MQ JMS tente automatiquement de se reconnecter au gestionnaire de files d'attente et d'envoyer le message.

Dans IBM MQ, une file d'attente ne peut pas aller vers le bas, il peut devenir en même accessible, par exemple, si la file d'attente est pleine ou mettre/get la file d'attente est désactivé, etc.

+0

Merci de remarquer le lien. Mais mon cas d'utilisation est que l'application sera exécutée dans le conteneur TOMEE. Si la file d'attente est indisponible pour une raison ou une autre, l'application sera-t-elle exécutée dans TOMEE pour pouvoir se reconnecter automatiquement à l'aide de setClientReconnectOptions? – Neer1009

+0

Oui, le client MQ JMS tente de se reconnecter si vous avez activé les options de reconnexion et qu'une connexion est interrompue. – Shashi