|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
WSAD and MQSeries |
« View previous topic :: View next topic » |
Author |
Message
|
lucimast |
Posted: Thu Nov 13, 2003 5:44 am Post subject: WSAD and MQSeries |
|
|
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 |
|
 |
bower5932 |
Posted: Thu Nov 13, 2003 7:14 am Post subject: |
|
|
 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 |
|
 |
lucimast |
Posted: Thu Nov 13, 2003 7:19 am Post subject: |
|
|
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 |
|
 |
bower5932 |
Posted: Thu Nov 13, 2003 7:23 am Post subject: |
|
|
 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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|