MQ04
キューを受信してみる
●キューを受信してみる
プログラムを作成。
※コンパイルには
インストールディレクトリ\mq\lib
のimq.jar、jms.jarが要る。
package TestMQ;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;import com.sun.messaging.ConnectionConfiguration;
import com.sun.messaging.QueueConnectionFactory;public class TestRecvQueue implements MessageListener {
private static QueueConnection qcon = null;
public static void main(String[] args) throws Exception {
start();
}
public static void start() throws JMSException {
QueueConnectionFactory qcf = new QueueConnectionFactory();
qcf.setProperty( ConnectionConfiguration.imqAddressList, "localhost:7676" );
QueueConnection qcon = qcf.createQueueConnection();//受信準備
QueueSession qsess = qcon.createQueueSession( false, Session.AUTO_ACKNOWLEDGE );
Queue qu = qsess.createQueue( "testqueue" );
QueueReceiver receive = qsess.createReceiver( qu );//メッセージを受け取ったときの処理を登録
receive.setMessageListener( new TestRecvQueue() );//START
qcon.start();}
public void onMessage(Message message) {
try {
TextMessage mess = (TextMessage) message;
String text = mess.getText();
String prop = mess.getStringProperty( "numberXX" );System.out.print( text );
System.out.print( " " );
System.out.println( prop );} catch ( JMSException e ) {
e.printStackTrace();
try {
qcon.stop();
} catch (JMSException e1) {
e1.printStackTrace();
}} catch ( Exception e ){
}
}}