I want to publish message for which I am writing a JMS application which will publish messages to Tibco EMS queues. There are two queues one is for normal logging and another for exception logging. Now how to send message to two different queues in JMS. Can anyone help me with this as it is very critical?
The very basic JMS API code to send message to queue is shown below. You need to adjust the connection factory as well queue name as per your environment. Also need to adjust initial context settings.
void sendMessage() {
Connection con = null;
try {
// Get the initial context
Hashtable<String, String> hTable = new Hashtable<String, String>();
hTable.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
hTable.put(Context.PROVIDER_URL, "t3://localhost:7001");
Context ctx = new InitialContext(hTable);
// Create ConnectionFactory
ConnectionFactory cf = (ConnectionFactory) ctx.lookup("JMS-JNDI-ConFactory");
// Create connection
con = cf.createConnection();
// Create Non transacted Session with auto ack
Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination
Queue queue = (Queue) ctx.lookup("JMS-JNDI-Queue");
// Create MessageProducer for the destination
MessageProducer producer = session.createProducer(queue);
// Create empty Message with header and properties only
TextMessage message = session.createTextMessage();
// set the message body
message.setText("Message-1");
// Send the message
producer.send(message);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}