2010-11-16 29 views
1

Je peux interroger les files d'attente en invoquant une opération GET_DESTINATIONS à l'aide de JMX. Avec cela, je recevrai les informations sur la file d'attente (attributs). Je voudrais maintenant interroger les messages qui sont stockés dans cette file, est-ce possible? Quelqu'un pourrait-il me donner une direction?OpenMQ et JMX - Est-il possible d'interroger des messages?

J'ai déjà essayé d'utiliser ce code

ConnectionFactory connectionFactory = new 
    com.sun.messaging.QueueConnectionFactory(); 


    Connection connection = connectionFactory.createConnection(); 
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 

    Queue myQueue = session.createQueue(string); 

    QueueBrowser browser = session.createBrowser(myQueue); 
    Enumeration msgs = browser.getEnumeration(); 

    if (!msgs.hasMoreElements()) { 
    System.out.println("No messages in queue"); 
    } else { 
    while (msgs.hasMoreElements()) { 
    Message tempMsg = (Message) msgs.nextElement(); 
    System.out.println("Message: " + tempMsg); 
    } 
    } 

    connection.close(); 

Mais pour une raison quelconque O ne peut pas accéder à la même file d'attente que l'utilisation JMX. Je n'ai fait aucune recherche à ce sujet parce que je veux utiliser JMX comme norme d'accès.

J'essaye toujours de trouver n'importe quelle opération de JMX qui pourrait m'aider, mais je ne trouve rien qui pourrait m'aider.

Pourriez-vous s'il vous plaît me donner quelques indices que puis-je rechercher?

Merci, Oscar

Edit: juste pour vous faire savoir: Je ne veux pas consommer les files d'attente, je veux un comportement similaire au navigateur, dans lequel je peux lire les messages sans les enlever de la file d'attente.

Répondre

0
QueueBrowser browser = null; 

try{ 
    Queue myQueue = session.createQueue(getName()); 

    //Create the browser and session to be able to iterate 
    browser = session.createBrowser(myQueue); 
    Enumeration msgs = browser.getEnumeration(); 

Ce code vous donnera les messages, puis juste itérer et vous pouvez obtenir obtenir d'infos sur le message et son contenu