<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    厚積而薄發

    山不辭土,故能成其高;海不辭水,故能成其深!
    posts - 15, comments - 0, trackbacks - 0, articles - 1

    深入掌握JMS(七):DeliveryMode例子

    Posted on 2009-10-30 14:24 Robin 閱讀(328) 評論(0)  編輯  收藏
    在下面的例子中,分別發送一個Persistent和nonpersistent的消息,然后關閉退出JMS。

    import javax.jms.Connection;
    import javax.jms.DeliveryMode;
    import javax.jms.MessageProducer;
    import javax.jms.Queue;
    import javax.jms.Session;
    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.command.ActiveMQQueue;

    public class DeliveryModeSendTest {

        public static void main(String[] args) throws Exception {
            ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
       
            Connection connection = factory.createConnection();
            connection.start();
           
            Queue queue = new ActiveMQQueue("testQueue");
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                   
            MessageProducer producer = session.createProducer(queue);
            producer.setDeliveryMode(DeliveryMode.PERSISTENT);
            producer.send(session.createTextMessage("A persistent Message"));
           
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
            producer.send(session.createTextMessage("A non persistent Message"));
           
            System.out.println("Send messages sucessfully!");
        }
    }

        運行上面的程序,當輸出“Send messages sucessfully!”時,說明兩個消息都已經發送成功,然后我們結束它,來停止JMS Provider。

        接下來我們重新啟動JMS Provicer,然后添加一個消費者:

    import javax.jms.Connection;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Queue;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.command.ActiveMQQueue;

    public class DeliveryModeReceiveTest {

        public static void main(String[] args) throws Exception {
            ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
       
            Connection connection = factory.createConnection();
            connection.start();
           
            Queue queue = new ActiveMQQueue("testQueue");
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
           
            MessageConsumer comsumer = session.createConsumer(queue);
            comsumer.setMessageListener(new MessageListener(){
                public void onMessage(Message m) {
                    try {
                        System.out.println("Consumer get " + ((TextMessage)m).getText());
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    }

    運行上面的程序,可以得到下面的輸出結果:

    Consumer get A persistent Message

    可以看出消息消費者只接收到一個消息,它是一個Persistent的消息。而剛才發送的non persistent消息已經丟失了。

    另外, 如果發送一個non persistent消息, 而剛好這個時候沒有消費者在監聽, 這個消息也會丟失.

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 中文字幕无码日韩专区免费| 无码色偷偷亚洲国内自拍| 国产免费伦精品一区二区三区 | 久草免费福利资源站| 2022中文字字幕久亚洲| 亚洲网站在线观看| 久久久久久国产精品免费免费男同| 亚洲中文字幕第一页在线| 久久国产乱子精品免费女| 成人永久免费高清| 美女18毛片免费视频| 亚洲人成无码网WWW| 91免费福利视频| 亚洲电影中文字幕| 日本免费网站视频www区| 亚洲男人av香蕉爽爽爽爽| 国产 亚洲 中文在线 字幕| 欧洲精品免费一区二区三区| 亚洲Aⅴ在线无码播放毛片一线天| 四虎在线播放免费永久视频| 一级毛片a免费播放王色| 国产av天堂亚洲国产av天堂| 免费精品国产自产拍在线观看图片| 中文字幕乱码亚洲无线三区| 亚洲成a人片在线观看久| 日韩免费在线视频| 亚洲中文字幕一区精品自拍| 免费v片在线观看无遮挡| 最近国语视频在线观看免费播放| 亚洲精品第五页中文字幕| 日本高清免费不卡在线| 最新久久免费视频| 亚洲国产精品综合久久2007| 国产免费怕怕免费视频观看| baoyu122.永久免费视频| 亚洲男人天堂2018av| 国产精品亚洲综合专区片高清久久久| 两个人看的www免费| 亚洲日韩国产欧美一区二区三区| 亚洲午夜AV无码专区在线播放 | 久久精品无码专区免费|