This example shows you how to send a message to an MDB that returns a reply using the same XA transaction
The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it
Please refer to JBoss Messaging Quickstart guide to install it in JBoss AS 5
To deploy and start the server, simply type ant deploy
from the example directory
To run the example, simply type ant
from the example directory
To remove the example profile, simply type ant undeploy
from the example directory
** make sure that JBOSS_HOME is set to the Jboss installation directory
jndi.properties
file in the directory config
initialContext = new InitialContext();
Queue queue = (Queue) initialContext.lookup("/queue/testQueue");
ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/ConnectionFactory");
connection = cf.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(queue);
TextMessage message = session.createTextMessage("This is a text message");
messageProducer.send(message);
TextMessage tm = (TextMessage)message;
String text = tm.getText();
System.out.println("message " + text + " received");
conn = connectionFactory.createConnection();
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = sess.createProducer(replyQueue);
producer.send(sess.createTextMessage("this is a reply"));
queue = (Queue) initialContext.lookup("/queue/replyQueue");
MessageConsumer messageConsumer = session.createConsumer(queue);
connection.start();
message = (TextMessage) messageConsumer.receive(5000);
System.out.println("message.getText() = " + message.getText());
finally
block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects
finally
{
if (initialContext != null)
{
initialContext.close();
}
if (connection != null)
{
connection.close();
}
}