WAS 7.0 / WebSphere MQ 7.0
Configure the Queue Connection Factory:
1. click resource
2. click JMS
3. click websphere queue connection factory
1. click New
1. checked the websphere MQ messaging provider
2. click confirm
1. input the name
2. input the JNDI name, defined by yourself
3. click Next
1. checked as the figure shows
2. click Next
1. input the QUEUE MANAGER name
2. click the Nest button
1. select the Client
2. input the host name which MQ installed
3. input the MQ port
4. input the server connection channel that defined at the MQ side
5. click the Next button
1. you can click test connection to judge your configuration is right or not
2. click Next button
3. you can save your configuration
Configure the Queue:
1. click resource
2. click JMS
3. click Queue
1. click New
1. click websphere MQ messaging provider
2. click confirm
1. input the name
2. input the JNDI name that defined by yourself
3. input the QUEUE name
4. input the QUEUE MANAGER name
5. then click the apply to save your configuration
1. click as the figure shows
1. input the host name
2. input the port
3. input the server connection channel
4. you may input the id and password if needed
5. click the apply button, and click save to save your configuration
Now you have done the configuration , next you should restart the server….
Show some java code to test the configuration:
1. receive message from Queue:
public static void receive() { try { Context ctx = new InitialContext(); QueueConnectionFactory qcf = (QueueConnectionFactory)ctx.lookup("TESTSOA_JNDI"); QueueConnection connection = qcf.createQueueConnection(); Queue q = (Queue)ctx.lookup("TESTQ_JNDI"); QueueSession s = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); connection.start(); QueueReceiver receiver = s.createReceiver(q);
Message mc = receiver.receive(); if(mc != null) { String type = mc.getJMSType(); if(mc instanceof TextMessage) { TextMessage tm = (TextMessage)mc; System.out.println(tm.getText()); }
} s.close(); connection.close(); }catch(Exception e) {
}
} |
2. send message to Queue:
public static void send() { try { Context ctx = new InitialContext(); QueueConnectionFactory qcf = (QueueConnectionFactory)ctx.lookup("TESTSOA_JNDI"); QueueConnection connection = qcf.createQueueConnection();
Queue q = (Queue)ctx.lookup("TESTQ_JNDI");
QueueSession s = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); connection.start(); QueueSender sender = s.createSender (q); TextMessage tm = s.createTextMessage ( "test websphere mq have Chinese characters"); sender.send (tm, DeliveryMode.PERSISTENT, 4, 0); s.close(); connection.close();
}catch(Exception e) { e.printStackTrace(); }
} |