NonStop JMS User's Manual (H06.03+, J06.03+, NonStop JMS 3.0+)

NSJMS and JMS Client Applications
NonStop Server for Java Message Service User’s Manual522356-006
4-15
Best Practices for Developing a JMS Client
Topic Publisher/Subscriber Sample Setup (Not
Recommended)
This is a sample of a setup process that is not recommended for use because the
setup steps are repeated with each message:
TopicConnectionFactory factory =
(TopicConnectionFactory)
jndiContext.lookup("TopicConnectionFactory");
TopicConnection connection = factory.createTopicConnection();
TopicSession sessionSub = connection.createTopicSession(true,
Session.AUTO_ACKNOWLEDGE);
Topic topicSub = (Topic)jndiContext.lookup(topicSubName);
TopicSubscriber subscriber =
sessionSub.createDurableSubscriber(topicSub,
"MySubscription");
TextListener topicListener = new TextListener();
subscriber.setMessageListener(topicListener);
connection.start();
class TextListener implements MessageListener
{
public void onMessage(Message message)
{
TextMessage messageSub = (TextMessage) message;
// Connection, session & publisher recreated after each
//receive, very expensive
TopicConnection connectionNew =
factory.createTopicConnection();
TopicSession sessionPub =
connectionNew.createTopicSession(true,
Session.AUTO_ACKNOWLEDGE);
Topic topicPub =
(Topic)jndiContext.lookup(topicPubName);
TopicPublisher publisher =
sessionPub.createPublisher(topicPub);
TextMessage messagePub =
sessionPub.createTextMessage();
messagePub.setText(messageSub.getText());
publisher.publish(messagePub);
//session commits can be done after each message or
//batched
}
}