转: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();
}
}

最新文章

  1. 在当前Server上找某某object,注意只需修改"要找的object"就可以使用
  2. redis安装及基础操作(1)
  3. 遍历进程活动链表(ActiveProcessLinks)、DKOM隐藏进程
  4. ACM Yougth的最大化
  5. Node.js的函数返回值
  6. 每天一个脚本解析day1==》《service xxxxx status》之service脚本解析
  7. 1346. Intervals of Monotonicity(dp)
  8. java集合框架复习
  9. jQuery ui 中文日历
  10. IOS视图旋转可放大缩小
  11. Netfilter-packet-flow.svg
  12. 使用PHPMailer发送带附件并支持HTML内容的邮件
  13. 201521123052《Java程序设计》第2周学习总结
  14. 第十节:利用async和await简化异步编程模式的几种写法
  15. document.getElementById(“id”)与$("#id")的区别
  16. Github学习心得体会
  17. windows中安装liunx虚拟机
  18. 工作记录 rfcn网络结构 caffe time测速和实际运行中速度不相等。
  19. 51Nod 1199 Money out of Thin Air (树链剖分+线段树)
  20. SSM迁移到Springboot记录

热门文章

  1. spring boot中读取配置文件的两种方式
  2. .net文件下载的四种方法
  3. [jzoj5840]Miner 题解(欧拉路)
  4. angular-cli项目报Error encountered resolving symbol values statically. Function calls are not supported.错误的处理。
  5. vi 编辑器使用指南
  6. PHP面试 javascript和jQuery 基础
  7. WEBI更换数据源
  8. 二级域名解析设置及Apache 子域名配置
  9. awk 按小时 统计接口调用次数
  10. 转 笔记本无线和有线的MAC地址修改