第 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
- 如果启用,则允许不按顺序重新传送,以避免行头阻止。它默认是禁用的。