当发送消息的类型为Object时;
生产者和消费者中的Object对象的全限定类名和系列号必须相同;否则不认为是同一个Object对象
1.ActiveMQ事务消息和非事务消息
1.事务消息:创建会话session使用transaction=true
事务消息必须在发送和接收完消息后显式的调用session.commit();
2.非事务消息:创建会话session使用transaction=false
2.ActiveMQ消息确认机制
消息只有在确认之后,才认为已经被成功消费,然后消息才会从队列或主题中删除
消息的成功消费通常包括三个阶段
客户接收消息
客户处理消息
消息被确认
四种消息确认方法:
1.AUTO_ACKNOWLEDGE
客户成功从receive方法返回时,会话自动确认消息
2.CLIENT_ACKNOWLEDGE
客户通过显式调用消息的acknowledge方法确认消息
3.DUPS_OK_ACKNOWLEDGE
不是必须确认,是一种懒散的消息确认,消息可能会重复发送,在第二次重新传送消息时,消息头的JMSRedelivered会被置为true标识当前消息已经传送过一次,客户端需要进行消息的重复处理控制。
4.SESSION_TRANSACTED
事务提交并确认。
3.ActiveMQ消息持久化与非持久化
//设置发送的消息是否需要持久化
messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//不持久化
messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT);//持久化的,当然activemq发送消息默认都是持久化的
4.