ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » WSAD and MQSeries

Post new topic  Reply to topic
 WSAD and MQSeries « View previous topic :: View next topic » 
Author Message
lucimast
PostPosted: Thu Nov 13, 2003 5:44 am    Post subject: WSAD and MQSeries Reply with quote

Novice

Joined: 12 Nov 2003
Posts: 15

Hello,
I've got two files :

the first one writes in a queue :

Code:
import javax.jms.*;
import com.ibm.mq.jms.*;
import com.ibm.mq.*;
import java.util.*;
import javax.resource.*;

public class Ecriture {

   public Ecriture() {
      super();
   }

   public static void main(java.lang.String[] args) {

   try
   {
      // 1. Connexion à MQSeries
      MQQueueConnectionFactory factory;
      factory = new MQQueueConnectionFactory();
      factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
      factory.setHostName("FLO-DEV-INTRA01");
      //factory.setPort(1414);
      factory.setQueueManager("MNDINTA1");
      factory.setChannel("MNDINTA1.CH.CLIENTS");

      QueueConnection connection;
      connection = factory.createQueueConnection();
      connection.start();
      System.out.println("1. On est Connecté");

      // 2. Création d'une session
      QueueSession session;
      boolean transacted = false;
      session = connection.createQueueSession(transacted, Session.AUTO_ACKNOWLEDGE);
      System.out.println("2. Session créée");

      // 3. Création d'une connexion à la file
      Queue queue;
      queue = session.createQueue("ZAS.ESSAI");
      ((com.ibm.mq.jms.MQQueue) queue).setTargetClient(JMSC.MQJMS_CLIENT_JMS_COMPLIANT);
      ((com.ibm.mq.jms.MQQueue) queue).setEncoding(JMSC.MQJMS_ENCODING_NATIVE);
      ((com.ibm.mq.jms.MQQueue) queue).setCCSID(com.ibm.mq.MQC.MQCCSI_Q_MGR);
      System.out.println("3. File connectée");

      // 4. Ecriture d'un message
      TextMessage outMessage;
      QueueSender qSender;
      outMessage = session.createTextMessage("Test en écriture");
      outMessage.setStringProperty("color", "blue");
      qSender = session.createSender(queue);
      qSender.send(outMessage);
      System.out.println("4. Message envoyé");
      // Deconnexion
      qSender.close();
      session.close();
      connection.close();
   }
   catch (Exception e) {
      System.out.println(e.toString());
      e.printStackTrace();
   }
}

}


And the second reads it with a listener but it doesn't work could you help me ?

Code:

public class Lecture {
   /**
    * Constructor for Lecture.
    */
   public Lecture() {
      super();
   }
   
   public static void main(java.lang.String[] args) {
   try
      {
         // 1. Connexion à MQSeries
      MQQueueConnectionFactory factory;
      
      
      factory = new MQQueueConnectionFactory();
      factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
      factory.setHostName("FLO-DEV-INTRA01");
      //factory.setPort(1414);
      factory.setQueueManager("MNDINTA1");
      factory.setChannel("MNDINTA1.CH.CLIENTS");

      QueueConnection connection;
      connection = factory.createQueueConnection();
      connection.start();
      System.out.println("1. On est Connecté");

      // 2. Création d'une session
      QueueSession session;
      boolean transacted = false;
      session = connection.createQueueSession(transacted, Session.AUTO_ACKNOWLEDGE);
      System.out.println("2. Session créée");

      // 3. Création d'une connexion à la file
      Queue queue;
      queue = session.createQueue("ZAS.ESSAI");
      ((com.ibm.mq.jms.MQQueue) queue).setTargetClient(JMSC.MQJMS_CLIENT_JMS_COMPLIANT);
      ((com.ibm.mq.jms.MQQueue) queue).setEncoding(JMSC.MQJMS_ENCODING_NATIVE);
      ((com.ibm.mq.jms.MQQueue) queue).setCCSID(com.ibm.mq.MQC.MQCCSI_Q_MGR);
      System.out.println("3. File connectée");
      
      
      //4. Mise en place d'un port d'écoute pour réagir à l'événement
      PortEcoute lis = new PortEcoute();
      QueueReceiver qReceiver = session.createReceiver(queue);         
   
      qReceiver.setMessageListener(lis);

//      System.out.println("Le listener est : "+qReceiver.getMessageListener().toString());
//      System.out.println("La file d'attente est : "+qReceiver.getQueue().toString());
      System.out.println("4. Message en écoute");   

      }
      catch (Exception e){
      e.printStackTrace(System.out);
      }
   }
}


Here the code of the listener :

Code:

import javax.jms.*;
public class PortEcoute implements MessageListener {


   public void onMessage(Message msg) {
      System.out.println("Je passe dans la classe PortEcoute");
      //TextMessage txtMsg = (javax.jms.TextMessage)msg;
      try{
         if (msg instanceof TextMessage)
           System.out.println("6. Message reçu : " + ((TextMessage) msg).getText().toString());
      else
         System.out.println("6. Le message n'est pas au format text.");
//         System.out.println("Le message est le suivant -> " + txtMsg.getText());
      }
      catch (JMSException e){
         e.printStackTrace(System.out);
      }
   }

}
Back to top
View user's profile Send private message
bower5932
PostPosted: Thu Nov 13, 2003 7:14 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Aug 2001
Posts: 3023
Location: Dallas, TX, USA

Can you let us know what kind of error you are getting? It might be easier than trying to read through the code.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
lucimast
PostPosted: Thu Nov 13, 2003 7:19 am    Post subject: Reply with quote

Novice

Joined: 12 Nov 2003
Posts: 15

I don't have any error message but I don't read any message too!
Back to top
View user's profile Send private message
bower5932
PostPosted: Thu Nov 13, 2003 7:23 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Aug 2001
Posts: 3023
Location: Dallas, TX, USA

I'd suggest that you run amqsbcg against the queue to make sure that the message actually made it out. I also see where you set your message listener in your main, but it looks like your program then ends. If this is the case, the program may be ending before the onMessage can get the message. Put a prompt for user input at the bottom of your main to make the program wait and see if this makes a difference.

You could also try changing your program to receive the message in-line to see if this makes a difference. Once you had this working, you could go back to the onMessage.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » WSAD and MQSeries
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.