zoukankan      html  css  js  c++  java
  • (转)JMS事务

    转:http://blog.csdn.net/jixiuffff/article/details/5780834

    事务
             session = conn.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
             true 表示这个会话是事务性的,需要显式的commit 或者rollback ()
                                             没有begin()方法,眨动打开事务
                                            
         public void send() {
            try {
                        publicMessageFlag("start");
                       publicMessage("msg1");
                        publicMessage("msg2");
                        publicMessage("msg3");
                        publicMessageFlag("end");
                        session.commit();
             } catch (JMSException e) {
                     e.printStackTrace();
                try {
                     session.rollback();
                } catch (JMSException e1) {
                    e1.printStackTrace();
                }
            }//发送一个空的bytemessage 消息,标志着这一组消息的开始
        }

    package org.jixiuf.chat;
    import javax.jms.BytesMessage;
    import javax.jms.JMSException;
    import javax.jms.Queue;
    import javax.jms.QueueConnection;
    import javax.jms.QueueSender;
    import javax.jms.QueueSession;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import org.jixiuf.util.JNDIUtil;
    public class ChatServer {
        QueueConnection conn;
        Queue requestQueue;
        QueueSession session;
        int age = 10;
        QueueSender sender;
        public ChatServer() {
            conn = JNDIUtil.crateQueueConnection();
            requestQueue = JNDIUtil.lookupQueue("requestQueue");
            try {
                session = conn.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
                sender = session.createSender(requestQueue);
            } catch (JMSException e) {
                e.printStackTrace();
            }
        }
        // flag 是"start" ,和"end" 分别表示这组消息的开头
        public void publicMessageFlag(String flag) throws JMSException {
            BytesMessage msg = null;
         
                msg = session.createBytesMessage();
                msg.setStringProperty("JMSXGroupID", "group1");
                msg.setStringProperty("flag", flag);
                sender.send(msg);
        }
        // flag 是"start" ,和"end" 分别表示这组消息的开头
        public void publicMessage(String msgStr)throws JMSException {
            TextMessage msg;
         
                msg = session.createTextMessage();
                msg.setStringProperty("JMSXGroupID", "group1");
                msg.setText(msgStr);
                sender.send(msg);
         
        }
        public void send() {
            try {
                publicMessageFlag("start");
                publicMessage("msg1");
                publicMessage("msg2");
                publicMessage("msg3");
                publicMessageFlag("end");
                session.commit();
            } catch (JMSException e) {
                e.printStackTrace();
                try {
                    session.rollback();
                } catch (JMSException e1) {
                    e1.printStackTrace();
                }
            }//发送一个空的bytemessage 消息,标志着这一组消息的开始
            
        }
        public void exit() {
            try {
                conn.close();
            } catch (JMSException e) {
                e.printStackTrace();
            }
            System.exit(0);
        }
        public static void main(String[] args) {
            ChatServer server = new ChatServer();
            server.send();
            server.exit();
        }
    }
  • 相关阅读:
    测开之路二十七:Flask基础之动态路由
    测开之路二十六:Flask基础之最小web程序
    测开之路二十五:彩票游戏
    测开之路二十四:常见的排序
    CSS快速入门-浮动(float)
    CentOS下安装Tomcat环境
    CSS快速入门-前端布局2(唯品会1)
    CSS快速入门-前端布局1(抽屉)
    CSS快速入门-后端布局
    Delphi 中 函数参数中的 const 修饰符的本质以及注意事项
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/3201939.html
Copyright © 2011-2022 走看看