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 HornetQ 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();
}
}