jms笔记

 

Publish-and-subscribe模式:topic
一对多,推送消息
Point-to-point模式:queue
只保证一个接收者收到,要求客户端自己查询获取。
依据jms规范,消息总是要保证送达的,中间的如有短线等故障,再次连接后任然可以获得。

在容器中,不要使用SessionBean或EntityBean作为消息接收者,这关系到线程阻塞问题,标准的方法是使用MessageDriveBean来接收消息。

MDB是无状态的,事务的。
selector是依据消息属性来选择的,使用sql-92 where 后面的语法.
Acknowledge mode是用以判断消息已发送的模式,Auto-acknowledge 和 Dups-ok-acknowledge。
Auto-acknowledge是消息一旦发送给MDB就通知
Dups-ok-acknowledge则说明通知时间无所谓并允许重复发送(当JMS认为消息发送失败时)。这种主要是为网络性能考虑,实际上作用不大。
并且这个设置只当bean-managed transactions, or with the container-managed transaction attribute NotSupported 时才起作用,一般都是容器管理的,会忽略这个配置。

【wsad设置JMS】
需要在设置ConnectionFactory和Queue/Topic
对于Queue要在如下图这里添加。

jms-wsad

注意createQueueSession(false, 0);虽然一般建议使用true, 但是这里是简单的测试,上下文没有事务,所以如果用true会导致rollback,故此处设为false.
topic一直没试通,配置还是在控制台里面配置才配成功的,但是代码里面又抛异常……


Total views.

© 2013 - 2018. All rights reserved.

Powered by Hydejack v6.6.1