J'ai la classe MQConsumerClass qui récupère les messages de la file d'attente comme suit.WebSphere MQ MessageListener (Similaire à JMS Message Listener)
while (running)
{
try
{
MQMessage rcvMessage = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQConstants.MQGMO_WAIT;
gmo.waitInterval = 60000;
queue.get(rcvMessage, gmo);
if(rcvMessage.getTotalMessageLength() > 0)
{
String msgText = rcvMessage.readUTF();
}
}
catch blocks{}
}
Mais le problème est lorsqu'il n'y a aucun message dans la file d'attente, l'exception 2033 est levée.
Je pense que 2033 NO_MSG_AVAILABLE exception n'est PAS une exception sérieuse qui peut probablement arrêter l'opération.
Toutefois, je souhaite appeler la fonction onMessage(Message msg)
chaque fois qu'un nouveau message est dans la file d'attente.
Je veux créer cette classe avec MessageListener, mais je ne trouve pas MessageListener ni aucun exemple associé. Donc, s'il vous plaît dites-moi s'il y a une fonction MessageListener dans l'API Java WMQ.
ou
un moyen de le faire?
Alors, voulez-vous dire qu'il n'y a pas d'autre choix que while? Pour diminuer le nombre de boucles while, j'ai utilisé MQConstants.MQGMO_WAIT; et définissez waitInterval sur une demi-minute (60 000). Mais, "MQJE001: Code d'achèvement" 2 ", Raison" 2033 "." est affiché si la file d'attente n'a aucun message jusqu'à ce que waitInterval soit terminé.Alors, comment puis-je éviter cette exception? J'ai édité mes nouveaux codes. Je vous remercie beaucoup pour votre aide. –