消息属性
应用程序特定属性
例如:
TextMessage message=session.createTextMessage();
Message.setStringProperty(“username”,username);
JMS定义的属性
JMS为JMS定义的属性保留了JMSX属性名前缀。全套的JMS定义的属性见下表。新的JMS定义的属性可以被增加到JMS最近的版本中。除非另有通知,这些支持是可选的。ConnectionMetaData.getJMSXPropertyNames() 返回了所有连接所支持的JMSX属性名。无论JMSX属性是否被连接所支持,这些属性都可以被消息选择器引用。 如果JMSX属性没有出现在消息中,它们被按照所有未存在的属性一样对待。在特定消息中存在的JMS定义的属性是由JMS提供者根据自身如何控制这个属性的用途来进行设置。
JMS 定义的属性
名字 | 类型 | 设置者 | 用法 |
---|---|---|---|
JMSXUserID | String | 发送时提供商设置 | 发送消息的用户标识。 |
JMSXAppID | String | 发送时提供商设置 | 发送消息的应用标识。 |
JMSXDeliveryCount | int | 发送时提供商设置 | 转发消息重试次数, 第一次是1,第二次是 2, …。 |
JMSXGroupID | String | 客户端 | 消息所在消息组的标识。 |
JMSXGroupSeq | int | 客户端 | 组内消息的序号第一个消息是1,第二个是2, …。 |
JMSXProducerTXID | String | 发送时提供商设置 | 产生消息的事务的事务标识。 |
JMSXConsumerTXID | String | 接收时提供商设置 | 消费消息的事务的事务标识。 |
JMSXRcvTimestamp | long | 接收时提供商设置 | JMS转发消息到消费者的时间。 |
JMSXState | int | 提供商 | 假定存在一个消息仓库,它存储了每个消息的单独拷贝,且这些消息从原始消息被发送时开始。每个拷贝的状态有:1(等待),2(准备),3(到期)或4(保留)。由于状态与生产者和消费者无关,所以它不是由它们来提供。它只和在仓库中查找消息相关,因此JMS没有提供这种API。 |
提供者指定的属性
JMS保留了JMS_