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()方法来检查选择器值。
分享到:
相关推荐
**JMS消息队列机制详解** Java Message Service(JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它定义了生产、发送、接收和读取消息的标准API,使得不同的消息中间件提供商可以提供兼容的实现,便于...
**Spring与JMS消息传递** 在Java世界中,Java Message Service (JMS) 是一个标准接口,用于在分布式环境中发送和接收消息。Spring框架提供了一种简单而强大的方式来集成JMS,使得开发者可以轻松地在应用中实现异步...
集成Spring和WebLogic 9.2发送JMS消息的步骤如下: 1. **配置JMS连接工厂**:在Spring的配置文件中,你需要定义一个JMS连接工厂。这通常通过`jee:jndi-lookup`标签完成,指定在WebLogic中注册的JMS连接工厂JNDI名称...
JMS消息处理优化方案
在这个主题中,我们将深入探讨JMS消息的发送和订阅,以及如何通过Apache Camel这一集成框架来实现。 **JMS核心概念** 1. **消息**: JMS中的基本单元,它包含了要传递的数据。 2. **生产者**: 创建并发送消息的应用...
本文将详细解析如何通过编码实现MQ连接池,以便有效地管理和发送JMS消息。 首先,理解JMS的基本概念是至关重要的。JMS提供两种主要的消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/...
### 消息中间件与JMS消息服务详解 #### 一、引言 随着分布式系统的规模和复杂度不断增加,传统的远程过程调用(RPC)中间件技术如CORBA、DCOM、RMI等逐渐暴露出局限性。这些技术通常采用同步通信方式,这导致客户和...
本篇将重点讲解如何利用soapUI 3.5这个强大的接口测试工具来测试JMS消息。 首先,Java消息服务(JMS)是一种API,它提供了一种标准的方式来访问消息中间件,使得应用程序可以在不同的平台之间发送和接收消息。JMS...
标题"Spring+weblogic接收JMS消息"涉及到的核心知识点是Spring框架与WebLogic Server之间的整合,以及如何利用Spring来处理JMS消息。下面将详细讲解这两个方面的内容。 1. **Spring对JMS的支持**: - Spring通过`...
本压缩包文件“消息中间件和JMS消息服务.rar”可能包含了关于这两个主题的详细资料,旨在帮助读者深入理解其概念、工作原理以及实际应用。 消息中间件是一种软件,它允许应用程序之间通过消息进行通信,而不是直接...
内容为JMS消息中间件在数据集成系统中的研究与应用,格式为CAJ,页数为为54
**J2EE中的JMS消息服务** Java Message Service(JMS)是Java平台上的一个标准接口,用于在分布式环境中提供异步的消息传递服务。它允许应用程序创建、发送、接收和读取消息,使得应用程序可以解耦,提高系统的可...
Java Message Service(JMS)是Java平台中用于创建、发送、接收和读取消息的应用程序接口。它提供了一种标准的方式来解耦...在实践中,理解并熟练运用JMS消息服务代码,能够有效提升Java企业级应用的开发效率和质量。
在“mq、jms消息处理jar包”中,包含的jar文件通常是为了让Java应用能够与IBM MQ交互,使用JMS API。这些jar包可能包括以下部分: 1. `com.ibm.mq.allclient.jar`:这是IBM MQ客户端库的核心,包含了与MQ服务器通信...
消息中间件和JMS消息服务在IT行业中扮演着至关重要的角色,尤其是在构建大型分布式系统时。传统的RPC中间件如CORBA、DCOM和RMI虽然广泛应用,但它们在处理复杂性和同步通信方面存在局限。为了解决这些问题,面向消息...
本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...
【JMS消息服务详解】 消息服务是一种在分布式环境中支持软件组件和应用程序之间松耦合通信的机制。这种通信模式允许组件或应用之间不需同时在线,数据可以是文本、数值,甚至在Java应用中可以包含对象。使用消息...
这篇博客“Spring JMS 消息处理-基于JNDI”将深入探讨如何在Spring应用中使用JMS进行消息处理,并利用JNDI(Java Naming and Directory Interface)来查找和配置消息资源。 JMS是Java平台上的一个标准接口,它定义...
文件名列表中的"SimpleProducer.java"可能是一个简单的JMS消息生产者示例,它将创建并发送消息到JMS队列或主题。"SimpleAsynchConsumer.java"可能是异步消息消费者,它在后台监听并处理到来的消息,而不会阻塞当前...
标题中的“Spring整合Blazeds实现ActiveMQ JMS消息服务”指的是在Java应用程序中使用Spring框架与Blazeds(一个Flex和Java之间的消息传递中间件)集成,通过ActiveMQ(一个流行的开源JMS提供商)来实现消息队列服务...