1.3. 组件选项


AMQP 组件支持 100 个选项,如下所列。

名称描述默认类型

clientID (common)

设置要使用的 JMS 客户端 ID。请注意,这个值(如果指定)必须是唯一的,且只能被单个 JMS 连接实例使用。它通常只需要持久化的主题订阅。如果使用 Apache ActiveMQ,您可能需要改为使用虚拟主题。

 

字符串

ConnectionFactory (common)

要使用的连接工厂。必须在组件或端点上配置连接工厂。

 

ConnectionFactory

disableReplyTo (common)

指定 Camel 是否忽略消息中的 JMSReplyTo 标头。如果为 true,Camel 不会向 JMSReplyTo 标头中指定的目的地发送回复。如果您希望 Camel 从路由使用,并且您不希望 Camel 自动发送回复消息,则可使用此选项,因为代码中的另一个组件处理回复消息。如果您要将 Camel 用作不同消息代理之间的代理,并且希望将消息从一个系统路由到另一个系统,您也可以使用这个选项。

false

布尔值

durableSubscriptionName (common)

用于指定持久主题订阅的持久订阅者名称。还必须配置 clientId 选项。

 

字符串

includeAmqpAnnotations (common)

从 AMQP 到 Camel 消息映射时是否包含 AMQP 注解。把它设置为 true 将包含 JMS_AMQP_MA_ 前缀的 AMQP 消息注解映射到消息标头。由于 Apache Qpid JMS API 的限制,目前的交付注释将被忽略。

false

布尔值

jmsMessageType (common)

允许您强制使用特定的 javax.jms.Message 实施来发送 JMS 消息。可能的值有:Bytes, Map, Object, Stream, Text。默认情况下,Camel 将决定从 In body 类型中使用的 JMS 消息类型。这个选项允许您指定它。

Enum 值:

  • bytes
  • map
  • 对象
  • Stream
  • 文本
 

JmsMessageType

replyTo (common)

提供明确的 ReplyTo destination (会覆盖消费者中的 Message.getJMSReplyTo ()的任何传入值)。

 

字符串

testConnectionOnStartup (common)

指定是否在启动时测试连接。这可确保 Camel 启动所有 JMS 用户具有与 JMS 代理的有效连接。如果无法授予连接,则 Camel 会在启动时抛出异常。这样可确保 Camel 没有使用失败的连接启动。JMS 制作者也经过测试。

false

布尔值

acknowledgementModeName (consumer)

JMS 确认名称,即 SESSION_TRANSACTED、CLIENT_ACKNOWLEDGE、AUTO_ACKNOWLEDGE、DUPS_OK_ACKNOWLEDGE。

Enum 值:

  • SESSION_TRANSACTED
  • CLIENT_ACKNOWLEDGE
  • AUTO_ACKNOWLEDGE
  • DUPS_OK_ACKNOWLEDGE

AUTO_ACKNOWLEDGE

字符串

artemisConsumerPriority (consumer)

通过使用者优先级,您可以确保高优先级消费者在信息处于活动状态时收到信息。通常,连接到队列的活动消费者以轮循方式接收来自它的消息。当使用消费者优先级时,如果存在多个具有同样高优先级的活跃使用者,则消息将按循环发送。只有高优先级消费者没有可用的信用时,消息才会降低优先级消费者,或者那些高优先级消费者接受消息(例如,因为它不符合与消费者关联的任何选择器标准)。

 

int

asyncConsumer (consumer)

JmsConsumer 异步处理 Exchange。如果启用,JmsConsumer 可能会从 JMS 队列中选取下一个消息,而前面的消息被异步处理(通过异步路由引擎)。这意味着消息可能会按顺序处理,而不是严格处理。如果禁用(默认),则交换在 JmsConsumer 将从 JMS 队列中选取下一消息之前完全处理。请注意,如果启用了 transacted,则 asyncConsumer=true 不会异步运行,因为事务必须异步执行(Camel 3.0 可能会支持 async 事务)。

false

布尔值

autoStartup (consumer)

指定消费者容器是否应该自动启动。

true

布尔值

cacheLevel (consumer)

根据底层 JMS 资源的 ID 设置缓存级别。如需了解更多详细信息,请参阅 cacheLevelName 选项。

 

