(转)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();
}
}
最新文章
- 在当前Server上找某某object,注意只需修改";要找的object";就可以使用
- redis安装及基础操作(1)
- 遍历进程活动链表(ActiveProcessLinks)、DKOM隐藏进程
- ACM Yougth的最大化
- Node.js的函数返回值
- 每天一个脚本解析day1==》《service xxxxx status》之service脚本解析
- 1346. Intervals of Monotonicity(dp)
- java集合框架复习
- jQuery ui 中文日历
- IOS视图旋转可放大缩小
- Netfilter-packet-flow.svg
- 使用PHPMailer发送带附件并支持HTML内容的邮件
- 201521123052《Java程序设计》第2周学习总结
- 第十节:利用async和await简化异步编程模式的几种写法
- document.getElementById(“id”)与$(";#id";)的区别
- Github学习心得体会
- windows中安装liunx虚拟机
- 工作记录 rfcn网络结构 caffe time测速和实际运行中速度不相等。
- 51Nod 1199 Money out of Thin Air (树链剖分+线段树)
- SSM迁移到Springboot记录
热门文章
- spring boot中读取配置文件的两种方式
- .net文件下载的四种方法
- [jzoj5840]Miner 题解(欧拉路)
- angular-cli项目报Error encountered resolving symbol values statically. Function calls are not supported.错误的处理。
- vi 编辑器使用指南
- PHP面试 javascript和jQuery 基础
- WEBI更换数据源
- 二级域名解析设置及Apache 子域名配置
- awk 按小时 统计接口调用次数
- 转 笔记本无线和有线的MAC地址修改