`
JFires
  • 浏览: 42989 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

2.4JMS规范(三)

阅读更多

JMS提供者可选头部

  • JMSRedelivered----用来指出一条消息被投递但没有收到应答的情况。这种情况可能是消费者应答失败,或者JMS提供者没有被通知到(例如异常发生使得应答消息没有到达JMS提供者)。

JMS消息属性

    属性是消息的一些简单的额外的头部。JMS提供通用的方法来设置自定义头部。这些通用方法提供对各种Java原始类型的支持,包括Boolean,byte,short,int,long,float,double及String对象。详情请看下面Message接口方法清单:

Listing 2.3 The JMS Message interface

public interface Message {
...
boolean getBooleanProperty(String name) throws JMSException;


byte getByteProperty(String name) throws JMSException;


short getShortProperty(String name) throws JMSException;


int getIntProperty(String name) throws JMSException;


long getLongProperty(String name) throws JMSException;


float getFloatProperty(String name) throws JMSException;


double getDoubleProperty(String name) throws JMSException;


String getStringProperty(String name) throws JMSException;


Object getObjectProperty(String name) throws JMSException;
...
Enumeration getPropertyNames() throws JMSException;


boolean propertyExists(String name) throws JMSException;
...


void setBooleanProperty(String name, boolean value) throws JMSException;


void setByteProperty(String name, byte value) throws JMSException;


void setShortProperty(String name, short value) throws JMSException;


void setIntProperty(String name, int value) throws JMSException;


void setLongProperty(String name, long value) throws JMSException;


void setFloatProperty(String name, float value) throws JMSException;


void setDoubleProperty(String name, double value) throws JMSException;


void setStringProperty(String name, String value) throws JMSException;


void setObjectProperty(String name, Object value) throws JMSException;


.. }

    有两个方法对所有属性有用,它们是getPropertyNames()和propertyExists()方法。getPropertyName()方法返回一个所有属性的Enumeration,这使得客户端可以很容易地遍历所有属性。propertyExists()方法是用来测试一个属性是否存在该消息中。注意这两个方法是对属性有用,那些JMS规范指定的头部(例如MessageID等)是不能用这两个方法来遍历或测试的。

    总之,现在有三种类型的属性,自定义属性,JMS定义属性,提供者指定属性。

自定义属性

   自定义属性是任意的,是由JMS应用定义的。应用开发者,可以通过下面的一些通用方法(getBooleanProperty()/
setBooleanProperty(), getStringProperty()/setStringProperty()等)来定义各种使用java类型的属性。

JMS定义属性

    JMS规范保留了“JMSX”作为属性名前缀。下面是一些定义了的属性,这些属性都是可选的。

  • JMSXAppID----发生消息应用的ID
  • JMSXConsumerTXID----消费这条消息的事务ID
  • JMSXDeliveryCount----消息参与投递的次数
  • JMSXGroupID----该消息所属的消息组
  • JMSXGroupSeq----该消息在消息组中所处的序列
  • JMSXProducerTXID----生产这条消息的事务ID
  • JMSXRcvTimestamp----JMS提供者将消息投递给消费者的时间
  • JMSXState----用来定义提供者指定的状态
  • JMSXUserID----发送这条消息的用户

    JMS规范只对JMSXGroupID和JMSXGroupSeq这两个属性的用法提供了建议。这两个属性可以用在消息分组/带顺序的消息分组。

提供者指定属性

    JMS预留了JMS_<vendor-name>属性前缀作为提供者指定属性。提供者用这个前缀定义自己的属性。这些属性一般用在提供者指定的非JMS客户端,并且不能用在JMS-to-JMS消息传送中。

    现在JMS的头部和属性已经讨论完了。头部和属性对于预订了消息的客户端很重要,它可以用来帮助过滤消息。

1
2
分享到:
评论

相关推荐

    JMS规范教程pdf

    ### JMS规范教程知识点解析 #### 一、JMS基本概念 **1.1 什么是JMS(JAVA MESSAGE SERVICE)?** JMS,即Java Message Service,是Java平台中的消息服务应用标准,允许应用程序组件通过Java消息服务进行通信。它...

    JMS规范PDF

    ### JMS规范1.1(中文版)关键知识点解析 #### 一、引言 **1.1 摘要** - **主要内容:** 该规范详细介绍了Java消息服务(Java Message Service,简称JMS)的目标及其核心功能。JMS为Java开发者提供了一套统一的...

    jms规范说明

    ### JMS规范详解 #### 一、JMS基础概览 **1.1 何为JMS(Java Message Service)?** JMS,即Java消息服务,是Java平台中的消息中间件规范,它允许应用程序创建、发送、接收和读取消息,从而在两台或多台计算机...

    jms 规范教程

    ### JMS规范教程知识点解析 #### 一、JMS基本概念 **1.1 什么是JMS(JAVA MESSAGE SERVICE)?** JMS,即Java Message Service,是Java平台中的消息服务应用标准,它允许应用程序组件生成、发送、接收以及读取...

    J2EE规范(中文版)

    它包含了各种服务,如Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,为企业应用提供基础架构。 2. **Java EE 兼容性测试套件**:确保Java EE产品(如应用服务器...

    J2EE技术架构规范

    附件一列出了参考的行业标准和第三方软件包,如JDBC、Hibernate等,为具体实现提供参考。附件二则提供了选择Spring和EJB的场景参考指标,帮助开发团队根据项目需求做出合适的技术选型。 综上,J2EE技术架构规范是...

    ActiveMQ中文手册

    1.3 JMS 规范的变迁 4 2.ActiveMQ 4 2.1 Broker 4 2.1.1 运行Broker 4 2.1.2 嵌入式Broker 4 2.1.3 监控Broker 5 2.2 Transport 9 2.2.1 VM Transport 9 2.2.2 TCP Transport 10 2.2.3 Failover ...

    activemq的相关jar文件

    3. **geronimo-spec-servlet-2.4-rc1.jar**:实现了Servlet 2.4规范,是Web服务器和Java应用程序之间交互的基础,可能用于ActiveMQ的Web管理界面。 4. **geronimo-spec-jsp-2.0-rc1.jar**:提供了JavaServer Pages...

    Java_EE_6规范中文版

    2.4 容器 2.5 资源适配器 2.6 数据库 2.7 Java EE标准服务 2.8 互用性 2.9 产品标准的灵活性 2.10 Java EE产品的扩展 2.11 平台角色 2.12 平台协议 2.13 J2EE 1.3中的变化 2.14 J2EE 1.4中的变化 2.15 Java EE 5...

    JBOSS使用指南

    2. JMX规范 3. 基于JBoss来写MBean 3.1 HelloWorld实例 3.2 程序代码 3.3 配置文件jboss-service.xml 3.4 将实例部署到JBOSS 3.5 MBean的效果 s四.EJB3.0使用说明 1. Enterprice JavaBeans(EJB)的概念 1.1 会话 ...

    resin-3.1.9-src

    2.4 JMS(Java Message Service) Resin通过`com.caucho.jms`包实现了JMS接口,允许应用进行消息传递。`MessageServer`类是消息服务的核心,处理消息的生产、消费和队列管理。 2.5 JDBC和JTA Resin支持JDBC数据源和...

    Java EE 6 标准与规范(中文版)

    **2.4 用户验证的必要条件** - 使用HTTP基本认证或表单登录等方式进行用户验证。 **2.5 授权条件** - 定义角色和权限来控制访问。 **2.6 部署标准** - 在部署描述符中定义安全约束。 **2.7 未来的方向** Java...

    JavaEE_5.0规范_简体中文版

    - **Java消息服务 (JMS)**:实现了异步通信。 - **Java命名和目录接口 (JNDI)**:用于查找和定位服务。 - **JavaMail**:支持电子邮件发送。 - **JavaBean活动框架 (JAF)**:用于构建组件模型。 - **XML处理**:提供...

    JBI规范下载,ESB资料

    **2.4 规格化消息交换** - 规格化消息交换机制是JBI的核心,它定义了如何在组件间传递消息。 **2.5 管理** - 包括组件安装、生命周期管理、服务单元部署等方面,确保系统的稳定运行。 **2.6 组件框架** - 提供了...

    Jmeter测试ActiveMQ性能报告

    ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,提供了高效、可靠的消息传递能力。JMS则是一种标准接口,使得应用程序可以与不同的消息中间件进行交互,确保消息的可靠传输。 2. 测试环境...

    JavaEE 5.0规范中文版

    - **Java消息服务 (JMS)**:用于实现消息中间件。 - **Java命名和目录接口 (JNDI)**:提供查找和定位服务的能力。 - **JavaMail**:支持电子邮件发送。 - **JavaBean活动框架 (JAF)**:用于构建JavaBeans组件。 - **...

Global site tag (gtag.js) - Google Analytics