跳到主要内容

消息传递属性

本节讨论与JMS消息传递相关的JMS属性。

Solace JMS的连接池由应用程序设置,不能由事件代理设置。

直接传输

此属性指定是否使用直接传输模式发送非持久消息。

  • 类型:布尔值
  • 格式:[true|false]
  • 值为true时启用直接传输;值为false时禁用直接传输,因此使用保证消息传递模式。
  • 默认值:true
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的传输属性选项卡中的直接传输框设置。
CLI/SEMP - 通过属性列表“transport-properties”中的属性“direct-transport”设置。

直接传输属性

直接传输优化

此属性指定是否为直接传输模式优化API。启用优化时,客户端应用程序被限制为只能创建一个生产者和一个非持久消费者。这允许所有使用直接传输模式接收的消息直接发送到单个消费者。启用此JMS属性时,尝试创建多个生产者或多个非持久消费者将返回异常。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源(按优先级降序)示例
系统-DSolace_JMS_OptimizeDirect=true
初始上下文env.put(SupportedProperty.SOLACE_JMS_OPTIMIZE_DIRECT, true);
JNDI属性文件Solace_JMS_OptimizeDirect=true
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的传输属性选项卡中的优化直接框设置。
CLI/SEMP - 通过属性列表“transport-properties”中的属性“optimize-direct”设置。

直接传输优化属性

覆盖单一传输

此属性指定是否覆盖单一传输(DTO)设置。启用时,API可以接收所有标记为DTO的消息。此属性仅用于直接传输消息。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true
属性源(按优先级降序)示例
系统-DSolace_JMS_DeliverToOneOverride=true
初始上下文env.put(SupportedProperty.SOLACE_JMS_DELIVER_TO_ONE_OVERRIDE, true);
JNDI属性文件Solace_JMS_DeliverToOneOverride=true
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的DTO覆盖框设置。
CLI/SEMP - 通过属性列表“deliver-to-one-properties”中的属性“deliver-to-one-override”设置。

单一传输覆盖属性

单一传输订阅者本地优先级

此属性指定客户端的订阅在接收客户端直接连接到的事件代理上发布的单一传输消息时的优先级。

  • 类型:整数
  • 格式:有效值为1(最高)到4(最低)
  • 默认值:1
属性源(按优先级降序)示例
系统-DSolace_JMS_SubscriberLocalDTOPriority=3
初始上下文env.put(SupportedProperty.SOLACE_JMS_SUBSCRIBER_LOCAL_DTO_PRIORITY, 3);
JNDI属性文件Solace_JMS_SubscriberLocalDTOPriority=3
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的订阅者本地优先级框设置。
CLI/SEMP - 通过属性列表“deliver-to-one-properties”中的属性“subscriber-local-priority”设置。

单一传输订阅者本地属性

单一传输订阅者网络优先级

此属性指定客户端的订阅在接收Solace PubSub+中其他事件代理(即客户端未直接连接到的事件代理)发布的单一传输消息时的优先级。

  • 类型:整数
  • 格式:有效值为1(最高)到4(最低)
  • 默认值:1
属性源(按优先级降序)示例
系统-DSolace_JMS_SubscriberNetworkDTOPriority=3
初始上下文env.put(SupportedProperty.SOLACE_JMS_SUBSCRIBER_NETWORK_DTO_PRIORITY, 3);
JNDI属性文件Solace_JMS_SubscriberNetworkDTOPriority=3
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的订阅者网络优先级框设置。
CLI/SEMP - 通过属性列表“deliver-to-one-properties”中的属性“subscriber-network-priority”设置。

单一传输订阅者网络属性

保证消息确认阈值

此属性指定向事件代理发送窗口消息确认(设置为窗口大小的百分比)的阈值。

这影响流控制窗口确认。API每N条消息发送一次传输确认。如果端点在绑定时的max-delivered-unacked-msgs-per-flow设置大于或等于传输窗口大小,则N计算为该百分比的流窗口大小;否则,N计算为端点在绑定时的max-delivered-unacked-msgs-per-flow设置的该百分比。此阈值不控制应用级消息确认。此属性仅用于使用保证传输模式发送的消息,不用于使用直接传输模式发送的消息。

  • 类型:整数
  • 格式:有效值为1到75
  • 默认值:60
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的确认阈值框设置。
CLI/SEMP - 通过属性列表“ad-properties”中的属性“receive-ack-threshold”设置。

保证消息确认阈值属性

保证消息确认定时器

