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的头部和属性已经讨论完了。头部和属性对于预订了消息的客户端很重要,它可以用来帮助过滤消息。
分享到:
相关推荐
JMS规范v1.1的官方原版,大家学习ActiveMQ的时候可以进行参考。详细介绍了包括连接、session、生产者、消费者、topic、queue等概念。深入学习的必备手册。
jms规范2.0版本,包含中英文文档和java doc
JMS1.1规范(中文) 免费下载 找找找了半天才找到
JMS规范PDF
JMS规范和简明教程JMS规范和简明教程JMS规范和简明教程JMS规范和简明教程JMS规范和简明教程JMS规范和简明教程
作者:卫建军 Java 是当前 IT 领域中比较流行的技术之一。J2EE 是当前比较流行的企业级应用架构。 本人一直致力于 J2EE 架构的学习和研究,但是总是对英文文档...持久化规范》和《JMS1.1 规范》。希望对大家有所帮助。
JMS规范教程,介绍jms的入门,配置,及其实现
JMS规范1.1,本规范描述了JMS的目标和功能。 JMS给java程序员提供了一种通用的方式来创建、发送、接收和查看企业消息系统 消息。
JMS规范,如果想深入了解JMS的,可以看一下
JMS1.1规范(中文版) 虽然不是什么好好的资源,希望对初心者有一点帮助。
JMS规范培训教程 SUN MQ
JMS 规范培训教程 手册 教程 指南 pdf
JMS规范教程,中文版。本文内容译自 SUN JMS1.1 规范的主要部分及 SUN MQ 参考资料整理制作而成,可供 JMS 初学者入门。
JMS绑定规范JMS绑定规范JMS绑定规范JMS绑定规范JMS绑定规范JMS绑定规范JMS绑定规范JMS绑定规范
JMS规范教程,学习JMS的朋友可以好好看看
JMS规范培训教程以及JMS源代码,希望对大家有所帮助
activemq中间件视频 jms
JMS规范培训教程,帮助了角JMS
JMS 为 Java 程序提供了一种创建、发送、接收和读取企业消息系统中消息的通用方法。 企业消息产品(有时也被称为面向消息的中间件MOMMessageOriented Middleware),正成为一种用来整合公司内部操作的重要组件。它们...