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 ){
}
}

}