转自:http://blog.sina.com.cn/s/blog_7227719a0100qwb7.html
在创建session时可以选择开启事务控制。所谓事务控制,即将消息生成发送,或接受,消费操作放入一个事务中。但不能同时控制发送与消费这一整个过程。因为事务都是基于一个session下的操作。
如下代码即开启了事务处理:
ActiveMQSession session = connection.createSession(true,Session.CLIENT_ACKNOWLEDGE);
在事务状态下进行发送操作,消息并未真正投递到中间件,而只有进行session.commit操作之后,消息才会发送到中间件,再转发到适当的消费者进行处理。如果是调用rollback操作,则表明,当前事务期间内所发送的消息都取消掉。此时无论commit或rollback,会重新打开一个事务。
与此同时,在rollback之后,随着新的事务打开,一些持久化的消息会重新接收。原因在于当传送模式处于持久话的状态,产生的消息如若没有被及时签收确认,则消息会被中间件持久化。此时,当客户端重新连接或新的事务开启,消息会被再次发送到客户端。
为什么commit之后,不会有持久的消息重新传送呢?
原因在于commit操作会自动将为签收确认的消息进行签收确认,如果是当前接收但未签收确认的消息,都会被确认处理。因而在commit之后不会有持久化的消息出现。
相关推荐
ActiveMQ的特性包括事务处理、持久化、消息优先级和时间戳,以及基于网络的集群能力。 二、ActiveMQ的配置 1. **配置文件**:ActiveMQ的主要配置文件是`conf/activemq.xml`。这个XML文件定义了ActiveMQ服务器的行为...
8. 持久化与消息存储:说明ActiveMQ如何持久化消息,保证系统重启后消息不会丢失。 9. 性能调优:提供关于配置调整、缓存管理和网络优化等方面的建议,以提升ActiveMQ的性能。 通过学习和实践`activemq-example`,...
ActiveMQ 是一个开源的消息中间件,它遵循 Java Message Service (JMS) 规范,用于在分布式系统中传输消息。ActiveMQ 提供高效、可靠和可扩展的消息传递服务,支持多种协议,包括 OpenWire、AMQP、STOMP、MQTT 和 ...
4. **连接管理**:说明如何管理和控制ActiveMQ的连接,例如连接池和会话管理。 5. **消息类型和属性**:介绍不同类型的消息(文本、二进制、对象消息等)及其属性设置,以及如何处理它们。 6. **消息 selectors**:...
2. **Readme文件(readme.txt)** - 这是项目或实例的说明文档,可能包含安装指南、运行步骤、注意事项以及常见问题解答。通过遵循readme中的指示,用户可以快速上手并运行提供的示例。 3. **Eclipse工程** - `JMS`...
为了进一步实践和理解这三种模式,可以查看提供的"activeMq"压缩包文件,它可能包含示例代码、配置文件和说明文档,帮助你亲手操作并深入理解ActiveMQ的消息传递机制。通过编写和运行这些示例,你将能够更好地掌握...
- **事务处理**:了解如何在ActiveMQ中使用JMS事务保证消息的一致性。 4. **案例说明文档** - **配置详解**:文档可能包含ActiveMQ服务器的配置说明,如broker配置、网络配置、安全性设置等。 - **应用场景**:...
ActiveMQ是一款开源的消息中间件,它基于JMS(Java消息服务)规范实现,能够提供高效的、可靠的...对于微服务架构来说,ActiveMQ还能够支持服务之间的分布式事务管理,这也是构建高可用分布式应用系统的重要组成部分。
`readme.txt`可能包含了一些关于如何使用这些代码示例的说明,包括如何配置ActiveMQ服务器地址、如何创建消息以及如何启动和停止producer和consumer。开发者应按照这些指南进行操作,以便了解ActiveMQ在实际项目中的...
- **消息生产者和消费者**: 说明了如何发送和接收消息。 - **JMS 选择器**: 提供了一种过滤消息的方法。 - **文本消息**: 如何发送和接收文本格式的消息。 - **二进制消息**: 介绍了如何处理非文本格式的数据。 - **...
- **事务支持**:在Java EE环境中,可以利用JTA事务管理,确保消息传递的原子性和一致性。 总的来说,`activemq-ra-4.0-M3.jar`是Java EE应用与ActiveMQ集成的关键组件,它简化了消息中间件与企业应用的交互,使得...
5. **事务管理**:ActiveMQ支持本地JMS事务和分布式事务(XA),确保消息传递的一致性和准确性。 6. **网络拓扑**:ActiveMQ支持复杂的网络拓扑结构,如broker集群和代理代理连接,可以构建跨地域的分布式消息系统...
在`activeMqApi.chm`文件中,你将找到关于这些接口和概念的详细说明,包括它们的使用方法、参数说明、返回值以及可能抛出的异常。这份文档是开发者学习和调试ActiveMQ应用程序的重要参考,它将帮助你理解和利用...
集成ActiveMQ到Spring可以带来很多好处,比如自动管理连接、会话和消费者,以及简化错误处理和事务管理。这种方式使得在Web应用中使用ActiveMQ变得更加方便。 在实际应用中,ActiveMQ不仅可以作为消息传递的基础,...
4. **事务支持**:ActiveMQ 支持事务处理,确保消息的一致性和完整性。 5. **主题与队列**:支持发布/订阅模式的主题和点对点模式的队列,满足不同场景的需求。 6. **管理工具**:内置Web控制台便于用户监控和管理...
- 安全性:说明如何配置用户认证和授权,保护ActiveMQ资源不被未经授权的访问。 - 性能调优:涵盖如何优化ActiveMQ以提高消息处理速度和降低延迟,如调整内存设置、线程池大小等。 - 监控:指导如何通过日志、JMX...
**ActiveMQ入门详解** ActiveMQ是Apache组织开发的一款开源的消息中间件,它是Java ...随着你对ActiveMQ的深入学习,你将能更好地理解和利用它的特性,如持久化、事务、优先级和时间戳等,以优化你的分布式系统。
ActiveMQ是一款开源的消息中间件,支持多种消息协议,包括AMQP、STOMP等,并且具备丰富的特性如持久化消息存储、事务支持等。在分布式系统中,为了提高系统的可用性和扩展性,通常会采用ActiveMQ集群来提供更强大的...
6. **事务支持**:JMS 事务支持确保消息的准确投递,提供了事务的原子性和隔离性。 **DEMO 演示步骤** 1. **安装 ActiveMQ**:首先,需要下载并安装 ActiveMQ。启动 ActiveMQ 服务器,通常通过运行 `bin/activemq ...
同时,还涉及到服务化的目标、服务子系统划分的考虑、服务接口设计原则,以及对Zookeeper、Redis、ActiveMQ和FastDFS的提及,虽然没有详细操作说明,但这些组件是构建高性能、高可用性分布式系统的基石。在实际部署...