MQ05
トピック送信
Pub/Sub通信
imqadmin
で送信先名testtopic、送信先タイプトピックを作成。
Publisher側
package TestMQ;import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;import com.sun.messaging.ConnectionConfiguration;
import com.sun.messaging.TopicConnectionFactory;public class TestSendTopic {
public static void main(String[] args) throws Exception {
TopicConnectionFactory tcf = new TopicConnectionFactory();
tcf.setProperty( ConnectionConfiguration.imqAddressList, "localhost:7676" );
TopicConnection tcon = tcf.createTopicConnection();
//送信準備
TopicSession tsess = tcon.createTopicSession( false, Session.AUTO_ACKNOWLEDGE );
Topic topic = tsess.createTopic( "testtopic" );
TopicPublisher publisher = tsess.createPublisher( topic );//送信
TextMessage msg = tsess.createTextMessage();
msg.setText("TEST pub/sub");
msg.setStringProperty("numberXX", "100" );
publisher.publish( msg );//切断
publisher.close();
tsess.close();
tcon.close();}
}
Subscriber側
package TestMQ;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;import com.sun.messaging.ConnectionConfiguration;
import com.sun.messaging.TopicConnectionFactory;public class TestRecvTopic implements MessageListener {
private static TopicConnection tcon = null;
public static void main(String[] args) throws Exception {
TopicConnectionFactory tcf = new TopicConnectionFactory();
tcf.setProperty( ConnectionConfiguration.imqAddressList, "localhost:7676" );
tcon = tcf.createTopicConnection();
//受信準備
TopicSession tsess = tcon.createTopicSession( false, Session.AUTO_ACKNOWLEDGE );
Topic topic = tsess.createTopic( "testtopic" );
TopicSubscriber subscriber = tsess.createSubscriber(topic);//受信
subscriber.setMessageListener( new TestRecvTopic() );//START
tcon.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 );
System.out.println( message );} catch ( JMSException e ) {
e.printStackTrace();
try {
tcon.stop();
} catch (JMSException e1) {
e1.printStackTrace();
}} catch ( Exception e ){
}
}}