此属性指定在必须向事件代理发送已接收消息的确认之前可以经过的最大时间(以毫秒为单位)。此属性仅用于使用保证传输模式发送的消息,不用于使用直接传输模式发送的消息。

  • 类型:整数
  • 格式:有效值为20到1500
  • 默认值:1000(即,一秒钟)
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的AD确认时间框(在消息接收属性区域)设置。 CLI/SEMP - 通过属性列表“ad-properties”中的属性“ack-timer”设置。

保证消息确认定时器属性

保证消息窗口大小

此属性指定用于确认已接收消息的滑动确认窗口的大小。此属性仅用于使用保证传输模式发送的消息,不用于使用直接传输模式发送的消息。

保证消息窗口大小限制了API在必须向事件代理返回确认以表明其已接收窗口中的消息之前可以接收的消息数量。API发送此确认后,保证消息窗口重新打开,以便可以向API发送更多消息。

  • 类型:整数
  • 格式:有效值为1到255
  • 默认值:18
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的AD窗口大小框设置。
CLI/SEMP - 通过属性列表“ad-properties”中的属性“ad-window-size”设置。

保证消息窗口大小属性

保证消息发送确认时间

此属性指定发布消息API等待事件代理确认的时间(以毫秒为单位)。API自动重新发送未及时确认的消息。

此属性仅用于使用保证传输模式发送的消息,不用于使用直接传输模式发送的消息。

  • 类型:整数
  • 格式:有效值为20到60000
  • 默认值:2000(即,两秒钟)
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的AD确认框(在消息传输属性区域)设置。 CLI/SEMP - 通过属性列表“ad-properties”中的属性“send-ack-timer”设置。

保证消息发送确认时间属性

保证消息最大重传次数

此属性已被弃用,JMS API 7.1.2.x及以上版本不使用。在7.1.2.x及以上版本中,JMS API无限期地重新发送未确认的消息。

此属性指定如果消息未被事件代理确认,或者由于客户端在接收确认之前断开并重新连接而需要重新发送,API可以重新发送消息的最大次数。

此属性仅用于使用保证传输模式发送的消息,不用于使用直接传输模式发送的消息。

  • 类型:整数
  • 格式:有效值为0到2147483647
  • 默认值:30。(注意,此值在Solace PubSub+ 7.0版本中从15更改为30。)
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的最大消息重传次数框(在消息传输属性区域)设置。 CLI/SEMP - 通过属性列表“ad-properties”中的属性“send-max-resends”设置。

保证消息最大重传次数属性

保证消息发送窗口大小

此属性指定客户端在消息API必须从事件代理接收确认之前可以使用保证传输发布的非持久消息的最大数量。对于持久消息,保证消息发送窗口大小固定为1。

此属性仅用于使用保证传输模式发送的消息,不用于使用直接传输模式发送的消息。

  • 类型:整数
  • 格式:对于非持久消息,有效值为1到255
  • 默认值:255
属性源示例
JNDI连接工厂SolAdmin - 通过新建JMS连接工厂或编辑JMS连接工厂对话框中的消息属性选项卡中的非持久消息AD窗口大小框(在消息传输属性区域)设置。
CLI/SEMP - 通过属性列表“ad-properties”中的属性“send-ad-window-size”设置。

保证消息发送窗口大小属性

保证消息重新连接重试次数

在JMS API 10.7.0及以上版本中,当收到错误响应时,只要错误响应字符串中给出的原因是以下之一,API就会自动尝试重新连接流:

  • 重放开始
  • 服务不可用 - 表示队列或主题端点已关闭或删除,或者代理上的保证交付服务已被禁用。

JMS消费者在流重新连接之前不会接收任何数据。如果流重新连接尝试最终失败,则采用现有的流失败错误路径。

此属性指定在收到错误响应后要进行的最大流重新连接尝试次数。您可以通过将重新连接重试次数设置为0来禁用此行为。

  • 类型:整数
  • 格式:有效值为-1到2147483647
  • 默认值:-1(无限期,即永远尝试)
属性源示例
JNDI连接工厂CLI/SEMP - 通过属性列表“ad-properties”中的属性“receive-reconnect-retries”设置。

保证消息重新连接重试次数属性

保证消息重新连接重试间隔

此属性指定流重新连接尝试之间的等待时间。

  • 类型:整数
  • 格式:有效值为1到2147483647
  • 默认值:3000(即,三秒钟)
属性源示例
JNDI连接工厂CLI/SEMP - 通过属性列表“ad-properties”中的属性“receive-reconnect-retry-wait”设置。

保证消息重新连接重试间隔属性