int

cacheLevelName (consumer)

根据底层 JMS 资源的名称设置缓存级别。可能的值有:CACHE_AUTO、CACHE_CONNECTION、CACHE_CONSUMER、CACHE_NONE 和 CACHE_SESSION。默认设置为 CACHE_AUTO。如需更多信息,请参阅 Spring 文档和事务缓存级别。

Enum 值:

  • CACHE_AUTO
  • CACHE_CONNECTION
  • CACHE_CONSUMER
  • CACHE_NONE
  • CACHE_SESSION

CACHE_AUTO

字符串

concurrentConsumers (consumer)

指定从 JMS 消耗时的默认并发消费者数量(而不是通过 JMS 进行请求/恢复)。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/缩减。当对 JMS 进行请求/恢复时,选项 replyToConcurrentConsumers 用于控制回复消息监听器上的并发消费者数量。

1

int

maxConcurrentConsumers (consumer)

指定从 JMS 消耗时的最大并发消费者数(而不是通过 JMS 请求/恢复)。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/缩减。当对 JMS 进行请求时,选项 replyToMaxConcurrentConsumers 用于控制回复消息监听器上的并发使用者数量。

 

int

replyToDeliveryPersistent (consumer)

指定默认情况下是否使用持久发送进行回复。

true

布尔值

选择器 (使用者)

设置要使用的 JMS 选择器。

 

字符串

subscriptionDurable (consumer)

设置是否使订阅持久化。可以通过 subscriptionName 属性指定要使用的订阅名称。默认为 false。把它设置为 true 以注册持久订阅,通常与 subscriptionName 值结合使用(除非消息监听程序类名称足够足够为订阅名称)。只有在侦听一个主题(pub-sub 域)时,仅有意义,因此此方法也会切换 pubSubDomain 标志。

false

布尔值

subscriptionName (consumer)

设置要创建的订阅的名称。在带有共享或持久订阅的主题(pub-sub 域)时应用。订阅名称需要在此客户端的 JMS 客户端 ID 中唯一。default 是指定消息监听程序的类名称。注:除了共享订阅外,每个订阅都只允许 1 个并发消费者(这是此消息监听程序容器的默认值),但共享订阅除外(需要 JMS 2.0)。

 

字符串

subscriptionShared (consumer)

设置是否共享订阅。要使用的共享订阅名称可以通过 subscriptionName 属性指定。默认为 false。把它设置为 true 以注册共享订阅,通常使用 subscriptionName 值(除非您的消息监听程序类名称足够足以满足订阅名称)。请注意,共享的订阅也可能高度可用,因此此标志也可以(并且经常)与 subscriptionDurable 结合使用。只有在侦听一个主题(pub-sub 域)时,仅有意义,因此此方法也会切换 pubSubDomain 标志。需要 JMS 2.0 兼容消息代理。

false

布尔值

acceptMessagesWhileStopping (consumer (advanced))

指定消费者在停止期间是否接受消息。如果您在运行时启动和停止 JMS 路由,您可能会考虑启用此选项,而队列中仍存在消息排队。如果此选项为 false,并且您停止 JMS 路由,那么消息可能会被拒绝,并且 JMS 代理必须尝试红色的提示,但可能再次被拒绝,最终可能会在 JMS 代理上的死信队列中移动消息。要避免这种情况,建议启用这个选项。

false

布尔值

