JMS消息

1.消息识别
     如果客户机指定JMS 使用者的消息应被显式识别的话,那么JMS 消息也支持使用识别方法。如果客户机使用自动识别的话,那么将忽略识别调用。
     消息识别有三种类型。消息识别的类型是在会话创建时指定的。
     (1)AUTO_ACKNOWLEDGE
     在AUTO_ACKNOWLEDGE 模式中,当消息成功从调用返回到接收器,或消息使用者注册的处理消息的消息侦听器成功返回时,消息会话将自动识别消息。
     (2)CLIENT_ACKNOWLEDGE
     利用CLIENT_ACKNOWLEDGE 模式,客户机通过调用消息上的识别方法显式并确认消息。当使用CLINET_ACKNOWLEDGE 模式时,我们在处理消息过程中必须注意避免大量未识别消息的积累,未识别消息的积累可能导致资源耗尽,带来失败。
     (3)DUPS_OK_ACKNOWLEDGE
     DUPS_OK_ACKNOWLEDGE 模式命令会话迟钝地确认消息送达。如果JMS 失败的话,其结果就可能是重复消息发送。允许处理重复消息的使用者应当使用这种模式。在客户机允许重复消息的情况下,利用这种模式可以获取一些效能改善,因为会话在避免重复消息时的开销较小。

2. 用消息选择器库
     消息选择器可以在消息上设置为用户定义的属性。在发送或发布方,我们可以通过利用名值对的设置属性方法来设置属性名和它的值。为了设置名为“testProperty”、值为100 以及数据类型为整数的属性,我们可以在对象消息上如下设置属性:messaget.setIntProperty(“testProperty”, 100) ;设置属性方法用到两个自变量。第一个自变量是类型字符串,也就是属性值的名。第二个自变量是属性值。我们应当根据希望设置值的数据类型选择利用合适的设置属性方法(setIntProperty 用于整数值,setStringProperty 用于字符串类型值等)。在消息使用者方,我们应当使用具有合适选择标准的消息选择器字符串。选择标准是在
创建消息使用者的时候指定的。
     我们使用的选择标准是选择属性名为“testProperty”和值为100 的消息发送。我们可以
用如下方法达到此目的:
String selector = “testProperty = 100 “ ;queueReceiver = session.createReceiver(queueName, selector).用选择器创建的消息使用者获取属性名为“testProperty”且值为100 的消息。
一旦创建与消息使用者相关联的选择器,JMS 规范就不允许它改变。如果您需要不同标准的消息接收器的话,那么您可能需要创建另外的消息接收器。一旦用消息选择器创建了消息接收器,您就可以利用消息使用者上的getMessageSelector()方法来检查选择器值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值