Results 1 to 1 of 1
- 02-02-2009, 05:04 PM #1
Member
- Join Date
- Jan 2009
- Posts
- 3
- Rep Power
- 0
How to retrieve JMS message with correlation id
Hello,
I'm trying to retrieve the response-message through the correlation-id.
This is the code I now have. Anyone any idea how I can find the right message.
public String sendMessage(String sendMessage) {
Queue tmpQueue=null;
TextMessage messageTxt = null;
String correlationId=null;
String returnValue = "";
String myFilter;
Context ctx;
try {
System.out.println("START");
System.out.println("sendMessage : " + sendMessage);
ctx = (Context) new InitialContext().lookup("java:comp/env");
QueueConnectionFactory qcf = (QueueConnectionFactory) ctx
.lookup("jms/MyQCF");
QueueConnection qc = qcf.createQueueConnection();
Queue q = (Queue) ctx.lookup("jms/MyQSender");
QueueSession qs = qc.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
TextMessage tm = qs.createTextMessage();
tm.setText(sendMessage);
QueueSender sender = qs.createSender(q);
((MQQueue)q).setTargetClient ( 1);
// set the reply queue
tmpQueue = (Queue) ctx.lookup("jms/MyQReply");
Destination dest = tmpQueue;
tm.setJMSReplyTo(tmpQueue);
System.out.println("Queue name : " + q.getQueueName());
sender.send(tm);
// retrieve JMS id
correlationId = tm.getJMSCorrelationID();
System.out.println("Correlation-id : " + correlationId);
myFilter = "JMSCorrelationID = '" + correlationId + "'";
sender.close();
// retrieve message
qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
q = (Queue) ctx.lookup("jms/MyQReceiver");
System.out.println("Creating receiver");
QueueReceiver receiver = qs.createReceiver(q);
qc.start();
while (true) {
Message message = receiver.receive(1000);
if (message != null) {
if (message instanceof TextMessage) {
messageTxt = (TextMessage) message;
returnValue = messageTxt.getText();
System.out.println("Received message: "
+ messageTxt.getText());
} else {
System.out.println("Breaking out");
break;
}
}
break;
}
receiver.close();
qs.close();
qc.close();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
return returnValue;
}
Similar Threads
-
How to store/retrieve PNG image in/from RMS
By jason-nexFIT-mobileXware in forum CLDC and MIDPReplies: 0Last Post: 09-10-2008, 04:01 AM -
Store retrieve and delete
By on7june in forum New To JavaReplies: 1Last Post: 03-08-2008, 05:57 PM -
How to retrieve HttpSession from axis 2.0.
By snooze-g in forum Advanced JavaReplies: 0Last Post: 10-02-2007, 07:08 AM -
how to retrieve the width of the column
By katie in forum New To JavaReplies: 1Last Post: 08-06-2007, 10:56 PM -
How to retrieve data from servlet
By valery in forum Java ServletReplies: 1Last Post: 08-06-2007, 08:25 PM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks