一切皆可抽象

          大而無形 庖丁解牛 厚積薄發 滌慮玄覽
             ::  ::  ::  ::  :: 管理

          【原創】mq p-s的java實現

          Posted on 2005-09-06 10:28 鋒出磨礪 閱讀(241) 評論(0)  編輯  收藏 所屬分類: 消息中間件

          public class JmsUtils {

             public static final String HOST_NAME = "192.168.0.63";
             public static final String CHANNELNAME = "chan1";
                    public static final int CCSID = 1381;
                    public static final String QMGRNAME = "channel1";


          }

          import javax.jms.JMSException;
          import javax.jms.Topic;
          import javax.jms.TopicConnection;


          public class PubSubUtils extends JmsUtils {

           

           public TopicConnection getConnection()
            throws  JMSException {
                        com.ibm.mq.jms.MQTopicConnectionFactory factory = new
                        com.ibm.mq.jms.MQTopicConnectionFactory();
                        factory.setHostName(this.HOST_NAME);
                        factory.setCCSID(this.CCSID);
                        factory.setChannel(this.CHANNELNAME);
                        factory.setQueueManager(this.QMGRNAME);

                  return factory.createTopicConnection();
           }

           public Topic getTopic(String name) throws JMSException {
                    return new com.ibm.mq.jms.MQTopic(name);
           }
          }

          import java.io.IOException;

          import javax.jms.JMSException;
          import javax.jms.Message;
          import javax.jms.Session;
          import javax.jms.TopicConnection;
          import javax.jms.TopicPublisher;
          import javax.jms.TopicSession;
          import javax.naming.NamingException;

          public class StandalonePublisher {

           private PubSubUtils utils;
           private TopicConnection connection;
           private TopicSession session;
           private TopicPublisher publisher;

           public static void main(String[] args)
            throws NamingException, JMSException, IOException {
            StandalonePublisher publisher = new StandalonePublisher();
            publisher.connect();
            String message = "ignored";
            while (message.length() > 0) {
             byte[] input = new byte[40];
             System.out.print("Enter a message: ");
             System.in.read(input);
             message = (new String(input, 0, input.length)).trim();
             if (message.length() > 0)
              publisher.sendMessage(message);
            }
            publisher.disconnect();
           }

           private StandalonePublisher() {
            utils = new PubSubUtils();
           }

           private void connect() throws NamingException, JMSException {
            connection = utils.getConnection();
            session =
             connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
            publisher = session.createPublisher(utils.getTopic("hello"));
            System.out.println("Publisher started.");
           }

           private void sendMessage(String text) throws JMSException {
            Message message = session.createTextMessage(text);
            publisher.publish(message);
            System.out.println(
             "Published message <"
              + text
              + "> with ID <"
              + message.getJMSMessageID()
              + ">");
           }

           private void disconnect() throws JMSException {
            publisher.close();
            session.close();
            connection.close();
            System.out.println("Publisher stopped.");
           }
          }

          import java.io.IOException;

          import javax.jms.JMSException;
          import javax.jms.Message;
          import javax.jms.MessageListener;
          import javax.jms.Session;
          import javax.jms.TextMessage;
          import javax.jms.TopicConnection;
          import javax.jms.TopicSession;
          import javax.jms.TopicSubscriber;
          import javax.naming.NamingException;

          public class StandaloneSubscriber implements MessageListener {

           private PubSubUtils utils;
           private TopicConnection connection;
           private TopicSession session;
           private TopicSubscriber subscriber;

           public static void main(String[] args)
            throws NamingException, JMSException, IOException {
            StandaloneSubscriber subscriber = new StandaloneSubscriber();
            subscriber.connect();
            System.in.read();
            subscriber.disconnect();
           }

           private StandaloneSubscriber() {
            utils = new PubSubUtils();
           }

           private void connect() throws NamingException, JMSException {
            connection = utils.getConnection();
            session =
             connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
            subscriber = session.createSubscriber(utils.getTopic("hello"));
            subscriber.setMessageListener(this);
            connection.start();
            System.out.println("Subscriber started.");
           }

           public void onMessage(Message message) {
            try {
             TextMessage tMessage = (TextMessage) message;
             String text;
             text = tMessage.getText();
             System.out.println(
              "Received message <"
               + text
               + "> with ID <"
               + message.getJMSMessageID()
               + ">");
            } catch (JMSException e) {
             e.printStackTrace();
            }
           }

           private void disconnect() throws JMSException {
            subscriber.close();
            session.close();
            connection.stop();
            connection.close();
            System.out.println("Subscriber stopped.");
           }
          }

          主站蜘蛛池模板: 香港 | 汽车| 凤凰县| 房山区| 华池县| 凤台县| 甘谷县| 锦州市| 滁州市| 玉林市| 合阳县| 临汾市| 巴林左旗| 建平县| 永康市| 宣城市| 长乐市| 三河市| 宁晋县| 普兰县| 常德市| 云和县| 金湖县| 藁城市| 文山县| 监利县| 方山县| 沙洋县| 旅游| 丽水市| 资源县| 台北市| 万安县| 堆龙德庆县| 逊克县| 翁源县| 夹江县| 灵山县| 马山县| 石首市| 瑞金市|