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