- 浏览: 961486 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
JMSRedelivered可以检查消息是否被重新发送。
消息确认,通过message.acknowledge();此方法只能在CLIENT_ACKNOWLEDGE模式使用。
该方法的调用,会造成对之前所有的未确定的消息的确定。
另外也可以调用session的recover()方法,来强制要求JMS server重新发送之前未确定的消息。onMessage的运行失败,如抛出异常,也会造成JMS对之前未确定的消息的重新发送。
对于消息组而言,为了防止在点对点模式中,一个组的消息被不同的消费者分别接收,那么可以通过设置
msg.setStringProperty("JMSXGroupID", "GROUP1");
JMSXGroupID属性是JMS标准定义的。它是用来保证,相同的JMSXGroupID的消息被相同的消费者使用。JMS会根据系统已经分配过的消费者的GROUPID来对比,如果存在那么消息就发送给这个消费者,如果不存在,JMS会从消费者中选取一位,并为这位消费者分配该ID。
还有一个int的JMSXGroupSeq属性,是支持消息在组的序列号。这个消息是可选的。
事物是有jmsserver提供的,而不是JTA。
JMS事物包括了发送者的事物和接收者的事物。
事物的使用
TopicSession session =
connect.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
第一个参数true要开启事物。
session三个方法
session.rollback()
session.commit()
session.getTransacted()这个方法获取boolean,来确实是否session开启了事物。
连接丢失,JMS是经量自动进行重连,如果无法完成重新连接,会通知客户端。客户端通过接口
public interface ExceptionListener {
void onException(JMSException exception);
}
来监听该通知。
该通知有两种情况
1.JMS服务器重新完成了连接,那么不需发送通知
2.没有完成连接,那么JMS客户端运行时,会产生该通知。
收到该通知后,jms客户端其实可以进行重新连接操作
停用消息队列
Dead Message Queue (DMQ),非JMS标准定义,很多厂商自己实现。DMQ的空间有限,在选择JMS中间件的时候,需要了解该中间件是否支持DMQ,如果支持,就需要编写部分处理DMQ的代码,来防止DMQ空间被填满。
消息确认,通过message.acknowledge();此方法只能在CLIENT_ACKNOWLEDGE模式使用。
该方法的调用,会造成对之前所有的未确定的消息的确定。
另外也可以调用session的recover()方法,来强制要求JMS server重新发送之前未确定的消息。onMessage的运行失败,如抛出异常,也会造成JMS对之前未确定的消息的重新发送。
对于消息组而言,为了防止在点对点模式中,一个组的消息被不同的消费者分别接收,那么可以通过设置
msg.setStringProperty("JMSXGroupID", "GROUP1");
JMSXGroupID属性是JMS标准定义的。它是用来保证,相同的JMSXGroupID的消息被相同的消费者使用。JMS会根据系统已经分配过的消费者的GROUPID来对比,如果存在那么消息就发送给这个消费者,如果不存在,JMS会从消费者中选取一位,并为这位消费者分配该ID。
还有一个int的JMSXGroupSeq属性,是支持消息在组的序列号。这个消息是可选的。
事物是有jmsserver提供的,而不是JTA。
JMS事物包括了发送者的事物和接收者的事物。
事物的使用
TopicSession session =
connect.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
第一个参数true要开启事物。
session三个方法
session.rollback()
session.commit()
session.getTransacted()这个方法获取boolean,来确实是否session开启了事物。
连接丢失,JMS是经量自动进行重连,如果无法完成重新连接,会通知客户端。客户端通过接口
public interface ExceptionListener {
void onException(JMSException exception);
}
来监听该通知。
该通知有两种情况
1.JMS服务器重新完成了连接,那么不需发送通知
2.没有完成连接,那么JMS客户端运行时,会产生该通知。
收到该通知后,jms客户端其实可以进行重新连接操作
停用消息队列
Dead Message Queue (DMQ),非JMS标准定义,很多厂商自己实现。DMQ的空间有限,在选择JMS中间件的时候,需要了解该中间件是否支持DMQ,如果支持,就需要编写部分处理DMQ的代码,来防止DMQ空间被填满。
发表评论
-
activemq in action 翻译
2014-11-20 10:45 862http://jackyin5918.iteye.com/ca ... -
高并发
2014-11-16 21:58 1603垂直扩展 垂直扩展是一种用于增加单个ActiveMQ代理连接数 ... -
删除不活动的队列(Delete Inactive Destinations)
2014-11-16 16:41 1361一般情况下,ActiveMQ的queue在不使用之后,可以通过 ... -
代理网络中消息传递
2014-11-13 21:21 799常见的方式是让所有客户端都连接到一个中心代理,而这不是使用消息 ... -
企业部署
2014-11-13 14:26 696主从备份方式 多个代理 ... -
REST和AJAX
2014-11-12 17:01 795REST 通过activemq提供的servlet < ... -
安全机制
2014-10-15 15:22 1251ActiveMQ中所有安全相关的概念都是通过插件的形式实现的. ... -
与spring结合
2014-10-15 14:06 795在Spring中嵌入ActiveMQ有四种方式:纯Spring ... -
activemq 消息存储
2014-10-13 17:03 2348JMS规范支持两种方式分发消息:持久化和非持久化。Active ... -
ActiveMQ配置 连接activemq
2014-10-08 10:13 39069activemq代理 JMS代理(如ActiveMQ bro ... -
ActiveMQ简介
2014-10-08 09:49 780支持跨平台跨语言等特点,由于它是用JAVA实现的一套中间件,跨 ... -
jms-spring
2014-09-30 10:37 938同步接收和同步发送的情况(使用JNDI) 异步接收消息 ... -
过滤器与消息选择器
2014-09-28 23:08 711过滤器 String filter = &quo ... -
发布订阅模式
2014-09-28 11:52 1029特点 1.通过话题通道进行交互。 2.可以有多个订阅者,订阅者 ... -
jms-点对点
2014-09-27 23:45 993在点对点模式中,消息创建者称为发送者,消息消费者称为接收者。 ... -
jms-message对象
2014-09-26 14:40 1213message必须通过session创建,以便完成对应的初始化 ... -
jms基础,与例子
2014-09-24 22:14 1019MOM,面向消息中间件的交互模式 各个系统间,可以认为 ... -
jms的两种模式
2014-09-23 22:49 2282JMS有两种通信方式 P2P,点对点 方式和 发布/订阅模式P ...
相关推荐
2. **事务管理**:JMS支持本地事务和全局事务,允许开发者根据业务需求选择合适的事物管理策略,确保消息的可靠性和一致性。 3. **持久化**:JMS提供了持久化选项,即使在消息服务器重启后,未确认的消息仍然可以被...
介绍了Spring的事务机制、事物抽象、内部事务和外部事物,以及常用的几种事务管理的实现,包括DataSource、JPA、JMS、JTA都通过实例进行说明。还有XA以及两阶段提交,并通过实例演示了使用JTA,通过两阶段提交,实现...
本文将深入探讨“事物学习笔记二”中关于Java事务的理解,旨在帮助读者更好地掌握这一关键概念。 首先,事务(Transaction)是数据库操作的基本单位,它确保一组数据库操作要么全部成功,要么全部失败,从而保证...
在Java应用程序中,特别是在企业级应用服务(EJBs)、JMS、JTA以及Spring框架中,Atomikos事务管理器扮演着至关重要的角色。它实现了Java Transaction API (JTA),允许开发者在多资源、多数据库的环境中进行复杂的...
在分布式环境中,Hibernate可以使用JTA进行全局事务管理,允许跨多个资源(如数据库、JMS队列等)的事务协调。 ### 7. Spring与Hibernate事务整合 Spring提供了一套强大的事务管理机制,可以与Hibernate无缝集成,...
它支持多种数据源,如JDBC数据库、JMS消息队列、甚至是NoSQL存储,能够确保跨这些系统的操作要么全部成功,要么全部回滚,遵循ACID(原子性、一致性、隔离性和持久性)原则。 实战Atomikos的JTA事务,首先需要在...
- **事物表示法**:结构事物、行为事物、分组事物、注释事物。 - **图形**:类图、用例图、顺序图等。 - **公共机制**:规格说明、命名、可见性、一致性。 - **USECASE**:描述系统的行为。 - **对象类图**:...
它基于Java语言实现,利用JNDI、JTA、JMS等技术提供分布式计算环境下的服务。 - **SessionBean与EntityBean的区别**: - **SessionBean**:用于管理业务逻辑,分为有状态(Stateful Session Bean)和无状态(Stateless...
JAVA EE技术jsp Javabean 小服务程序JNDI :使用配置文件配置数据库方便使用的规范JPA :用于定义和数据库交互的类的规范-Hibernate框架-SpringData jpa(springboot模块) JMS :用于异步通信的规范(适用于c /...
- **定义**:抽象是指在编程中通过提取事物的本质属性和行为,忽略非本质细节的过程。 - **目的**:专注于核心功能,简化复杂度。 - **应用**:通过接口或抽象类实现。 **2. 继承** - **定义**:继承是一种让一个...
- **定义**:抽象是指在设计阶段只关注事物的本质特征,忽略次要的细节。这种思想允许开发者集中精力处理核心问题,而不是陷入不必要的细节之中。 - **目的**:提高系统的可维护性和复用性。 - **分类**:抽象...
- **JMS (Java Message Service)**: 支持消息驱动的bean,允许异步通信和解耦。 **7. ** **测试** **(Testing)** - 提供了测试支持类,如Mockito集成,使得单元测试和集成测试变得更加简单。 **8. ** **事物管理...
- **定义**: 面向对象分析与设计是基于面向对象编程的一种系统开发方法论,其目的是通过对象来抽象和模拟现实世界中的事物,进而解决实际问题。 - **涉及模式**: - **GOF(Gamma, Helm, Johnson, Vlissides)**:这...
- 抽象是面向对象编程中的一个重要概念,它指的是从现实世界的事物中提取出共同的、本质的特性,而忽略非本质的、无关的细节。在软件开发中,抽象有助于简化复杂度,使开发者能够专注于解决具体问题而不是陷入细节...
- **事物表示法**:结构事物、行为事物等。 - **基本联系**:关联、泛化、依赖等。 - **图形**:类图、序列图、活动图等。 **3.3 OMT方法** OMT(Object Modeling Technique)是一种面向对象的建模方法,主要包括...
Atomikos,是一个基于Java的开源事务管理器,提供了事务管理和连接池,不需要应用服务器支持,支持JDBC和JMS事务,能提供对Spring,Hibernate的集成,有兴趣多了解的可以直接参考说明文当,有详细的介绍和使用说明。
抽象是面向对象编程中的一个重要概念,指的是在设计系统时只关注事物的本质特征,而忽略那些不重要的细节。它允许开发者创建一个简化版本的概念模型,使得系统的理解和实现更为简单。 **作用:** 1. **过程抽象**:...