ActiveMQ注意事项

1,consumer,connection何时关闭

1)当我们在使用设置监听的方式接收消息的时候,不可以在程序中主动关闭consumer,因为消息是异步接收的,此时如入关闭,会造成在没有接收消息的情况下消费者就被关闭,这个监听器也就没有什么意义了。

2)使用receive()方式接收消息,如果在接受到消息后不关闭当前连接,那么当我们在新建一个连接的时候(使用线程创建新的连接),无法从消息队列中拿到消息。


接收的结果为:


虽然,此时我们已经建立了新的连接,但是由于在原先连接consumerreceive()方法处处于阻塞状态,所以,新的连接还是无法接受到MQ消息。

如果使用循环使当前的consumer再次调用receive()方法,就可以接受到新的消息了。

2,session不同的创建方式

1) 当我们使用事务的方式创建session的时候,在发送完MQ消息后,必须添加session.commit(),否则,这些发送的消息不会加入消息队列。

如图消息被打印,但是,在队列中却差看不到。



添加session.commit();


2) 使用非事务的方式创建session,没有session.commit(),也被加入消息队列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值