第 5 章 配置选项

本章列出了 AMQ OpenWire JMS 的可用配置选项。

JMS 配置选项设置为连接 URI 上的查询参数。如需更多信息,请参阅 第 4.3 节 “连接 URI”

5.1. JMS 选项

jms.username
客户端用于验证连接的用户名。
jms.password
客户端用于验证连接的密码。
jms.clientID
客户端应用到连接的客户端 ID。
jms.closeTimeout
JMS 关闭操作的超时时间(毫秒)。默认值为 15000(15 秒)。
jms.connectResponseTimeout
JMS 连接操作的超时时间(以毫秒为单位)。默认值为 0,即没有超时。
jms.sendTimeout
JMS 发送操作的超时时间(毫秒)。默认值为 0,即没有超时。
jms.checkForDuplicates
如果启用,忽略重复的信息。它会被默认启用。
jms.disableTimeStampsByDefault
如果启用,则不要时间戳信息。它默认是禁用的。
jms.useAsyncSend
如果启用,则在不等待确认的情况下发送消息。它默认是禁用的。
jms.alwaysSyncSend
如果启用,发送会在所有交付模式中等待确认。它默认是禁用的。
jms.useCompression
如果启用,压缩消息正文。它默认是禁用的。
jms.useRetroactiveConsumer
如果启用,不可更改的订阅者可接收在订阅启动前发布的消息。它默认是禁用的。

预定义策略选项

prefetch 策略决定每个 MessageConsumer 从远程 peer 获取的信息数,并保存在本地"prefetch"缓冲区中。

jms.prefetchPolicy.queuePrefetch
用于队列的 prefetch 消息数。默认值为 1000。
jms.prefetchPolicy.queueBrowserPrefetch
用于队列浏览器的 prefetch 消息数。默认值为 500。
jms.prefetchPolicy.topicPrefetch
用于非持久性主题的 prefetch 消息数。默认值为 32766。
jms.prefetchPolicy.durableTopicPrefetch
要预先填充持久主题的消息数量。默认值为 100。
jms.prefetchPolicy.all
这可以用于一次性设置所有 prefetch 值。

prefetch 的值可能会影响消息到队列上的多个消费者的分发。更高的值可能会导致向每位消费者同时发送的批处理。当消费者以不同速度运作时,要达到更加均匀的循环分布,请使用较低的值。

重新传送策略选项

重新传送策略控制如何在客户端上处理重新传送消息。

jms.redeliveryPolicy.maximumRedeliveries
在将消息发送到死信队列之前,尝试重新传送的次数。默认值为 6. -1 表示没有限制。
jms.redeliveryPolicy.redeliveryDelay
重新传送尝试之间的时间(毫秒)。如果 initialRedeliveryDelay 是 0,则会使用它。默认值为 1000(1 秒)。
jms.redeliveryPolicy.initialRedeliveryDelay
第一次重新传送尝试前的时间(毫秒)。默认值为 1000(1 秒)。
jms.redeliveryPolicy.maximumRedeliveryDelay
重新传送尝试之间的最长时间(毫秒)。如果启用了 useExponentialBackOff,则会使用它。默认值为 1000(1 秒)。-1 表示没有限制。
jms.redeliveryPolicy.useExponentialBackOff
如果启用,在每次后续尝试中增加重新传送延迟。它默认是禁用的。
jms.redeliveryPolicy.backOffMultiplier
增加重新传送延迟的倍数。默认值为 5。
jms.redeliveryPolicy.useCollisionAvoidance
如果启用,请调整重新传送延迟略微上或下移以避免冲突。它默认是禁用的。
jms.redeliveryPolicy.collisionAvoidanceFactor
用于调整重新传送延迟的倍数。默认值为 0.15。
nonBlockingRedelivery
如果启用,则允许不按顺序重新传送,以避免行头阻止。它默认是禁用的。