allowReplyManagerQuickStop (使用者(高级)

回复管理器中是否使用了 DefaultMessageListenerContainer 进行 request-reply 消息,允许 DefaultMessageListenerContainer.runningAllowed 标志在 JmsConfiguration#isAcceptMessagesWhileStopping 已启用时,org.apache.camel.CamelContext 当前已停止。在常规 JMS 使用者中默认启用这种快速停止功能,但要为回复管理器启用此标志。

false

布尔值

consumerType (使用者(高级)

要使用的消费者类型,可以是一个简单的、默认或 Custom 之一。消费者类型决定要使用的 Spring JMS 侦听器。默认将使用 org.springframework.jms.listener.DefaultMessageListenerContainer,简单将使用 org.springframework.jms.listener.SimpleMessageListenerContainer。指定 Custom 时,由 messageListenerContainerFactory 选项定义的 MessageListenerContainerFactory 将决定使用哪个 org.springframework.jms.listener.AbstractMessageListenerContainer。

Enum 值:

  • Simple(简单)
  • 默认
  • Custom

默认

ConsumerType

defaultTaskExecutorType (consumer (advanced))

指定 DefaultMessageListenerContainer 中使用的默认 TaskExecutor 类型,用于消费者端点和制作者端点的 ReplyTo consumer。可能的值: SimpleAsync (使用 Spring 的 SimpleAsyncTaskExecutor)或 ThreadPool (使用 Spring 的 ThreadPoolTaskExecutor,带有最佳值 - 缓存线程池)。如果没有设置,则默认为前面的行为,它会对消费者端点使用缓存的线程池,对回复消费者使用 SimpleAsync。建议使用 ThreadPool 来减少弹性配置中线程垃圾箱,并动态增加和减少并发用户。

Enum 值:

  • ThreadPool
  • SimpleAsync
 

DefaultTaskExecutorType

eagerLoadingOfProperties (使用者(高级)

加载消息后,立即启用 JMS 属性和有效负载,这通常效率低下,因为 JMS 属性可能不需要,但有时可能会捕获底层 JMS 提供程序以及使用 JMS 属性的早期问题。另请参阅 eagerPoisonBody 选项。

false

布尔值

eagerPoisonBody (使用者(高级)

如果启用了 eagerLoadingOfProperties,并且 JMS 消息有效负载(JMS 正文或 JMS 属性)为 poison (不能读取/映射),则将此文本设置为消息正文,因此可以处理消息(中毒的原因已存储为 Exchange 上的异常)。这可以通过设置 eagerPoisonBody=false 来关闭。另请参阅 eagerLoadingOfProperties 选项。

因为 $\{exception.message} 导致 Poison JMS 消息

字符串

exposeListenerSession (使用者(高级)

指定在使用信息时是否应公开监听程序会话。

false

布尔值

replyToConsumerType (consumer (advanced))

回复消费者的消费者(在发出请求/回复时),可以是一个简单的、默认或 Custom 之一。消费者类型决定要使用的 Spring JMS 侦听器。默认将使用 org.springframework.jms.listener.DefaultMessageListenerContainer,简单将使用 org.springframework.jms.listener.SimpleMessageListenerContainer。指定 Custom 时,由 messageListenerContainerFactory 选项定义的 MessageListenerContainerFactory 将决定使用哪个 org.springframework.jms.listener.AbstractMessageListenerContainer。

Enum 值:

  • Simple(简单)
  • 默认
  • Custom

默认

ConsumerType

replyToSameDestinationAllowed (消费者(高级)

是否允许 JMS 使用者向消费者使用的同一目的地发送回复消息。这可防止最终循环消耗并将相同的消息发送到其自身。

false

布尔值

taskExecutor (consumer (advanced))

允许您为使用消息指定自定义任务执行器。

 

TaskExecutor

deliveryDelay (producer)

设置用于为 JMS 发送调用的交付延迟。这个选项需要兼容 JMS 2.0 的代理。

-1

long

deliveryMode (producer)

指定要使用的交付模式。可能的值由 javax.jms.DeliveryMode 定义。NON_PERSISTENT = 1 和 PERSISTENT = 2.

Enum 值:

  • 1
  • 2
 

整数

deliveryPersistent (producer)

指定是否默认使用持久性发送。

true

布尔值

explicitQosEnabled (producer)

设置在发送消息时是否应使用 deliveryMode、priority 或 timeToLive 服务质量。这个选项基于 Spring 的 JmsTemplate。deliveryMode、priority 和 timeToLive 选项应用于当前端点。这与 preserveMessageQos 选项(以消息粒度运行)不同,读取来自 Camel In 消息标头的 QoS 属性。

false

布尔值

formatDateHeadersToIso8601 (producer)

设置 JMS date 属性是否应根据 ISO 8601 标准进行格式化。

false

布尔值

lazyStartProducer (producer)

制作者是否应启动 lazy (在第一个消息中)。通过启动 lazy,您可以使用此选项来允许 CamelContext 和路由在制作者启动期间启动,并导致路由启动失败。通过将这个启动延迟到延迟,那么可以通过 Camel 的路由错误处理程序路由消息期间,可以处理启动失败。请注意,在处理第一个消息时,创建并启动制作者可能需要稍等时间,并延长处理的总处理时间。

false

布尔值

preserveMessageQos (producer)

如果要使用在消息上指定的 QoS 设置发送消息,而不是 JMS 端点上的 QoS 设置,则设置为 true。以下三个标头被视为 JMSPriority、JMSDeliveryMode 和 JMSExpiration。您可以提供全部或仅提供其中一些。如果没有提供,Camel 将回退到使用端点中的值。因此,在使用此选项时,标头会覆盖端点中的值。相反,explicitQosEnabled 选项将使用端点上设置的选项,而不使用消息标头中的值。

false

布尔值

优先级 (生成器)

大于 1 的值在发送时指定消息优先级(其中 1 是最低优先级,9 是最高)。还必须启用 explicitQosEnabled 选项,以便这个选项起作用。

Enum 值:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4

int

replyToConcurrentConsumers (producer)

指定通过 JMS 进行请求/恢复时的默认并发消费者数量。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/缩减。

1

int

replyToMaxConcurrentConsumers (producer)

指定使用请求/通过 JMS 时的最大并发消费者数。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/缩减。

 

int

replyToOnTimeoutMaxConcurrentConsumers (producer)

指定在使用 request/reply over JMS 时发生超时时的最大并发消费者数。

1

int

replyToOverride (producer)

在 JMS 消息中提供显式 ReplyTo destination,它将覆盖 replyTo 的设置。如果您要将消息转发到远程 Queue,并从 ReplyTo 目的地接收回复消息,这很有用。

 

字符串

replyToType (producer)

允许在通过 JMS 发出请求/恢复请求时明确指定要用于 replyTo 队列的策略。可能的值有: Temporary、Shared 或 Exclusive。默认情况下,Camel 将使用临时队列。但是,如果已经配置了 replyTo,则默认使用 Shared。这个选项允许您使用专用队列而不是共享队列。请参阅 Camel JMS 文档以了解更多详情,特别是有关在集群环境中运行时的指示,以及共享回复队列的性能低于其替代 Temporary 和 Exclusive 的情况。

Enum 值:

  • temporary
  • 共享
  • exclusive
 

ReplyToType

requestTimeout (producer)

使用 InOut Exchange Pattern (以毫秒为单位)时等待回复的超时时间。默认值为 20 秒。您可以包含标头 CamelJmsRequestTimeout 来覆盖此端点配置的超时值,因此具有不同的超时值。另请参阅 requestTimeoutCheckerInterval 选项。

20000

long

timeToLive (producer)

发送消息时,指定消息的生存时间(以毫秒为单位)。

-1

long

allowAdditionalHeaders (producer (advanced))

此选项用于允许其他标头,这些标头可能具有根据 JMS 规范无效的值。例如,WMQ 等消息系统利用前缀 JMS_IBM_MQMD_ 包含具有字节数组或其他无效类型的值的标头名称来执行此操作。您可以指定多个以逗号分开的标头名称,用作通配符匹配的后缀。

 

字符串

allowNullBody (producer (advanced))

是否允许发送没有正文的消息。如果此选项为 false 且邮件正文为 null,则抛出 JMSException。

true

布尔值

alwaysCopyMessage (producer (advanced))

如果为 true,Camel 将始终在消息传递给制作者时进行 JMS 消息副本以进行发送。在某些情况下需要复制消息,例如当设置了 replyToDestinationSelectorName 时(如果设置了 replyToDestinationSelectorName),Camel 会将 alwaysCopyMessage 选项设置为 true。

false

布尔值

correlationProperty (producer (advanced))

在使用 InOut Exchange 模式时,请使用此 JMS 属性而不是 JMSCorrelationID JMS 属性来关联消息。如果设置的消息仅关联此属性 JMSCorrelationID 属性的值,则 Camel 不会设置它。

 

字符串

disableTimeToLive (producer (advanced))

使用这个选项强制禁用生存时间。例如,当您通过 JMS 进行请求/恢复时,Camel 默认将使用 requestTimeout 值作为在发送的消息上生存的时间。问题是,发件人和接收器系统必须同步其时钟,因此它们保持同步。这并非总是可以归档。因此,您可以使用 disableTimeToLive=true 不对发送的消息将时间设置为实时值。然后,消息不会在接收器系统中过期。如需了解更多详细信息,请参见关于生存时间一节中的。

false

布尔值

forceSendOriginalMessage (producer (advanced))

使用 mapJmsMessage=false Camel 时,如果您接触路由期间的标头(get 或 set)将创建一个新的 JMS 消息,以发送到新的 JMS 目的地。将此选项设置为 true,以强制 Camel 发送收到的原始 JMS 消息。

false

布尔值

includeSentJMSMessageID (producer (advanced))

仅在使用 InOnly (例如触发和忘记)发送到 JMS 目的地时才适用。启用此选项将增强 Camel Exchange 与将消息发送到 JMS 目的地时由 JMS 客户端使用的实际 JMSMessageID。

false

布尔值

replyToCacheLevelName (producer (advanced))

在通过 JMS 发出请求/回复消费者时,按名称设置缓存级别。这个选项仅在使用固定回复队列(非临时)时适用。Camel 默认使用:CACHE_CONSUMER 用于专用或者共享 w/ replyToSelectorName。和 CACHE_SESSION 用于没有 replyToSelectorName 共享。一些 JMS 代理(如 IBM WebSphere)可能需要设置 replyToCacheLevelName=CACHE_NONE 才能正常工作。注意:如果不允许使用临时队列,则不允许使用 CACHE_NONE,则必须使用更高的值,如 CACHE_CONSUMER 或 CACHE_SESSION。

Enum 值:

  • CACHE_AUTO
  • CACHE_CONNECTION
  • CACHE_CONSUMER
  • CACHE_NONE
  • CACHE_SESSION
 

字符串

replyToDestinationSelectorName (producer (advanced))

使用固定名称来设置 JMS Selector,以便在使用共享队列时过滤您自己的回复(也就是说,如果您不使用临时回复队列)。

 

字符串

streamMessageTypeEnabled (producer (advanced))

设置是否启用了 StreamMessage 类型。消息流传输类型的消息有效负载,如 files、InputStream 等,它将通过发送为 BytesMessage 或 StreamMessage。此选项控制将使用的 kind。默认情况下,使用 BytesMessage,它将强制将整个消息有效负载读到内存中。通过启用这个选项,消息有效负载会在块中读取到内存中,然后每个块被写入 StreamMessage,直到没有更多数据。

false

布尔值

allowAutoWiredConnectionFactory (高级)

如果尚未配置任何连接工厂,是否从 registry 中自动发现 ConnectionFactory。如果只找到 ConnectionFactory 的一个实例,则会使用它。这默认是启用的。

true

布尔值

allowAutoWiredDestinationResolver (advanced)

如果尚未配置目标解析器,是否从 registry 中自动发现目标解析程序。如果只找到 DestinationResolver 的一个实例,则会使用它。这默认是启用的。

true

布尔值

allowSerializedHeaders (高级)

控制是否包含序列化标头。仅在 transferExchange 为 true 时才适用。这要求对象是串行的。Camel 将排除任何非序列化对象,并在 WARN 级别记录它。

false

布尔值

artemisStreamingEnabled (advanced)

是否针对 Apache Artemis 流模式进行优化。这在使用带有 JMS StreamMessage 类型的 Artemis 时,这可以减少内存开销。只有在使用 Apache Artemis 时,才必须启用此选项。

false

布尔值

asyncStartListener (高级)

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

false

布尔值

asyncStopListener (高级)

在停止路由时,是否异步停止 JmsConsumer 消息监听程序。

false

布尔值

autowiredEnabled (高级)

是否启用自动关闭。这用于自动关闭选项(选项必须标记为 autowired),方法是在 registry 中查找查找是否有单个匹配类型实例,然后在组件上配置。这可以用于自动配置 JDBC 数据源、JMS 连接工厂、AWS 客户端等。

true

布尔值

配置 (高级)

使用共享 JMS 配置。

 

JmsConfiguration

destinationResolver (advanced)

可插拔 org.springframework.jms.support.destination.DestinationResolver,允许您使用自己的解析器(例如,在 JNDI 注册表中查找实际目的地)。

 

DestinationResolver

errorHandler (高级)

指定在处理消息时任何未捕获异常时调用的 org.springframework.util.ErrorHandler。默认情况下,如果没有配置 errorHandler,则会在 WARN 级别记录这些例外。您可以使用 errorHandlerLoggingLevel 和 errorHandlerLogStackTrace 选项配置日志记录级别以及堆栈跟踪是否被记录。这样可以更容易配置,而不必对自定义错误处理程序进行编码。

 

ErrorHandler

exceptionListener (高级)

指定 JMS Exception Listener,用于通知任何底层 JMS 异常。

 

ExceptionListener

idleConsumerLimit (advanced)

指定在任意给定时间允许闲置的使用者数量限制。

1

int

idleTaskExecutionLimit (advanced)

指定接收任务的空闲执行限制,而不在其执行中收到任何消息。如果达到这个限制,任务将关闭并保持进入其他执行任务(如果是动态调度);请参阅 maxConcurrentConsumers 设置。Spring 提供了额外的 doc。

1

int

包含AllJMSXProperties (高级)

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

false

布尔值

jmsKeyFormatStrategy (advanced)

用于编码和解码 JMS 密钥的可插拔策略,以便它们可以与 JMS 规范兼容。Camel 开箱即用两种实施:default 和 passthrough。默认策略将安全分类点和连字符(. 和 -)。passthrough 策略原样保留密钥。可用于 JMS 代理,不关心 JMS 标头键是否包含非法字符。您可以提供对 org.apache.camel.component.jms.JmsKeyFormatStrategy 自己的实施,并使用 # 表示法引用它。

Enum 值:

  • default
  • passthrough
 

JmsKeyFormatStrategy

mapJmsMessage (高级)

指定 Camel 是否应自动将收到的 JMS 消息映射到合适的载荷类型,如 javax.jms.TextMessage 到 String 等。

true

布尔值

maxMessagesPerTask (高级)

每个任务的消息数。-1 代表没有限制。如果您对并发消费者使用范围(如 min max),那么此选项可用于设置值 eg 100 来控制用户在需要较少工作时如何缩小。

-1

int

messageConverter (advanced)

要使用自定义 Spring org.springframework.jms.support.converter.MessageConverter,以便您可以控制如何映射到 javax.jms.Message。

 

MessageConverter

messageCreatedStrategy (advanced)

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

 

MessageCreatedStrategy

messageIdEnabled (高级)

发送时,指定是否应添加消息 ID。这只是对 JMS 代理的提示。如果 JMS 提供程序接受此提示,则这些消息必须将消息 ID 设置为 null;如果提供程序忽略了 hint,消息 ID 必须设为其普通唯一值。

true

布尔值

messageListenerContainerFactory (advanced)

用于决定使用消息的 org.springframework.jms.listener.AbstractMessageListenerContainer 的 MessageListenerContainer 的 registry ID。设置此选项会自动将 consumerType 设置为 Custom。

 

MessageListenerContainerFactory

messageTimestampEnabled (advanced)

指定在发送消息时是否默认启用时间戳。这只是对 JMS 代理的提示。如果 JMS 供应商接受此提示,则这些消息必须将时间戳设置为零;如果供应商忽略了提示,时间戳必须设置为其正常值。

true

布尔值

pubSubNoLocal (高级)

指定是否禁止提供由其自身连接发布的消息。

false

布尔值

queueBrowseStrategy (advanced)

在浏览队列时使用自定义 QueueBrowseStrategy。

 

QueueBrowseStrategy

receiveTimeout (高级)

接收消息的超时时间(以毫秒为单位)。

1000

long

recoveryInterval (高级)

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

5000

long

requestTimeoutCheckerInterval (advanced)

配置 Camel 在通过 JMS 执行此操作时应如何检查超时交换。默认情况下,Camel 每秒检查一次。但是,如果在发生超时时必须更快地响应,那么您可以降低此间隔,才能更频繁地检查。超时由选项 requestTimeout 决定。

1000

long

同步 (高级)

设置是否应严格使用同步处理。

false

布尔值

transferException (高级)

如果启用并且您正在使用 Request Reply messaging (InOut),而 Exchange 在消费者一侧失败,则原因 Exception 将发回以 javax.jms.ObjectMessage 的响应。如果客户端是 Camel,则返回的 Exception 会被重新浏览。这允许您在路由中使用 Camel JMS 作为网桥 - 例如,使用持久队列启用可靠的路由。请注意,如果您也启用了 transferExchange,这个选项将具有优先权。必须使相关例外是串行的。消费者端的原始 Exception 可以封装在外部异常中,如 org.apache.camel.RuntimeCamelException (当返回到制作者时)。请谨慎使用它,因为数据使用 Java 对象序列化,需要收到的才能在类级别上反序列化数据,这会强制生产者和消费者之间进行强耦合!

false

布尔值

transferExchange (advanced)

您可以通过线来传输交换,而不只是正文和标头。以下字段已传输:在正文、出口正文、错误正文、标头、出口标头、交换属性、交换异常中。这要求对象是串行的。Camel 将排除任何非序列化对象,并在 WARN 级别记录它。您必须在制作者和消费者端启用这个选项,因此 Camel 知道有效负载是 Exchanges,而不是常规有效负载。请谨慎使用它,因为数据正在使用 Java 对象序列化,并且需要接收器能够在类级别上反序列化数据,这会强制在使用兼容 Camel 版本的用户之间强制进行强大的耦合!

false

布尔值

useMessageIDAsCorrelationID (高级)

指定 JMSMessageID 是否应该始终用作 InOut 消息的 JMSCorrelationID。

false

布尔值

waitForProvisionCorrelationToBeUpdatedCounter (advanced)

在启用使用MessageIDAsCorrelationID 时,等待调配关联 ID 更新为实际关联 ID 的次数。

50

int

waitForProvisionCorrelationToBeUpdatedThreadSleepingTime (advanced)

millis 在等待配置关联 ID 进行更新时的睡眠时间。

100

long

headerFilterStrategy (filter)

要使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤标头到 Camel 消息或从 Camel 消息过滤。

 

HeaderFilterStrategy

errorHandlerLoggingLevel (logging)

允许为日志未捕获异常配置默认错误处理程序日志记录级别。

Enum 值:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF

WARN

LoggingLevel

errorHandlerLogStackTrace (logging)

允许根据默认的 errorHandler 控制是否应记录堆栈追踪。

true

布尔值

密码 (安全)

要用于 ConnectionFactory 的密码。您也可以直接在 ConnectionFactory 上配置用户名/密码。

 

字符串

用户名 (安全)

用于 ConnectionFactory 的用户名。您也可以直接在 ConnectionFactory 上配置用户名/密码。

 

字符串

转换( 事务)

指定是否使用转换模式。

false

布尔值

TranactedInOut (transaction)

如果此标志设为 true,则指定 InOut 操作(请求回复)是否默认使用 transacted 模式,则 Spring JmsTemplate 将把 sessionTransacted 设置为 true,并在用于 InOut 操作的 JmsTemplate 上将确认Mode 作为转换。来自 Spring JMS:在 JTA 事务中,传递给 createQueue 的参数不会考虑 createTopic 方法。根据 Java EE 事务上下文,容器会根据这些值自行做出决定。类似地,这些参数不会考虑在本地管理的事务内,因为本例中的 Spring JMS 在现有的 JMS Session 上运行。将此标志设置为 true 会在受管事务之外运行时使用简短的本地 JMS 事务,并在存在受管事务(除 XA 事务外)时,使用同步的本地 JMS 事务。这具有与主事务(可能是原生 JDBC 事务)管理的本地 JMS 事务的影响,并在主事务后提交 JMS 事务。

false

布尔值

lazyCreateTransactionManager (transaction (advanced))

如果为 true,Camel 将创建一个 JmsTransactionManager,如果没有在选项transacted=true 时注入 transactionManager。

true

布尔值

transactionManager (事务处理(高级)

要使用的 Spring 事务管理器。

 

PlatformTransactionManager

transactionName (transaction (advanced))

要使用的事务的名称。

 

字符串

transactionTimeout (事务处理(高级)

如果使用转换模式,事务的超时值(以秒为单位)。

-1

int

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.