303.2.2. 查询参数(23 参数):

名称描述默认类型

aggregationStrategy (consumer)

需要 聚合策略来使用,它将所有批处理消息合并到一个消息中

 

AggregationStrategy

allowNullBody (consumer)

是否允许在没有正文的情况下发送消息。如果此选项为 false,并且消息正文为空,则将引发 JMSException。

true

布尔值

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由 Error Handler,这意味着使用者试图获取传入消息或类似信息时出现任何异常,现在将作为一个消息进行处理,并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.Exception 处理程序处理异常,该处理程序将记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

completionInterval (consumer)

millis 的完成间隔,这会导致批处理每间隔以调度的固定率完成。如果触发超时且批处理中没有消息,则批处理可能为空。请注意,您不能同时使用完成超时和完成间隔,只能配置一个。

1000

int

completionPredicate (consumer)

completion predicate,这会导致当谓词评估为 true 时完成批处理。也可以使用简单语言配置谓词,使用字符串语法。您可能需要将选项 eagerCheckCompletion 设置为 true,以便 predicate 与传入消息匹配,否则它与聚合的消息匹配。

 

字符串

completionSize (consumer)

批处理将完成的消息数量

200

int

completionTimeout (consumer)

在批处理完成时,millis 收到第一个一条消息的超时。如果触发超时且批处理中没有消息,则批处理可能为空。请注意,您不能同时使用完成超时和完成间隔,只能配置一个。

500

int

consumerCount (consumer)

要使用的 JMS 会话数量

1

int

eagerCheckCompletion (consumer)

使用预先完成检查,这表示 completionPredicate 将使用传入的 Exchange。与不预先完成检查 completion 外,将使用聚合的 Exchange。

false

布尔值

includeAllJMSXProperties (consumer)

从 JMS 到 Camel 消息映射时是否包括所有 JMSXxxx 属性。将其设置为 true 将包括 JMSXAppID 和 JMSXUserID 等属性。注:如果您使用自定义 headerFilterStrategy,则这个选项不会应用。

false

布尔值

mapJmsMessage (consumer)

指定 Camel 是否应将收到的 JMS 消息自动映射到合适的载荷类型,如 javax.jms.TextMessage 到字符串等。如需了解更多详细信息,请参阅下面映射如何工作的部分。

true

布尔值

pollDuration (consumer)

消息轮询的毫秒毫秒。如果时间更短且批处理已启动,则使用 completionTimeOut。

1000

int

sendEmptyMessageWhenIdle (consumer)

如果使用完成超时或间隔,则批处理可能会在触发超时且批处理中没有消息时为空。如果这个选项为 true,且批处理为空,则会将空消息添加到批处理中,因此路由空消息。

false

布尔值

exceptionHandler (consumer)

要让使用者使用自定义 ExceptionHandler。请注意,如果启用了选项 bridgeErrorHandler,则不使用这个选项。默认情况下,消费者处理异常,这将在 WARN 或 ERROR 级别记录,并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在使用者创建交换时设置交换模式。

 

ExchangePattern

asyncStartListener (advanced)

启动路由时是否异步启动使用者消息监听程序。例如,如果 JmsConsumer 无法连接到远程 JMS 代理,则在重试和/或故障转移时可能会阻止它。这将导致 Camel 在启动路由时阻止。通过将此选项设置为 true,您将让路由启动,而 JmsConsumer 使用一个专用线程以异步模式连接到 JMS 代理。如果使用这个选项,那么请注意,如果无法建立连接,则会在 WARN 级别记录异常,并且使用者将无法接收消息;然后,您可以重启要重试的路由。

false

布尔值

headerFilterStrategy (advanced)

使用自定义 HeaderFilterStrategy 过滤来自 Camel 消息的标头。

 

HeaderFilterStrategy

jmsKeyFormatStrategy (advanced)

用于编码和解码 JMS 密钥的可插拔策略,以便它们符合 JMS 规范。Camel 提供了两个开箱即用的实现:默认和直通。默认策略将安全汇总点和连字符(. 和 -)。passthrough 策略会保留密钥,即:可用于不小心 JMS 标头键是否包含非法字符的 JMS 代理。您可以自行实施 org.apache.camel.component.jms.JmsKeyFormatStrategy 并使用表示法引用它。

 

JmsKeyFormatStrategy

keepAliveDelay (advanced)

millis 试图重新建立有效会话之间的延迟。如果这是正数的,如果 SjmsBatchConsumer 在消息消耗期间看到 IllegalStateException,它将尝试创建新的会话。这个延迟值允许您在尝试之间暂停以防止垃圾邮件日志。如果这是负值(默认为 -1),则 SjmsBatchConsumer 的行为与它始终有一样工作 - 也就是说,如果路由看到 IllegalStateException,则路由将关闭。

-1

int

messageCreatedStrategy (advanced)

要使用给定的 MessageCreatedStrategy,在 Camel 发送 JMS 消息时,将在 Camel 创建新实例 javax.jms.Message 对象时来调用。

 

MessageCreatedStrategy

recoveryInterval (advanced)

指定恢复尝试之间的间隔,即当连接被刷新时(以毫秒为单位)。默认值为 5000 ms,即 5 秒。

5000

int

同步 (高级)

设置同步处理是否应当严格使用,还是允许 Camel 使用异步处理(如果受支持)。

false

布尔值

timeoutCheckerExecutor Service (advanced)

如果使用 completionInterval 选项,则创建一个后台线程来触发完成间隔。设置这个选项,以提供要使用的自定义线程池,而不是为每个消费者创建新线程。

 

ScheduledExecutor 服务

completionSize 端点属性与 completionTimeout 结合使用,其中要满足的第一个条件将导致聚合的 Exchange 发出中断路由。