跳到主要内容

消息属性

以下是可以设置在JMS消息上的JMS属性:

  • 死信队列资格
  • 传递次数
  • 传递模式
  • 单一传输
  • 丢弃指示
  • 省略资格
  • HTTP内容编码
  • HTTP内容类型
  • 回复消息
  • 主题序列号
  • XML负载
  • 端到端负载压缩

死信队列资格

此属性指定发送的消息是否有资格进入死信队列(DMQ)。有关详细信息,请参阅死信队列资格。

  • 类型:布尔值
  • 格式:有效值为[true|false]。默认情况下,此属性设置为false
属性源(按优先级降序)示例
消息为每条发送的消息设置DMQ资格。
Message.setBooleanProperty(SupportedProperty.SOLACE_JMS_PROP_DEAD_MSG_QUEUE_ELIGIBLE, true)
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的默认DMQ资格框设置。
CLI/SEMP - 通过属性列表“messaging‑properties”中的属性“default‑dmq‑eligible”设置。

死信队列资格属性

传递次数

此属性指示这是代理第1次、第2次……或第n次尝试将此消息传递给消费者。这是一个只读属性。要使用此属性,您必须为所需的队列和主题端点启用它。

如果您未启用此属性,则传递次数属性在首次传递尝试时包含值1,在后续尝试中包含值2

  • 类型:整数
属性源示例
消息Message.getIntProperty("JMSXDeliveryCount")

传递次数属性

传递模式

此属性指定发送消息的传递模式。

  • 类型:枚举
  • 格式:[DeliveryMode.NON_PERSISTENT|DeliveryMode.PERSISTENT]
  • 默认值:持久
属性源(按优先级降序)示例
JMS API为每条发送的消息设置传递模式。
MessageProducer.send(myTopic, message, DeliveryMode.NON_PERSISTENT, 0, 30000)
JMS API为生产者设置默认传递模式。
MessageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT)
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的默认传递模式框设置。
CLI/SEMP - 通过属性列表“messaging‑properties”中的属性“default‑delivery‑mode”设置。

传递模式属性

单一传输

此属性指定发送的消息是否为DTO。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源(按优先级降序)示例
消息Message.setBooleanProperty(SupportedProperty.SOLACE_JMS_PROP_DELIVER_TO_ONE, true)
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的单一传输框设置。
CLI/SEMP - 通过属性列表“deliver‑to‑on‑properties”中的属性“deliver‑to‑one”设置。

单一传输属性

丢弃指示

此属性指定使用直接传输发布的非持久消息是否在当前接收消息之前已被丢弃。这是一个只读属性。

由持久消费者接收的消息,或使用保证传输的非持久消费者接收的消息 - 即未启用直接传输 - 不会有丢弃指示属性。

有关详细信息,请参阅消息丢弃通知。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源示例
消息Message.getBooleanProperty(SupportedProperty.SOLACE_JMS_PROP_MSG_DISCARD_INDICATION)

丢弃指示属性

省略资格

此属性指定发送的消息是否被标记为有资格进行省略。有关详细信息,请参阅省略资格。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源(按优先级降序)示例
消息Message.setBooleanProperty(SupportedProperty.SOLACE_JMS_PROP_ELIDING_ELIGIBLE, true)
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的默认省略资格框设置。
CLI/SEMP - 通过属性列表“messaging‑properties”中的属性“default‑eliding‑eligible”设置。

省略资格属性

HTTP内容编码

此属性指定与HTTP客户端交互的HTTP内容编码头值。

  • 支持版本:Solace PubSub+ 7.1及以上版本
  • 类型:字符串
  • 格式:最多252个ASCII字符。
  • 默认值:null
属性源示例
消息Message.setStringProperty(SupportedProperty.SOLACE_JMS_PROP_HTTP_CONTENT_ENCODING, “gzip”)

HTTP内容编码属性

HTTP内容类型

此属性指定与HTTP客户端交互的HTTP内容类型头值。

  • 支持版本:Solace PubSub+ 7.1及以上版本
  • 类型:字符串
  • 格式:最多252个ASCII字符。
  • 默认值:null
属性源示例
消息Message.setStringProperty(SupportedProperty.SOLACE_JMS_PROP_HTTP_CONTENT_TYPE, “application/json”)

HTTP内容类型属性

回复消息

此属性指定消息是否是对使用直接传输传递模式的请求消息的回复。

有关详细信息,请参阅省略资格。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源示例
消息Message.setBooleanProperty (SupportedProperty.SOLACE_JMS_PROP_IS_REPLY_MESSAGE, true)
将直接消息标记为对直接传输请求的回复。由回复者设置。 Message.getBooleanProperty (SupportedProperty.SOLACE_JMS_PROP_IS_REPLY_MESSAGE, true) 测试此消息是否是对直接传输请求的回复。

回复消息属性

主题序列号

此属性指定事件代理应为传递给持久消费者或使用保证传输的非持久消费者的消息分配主题序列号(即未启用直接传输)。这是一个只读属性。

此属性已被弃用,不应使用。

  • 类型:长整型
  • 格式:有效值为1到9,223,372,036,854,775,807
  • 默认值:null(即,不进行序列编号)
属性源示例
消息事件代理自动分配主题序列号。
使用持久消费者的接收客户端可以使用Message.getLongProperty(SupportedProperty.SOLACE_JMS_PROP_TOPIC_SEQUENCE_NUMBER)来获取消息的主题序列。

主题序列号属性

XML负载

此属性控制作为JMS TextMessages发布的消息是否将其TextMessage字符串放置在消息的XML负载中(属性设置为true)或二进制附件中(属性设置为false)。

有关详细信息,请参阅向单一消费者传递消息。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源(按优先级降序)示例
消息Message.setBooleanProperty(SupportedProperty.SOLACE_JMS_PROP_ISXML, true)
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的文本消息是XML框设置。
CLI/SEMP - 通过属性列表“messaging‑properties”中的属性“text‑msg‑xml‑payload”设置。

XML负载属性

端到端负载压缩

启用负载压缩并设置压缩级别的属性键。客户端发布的消息的负载可应用的有效负载压缩级别值为0到9。

有关详细信息,请参阅端到端负载压缩。

  • 类型:整数
  • 格式:0到9
  • 默认值:0
属性源(按优先级降序)示例
JNDI连接工厂CLI/SEMP - 通过属性列表“messaging‑properties”中的属性“payload-compression-level”设置。
初始上下文<br>Hashtable env = new Hashtable();<br>env.put(SupportedProperty.SOLACE_JMS_PAYLOAD_COMPRESSION_LEVEL, 9);<br>InitialContext initialContext = new InitialContext(env);<br>
JNDI属性文件Solace_JMS_PayloadCompressionLevel=9

负载压缩属性