| Ultra Messaging JMS Guide | ||
|---|---|---|
| Prev | ||
The following example applications demonstrate the request/reply model.
// Obtain a ConnectionFactory via lookup or direct instantiation
ConnectionFactory factory = (ConnectionFactory)jndiContext.lookup("uJMSConnectionFactory");
// Create a connection - assuming no username/password required for UM
Connection connection = factory.createConnection();
// Create a Session
Session session = connection.createSession(false,
javax.jms.Session.AUTO_ACKNOWLEDGE);
// Create request and reply destinations
Destination requestTopic = lookupDestination(requestTopicName);
Destination replyTopic = lookupDestination(replyTopicName);
MessageProducer requestProducer = session.createProducer(requestTopic);
MessageConsumer replyConsumer = session.createConsumer(replyTopic);
TextMessage requestMessage = session.createTextMessage();
requestMessage.setText("Hello world.");
requestMessage.setJMSReplyTo(replyTopic);
requestProducer.send(requestMessage);
// start the connection
connection.start();
// Wait for the reply
Message replyMessage = replyConsumer.receive();
// Could check correlationID, not really necessary with sync request reply
if (replyMessage.getJMSCorrelationID() != requestMessage.getJMSMessageID())
{
System.err.println("Unexpected reply message"+ e.getMessage());
}
// Obtain a ConnectionFactory via lookup or direct instantiation
ConnectionFactory factory = (ConnectionFactory)jndiContext.lookup("uJMSConnectionFactory");
// Create a connection - assuming no username/password required for UM
Connection connection = factory.createConnection();
// Create a Session
Session session = connection.createSession(false,
javax.jms.Session.AUTO_ACKNOWLEDGE);
// Create request destination
Destination requestTopic = lookupDestination(requestTopicName);
// Create consumer on request topic
MessageConsumer requestConsumer = session.createConsumer(requestTopic);
// Create a producer, don't know reply destination at this point.
MessageProducer replyProducer = session.createProducer(null);
// set the message listener callback
msgConsumer.setMessageListener(this);
// start the connection
connection.start();
// The message listener callback
public void onMessage(Message message)
{
try
{
TextMessage requestMessage = (TextMessage) message;
String contents = requestMessage.getText();
// get the reply to destination
Destination replyDestination = requestMessage.getJMSReplyTo();
TextMessage replyMessage = session.createTextMessage();
replyMessage.setText(contents);
replyMessage.setJMSCorrelationID(requestMessage.getJMSMessageID());
replyProducer.send(replyDestination, replyMessage);
}
catch(Exception e)
{
System.err.println("Exception occurred: "+ e.getMessage());
System.exit(-1);
}
}
Copyright (c) 2004 - 2014 Informatica Corporation. All rights reserved.