IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Websphere Java Discussion :

[MQ] Lire les messages dans la queue sans les effacer du serveurs


Sujet :

Websphere Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [MQ] Lire les messages dans la queue sans les effacer du serveurs
    Bonjour,

    J'ai développé une application pour écrire et lire les messages se trouvant sur le serveur.
    Lors de la lecture, les messages sont effacés de la file d'attente.
    L'explorateur WebSphere MQ permet de lire les messages d'une file sans les effacer.
    voici mon code pour la lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    	try
    	{
    		_queueManager = new MQQueueManager(qManager);
    		int openOptions = MQC.MQOO_INQUIRE + MQC.MQOO_FAIL_IF_QUIESCING + MQC.MQOO_INPUT_SHARED;
     
    		MQQueue queue = _queueManager.accessQueue(outputQName, openOptions,
    				null, // default q manager
    				null, // no dynamic q name
    				null); // no alternate user id
     
    		if (queue.getCurrentDepth() == 0)
    		{
    			throw new Exception("Queue is null");
    		}
     
    		MQGetMessageOptions getOptions = new MQGetMessageOptions();
    		getOptions.options = MQC.MQGMO_NO_WAIT + MQC.MQGMO_FAIL_IF_QUIESCING + MQC.MQGMO_CONVERT;
    		while (queue.getCurrentDepth()>0)
    		{
    			MQMessage message = new MQMessage();
    			try
    			{
    				queue.get(message, getOptions);
    				byte[] b = new byte[message.getMessageLength()];
     
    				message.readFully(b);
    				msgList.put(new String(message.messageId),new String(b));
     
    				//message.clearMessage();
    			} catch (Exception e) {
    				if(logjava)System.out.println(e.getMessage());
    			} 
    		}
    		queue.close();
    		_queueManager.disconnect();
    	} catch (Exception e)
    	{
    	}
    J'ai essayé de changer les paramètres de openOptions et getOptions.options mais je n'ai pas trouvé la combinaison gagnante si c'est là que se situe le problème.

    Merci de me répondre si quelqu'un a la solution ou si ce n'est pas réalisable.
    Vincent

  2. #2
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 84
    Points : 98
    Points
    98
    Par défaut
    En réalité, il faut ouvrir la queue en mode "browse"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int openOptions = MQC.MQOO_INPUT_EXCLUSIVE | MQC.MQOO_BROWSE;
     
             MQQueue myQueue = qMgr.accessQueue(args[0], openOptions,
                                                null, null, null);

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci Aldo pour la réponse.
    J'avais déjà essayé ces paramètres mais j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MQJE001 : Code achèvement 2, raison 2038
    Faut-il spécifier des options particulières pour l'envoi des données?
    J'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING

Discussions similaires

  1. [Toutes versions] Nouveau effet mouse in out sur les boutons dans un userform sans les apis
    Par patricktoulon dans le forum Contribuez
    Réponses: 17
    Dernier message: 27/02/2018, 22h28
  2. Réponses: 6
    Dernier message: 02/12/2010, 22h04
  3. Réponses: 24
    Dernier message: 25/09/2007, 11h53
  4. [Web] je reçoi les message dans le SPAM de yahoo ?
    Par ouldfella dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 26/12/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo