25.3. 组件选项


JMS 组件支持 98 选项,如下所示。

Name描述默认类型

clientId (common)

设置要使用的 JMS 客户端 ID。请注意,如果指定,这个值必须是唯一的,且只能供单个 JMS 连接实例使用。通常只需要具有持久主题订阅。如果使用 Apache ActiveMQ,您可以更喜欢使用虚拟主题。

 

字符串

connectionFactory (common)

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

 

ConnectionFactory

disableReplyTo (common)

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

false

布尔值

durableSubscriptionName (common)

指定 durable topic 订阅的持久订阅者名称。还必须配置 clientId 选项。

 

字符串

jmsMessageType (common)

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

枚举值:

  • Bytes
  • map
  • 对象
  • Stream
  • 文本
 

JmsMessageType

replyTo (common)

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

 

字符串

testConnectionOnStartup (common)

指定是否在启动时测试连接。这样可保证当 Camel 启动所有 JMS 用户与 JMS 代理的有效连接时。如果无法授予连接,则 Camel 会在启动时引发异常。这样可确保 Camel 不使用失败的连接启动。JMS 生产者也经过测试。

false

布尔值

acknowledgementModeName (consumer)

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

枚举值:

  • SESSION_TRANSACTED
  • CLIENT_ACKNOWLEDGE
  • AUTO_ACKNOWLEDGE
  • DUPS_OK_ACKNOWLEDGE

AUTO_ACKNOWLEDGE

字符串

artemisConsumerPriority (consumer)

通过消费者的优先级,您可以确保高优先级消费者在活动期间接收消息。通常,连接到队列的活跃消费者以轮循方式从它接收消息。在使用使用者优先级时,如果多个活跃消费者存在相同的高优先级,则消息将发出循环。只有高优先级消费者无法使用邮件,或者那些高优先级消费者已拒绝接受消息(例如,它不满足与消费者关联的任何选择器条件时,消息才会降低优先级消费者)。

 

int

asyncConsumer (consumer)

JmsConsumer 是否异步处理 Exchange。如果启用,则 JmsConsumer 可能会从 JMS 队列中选择下一消息,而上一消息则异步处理(异步路由引擎)。这意味着,可以不严格地处理消息。如果禁用(作为默认功能),则在 JmsConsumer 将从 JMS 队列获取下一消息之前完全处理 Exchange。请注意,如果启用 transacted,则 asyncConsumer=true 不会异步运行,因为事务必须同步执行(Camel 3.0 可能会支持同步事务)。

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 文档和事务缓存级别。

枚举值:

  • 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

布尔值

selector (consumer)

设置要使用的 JMS 选择器。

 

字符串

subscriptionDurable (consumer)

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

false

布尔值

subscriptionName (consumer)

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

 

字符串

subscriptionShared (consumer)

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

false

布尔值

acceptMessagesWhileStopping (consumer (advanced))

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

false

布尔值

allowReplyManagerQuickStop (consumer (advanced))

在回复管理器中使用 DefaultMessageListenerContainer 是否可以启用 request-reply Messaging,都允许 DefaultMessageListenerContainer.runningAllowed 标记在 case JmsConfiguration#isAcceptMessagesWhileStopping 中快速停止。在常规 JMS 用户中启用此快速停止功能,但要启用回复管理器,您必须启用此标志。

false

布尔值

consumerType (consumer (advanced))

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

枚举值:

  • Simple(简单)
  • 默认
  • Custom

默认

ConsumerType

defaultTaskExecutorType (consumer (advanced))

指定要在 DefaultMessageListenerContainer 中使用的默认 TaskExecutor 类型,同时指定消费者端点的 ReplyTo consumer。可能的值有: SimpleAsync(使用 Spring 的 SimpleAsyncTaskExecutor)或 ThreadPool(使用 Spring 的 ThreadPoolTaskRunutor,优化值 - 缓存的 threadpool)。如果没有设置,则默认为前面的行为,它使用缓存的线程池作为消费者端点,使用 SimpleAsync 进行回复消费者。建议使用 ThreadPool 在弹性配置中减少线程回收,同时动态增加和减少并发消费者。

枚举值:

  • ThreadPool
  • SimpleAsync
 

DefaultTaskExecutorType

eagerLoadingOfProperties (consumer (advanced))

加载消息时,可以立即加载 JMS 属性和有效负载,这通常并不是必需的,因为 JMS 属性可能不需要,但有时可以在早期捕获基础 JMS 提供程序并使用 JMS 属性时的问题。另请参阅 eagerPoisonBody 选项。

false

布尔值

eagerPoisonBody (consumer (advanced))

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

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

字符串

exposeListenerSession (consumer (advanced))

指定监听器会话应当在使用消息时公开。

false

布尔值

replyToSameDestinationAllowed (consumer (advanced))

是否允许 JMS 使用者向消费者使用的同一目的地发送回复消息。这可以防止无外循环使用,并向其自身发送相同消息。

false

布尔值

TaskExecutor (consumer(advanced)

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

 

TaskExecutor

deliveryDelay (producer)

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

-1

long

deliveryMode (producer)

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

枚举值:

  • 1
  • 2
 

整数

deliveryPersistent (producer)

指定默认是否使用持久性交付。

true

布尔值

explicitQosEnabled (producer)

如果发送消息,则应使用 deliveryMode、优先级为 或 timeToLive 服务质量。这个选项基于 Spring 的 JmsTemplate。deliveryMode、priority 和 timeToLive 选项应用到当前端点。这与 preserveMessageQos 选项不同,该选项以消息粒度运行,从 Camel In message 标头读取 QoS 属性。

false

布尔值

formatDateHeadersToIso8601 (producer)

设定是否应该根据 ISO 8601 标准格式化 JMS 日期属性。

false

布尔值

lazyStartProducer (producer)

制作者是否应该启动 lazy(在第一个消息上)。通过启动 lazy,您可以使用它来允许 CamelContext 和路由在启动期间启动,否则在启动期间出现问题,并导致路由启动失败。通过将这个启动延迟到 lazy 后,可以在通过 Camel 的路由错误处理程序路由消息期间处理启动失败。注意在处理第一个消息时,创建并启动制作者可能花费较少的时间,从而延长处理的总处理时间。

false

布尔值

preserveMessageQos (producer)

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

false

布尔值

priority (producer)

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

枚举值:

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

4

int

replyToConcurrentConsumers (producer)

指定在请求/覆盖 JMS 时的默认并发用户数量。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/关闭。

1

int

replyToMaxConcurrentConsumers (producer)

指定在 JMS 使用请求时的最大并发用户数量。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/关闭。

 

int

replyToOnTimeoutMaxConcurrentConsumers (producer)

指定在使用请求/回复 JMS 时超时要继续路由的最大并发用户数量。

1

int

replyToOverride (producer)

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

 

字符串

replyToType (producer)

允许显式指定在对 JMS 进行请求/回复队列时用于回复队列的策略。可能的值有: Temporary、Shared 或 Exclusive。默认情况下,Camel 将使用临时队列。但是,如果配置了 replyTo,则默认使用 Shared。此选项允许您使用专用队列而不是共享队列。如需更多详细信息,请参阅 Camel JMS 文档,特别是在集群环境中运行时的意义的注释,而共享回复队列的性能比其 alternatives Temporary 和 Exclusive 和 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 将创建一个新 JMS 消息,以发送到新的 JMS 目的地(get 或 set)。将此选项设置为 true,以强制 Camel 发送收到的原始 JMS 消息。

false

布尔值

includeSentJMSMessageID (producer (advanced))

仅在使用 InOnly(如 fire and forget)发送到 JMS 目的地时适用。启用此选项将增强 Camel Exchange 和实际 JMSMessageID,当消息发送到 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。

枚举值:

  • CACHE_AUTO
  • CACHE_CONNECTION
  • CACHE_CONSUMER
  • CACHE_NONE
  • CACHE_SESSION
 

字符串

replyToDestinationSelectorName (producer (advanced))

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

 

字符串

streamMessageTypeEnabled (producer (advanced))

设置 StreamMessage 类型是否启用。作为 BytesMessage 或 StreamMessage 发送的消息有效负载,如文件、InputStream 等。这个选项控制将使用哪个类型。默认情况下,使用 BytesMessage 强制实施整个消息有效负载被读取到内存中。通过启用此选项,消息有效负载将以块的形式读取到内存中,然后每个块写入 StreamMessage,直到不再数据为止。

false

布尔值

allowAutoWiredConnectionFactory (advanced)

如果没有配置连接工厂,是否从 registry 自动发现 ConnectionFactory。如果找到了一个 ConnectionFactory 实例,它将被使用。默认启用。

true

布尔值

allowAutoWiredDestinationResolver (advanced)

如果没有配置目标解析器,是否从 registry 自动发现 DestinationResolver。如果发现只有一个 DestinationResolver 实例,则会使用它。默认启用。

true

布尔值

allowSerializedHeaders (advanced)

控制是否包含序列化标头。仅在 transferExchange 为 true 时才应用。这要求对象可以被序列化。Camel 将排除任何非序列化对象,并将其记录在 WARN 级别。

false

布尔值

artemisStreamingEnabled (advanced)

是否为 Apache Artemis 流模式优化。这可在将有 JMS StreamMessage 类型搭配使用时降低内存开销。只有在使用 Apache Artemis 时,才必须启用这个选项。

false

布尔值

asyncStartListener (advanced)

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

false

布尔值

asyncStopListener (advanced)

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

false

布尔值

autowiredEnabled (advanced)

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

true

布尔值

配置 (高级)

使用共享的 JMS 配置。

 

JmsConfiguration

destinationResolver (advanced)

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

 

DestinationResolver

errorHandler (advanced)

在处理消息时,指定在处理消息时要调用的 org.springframework.util.ErrorHandler。默认情况下,这些异常将在 WARN 级别记录(如果没有配置错误Handler)。您可以配置日志级别以及堆栈 trace 是否应使用 errorHandlerLoggingLevel 和 errorHandlerLogStackTrace 选项记录。这可以使配置比必须代码自定义错误Handler 更容易。

 

ErrorHandler

exceptionListener (advanced)

指定 JMS Exception Listener,它将被通知任何底层 JMS 例外。

 

ExceptionListener

idleConsumerLimit (advanced)

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

1

int

idleTaskExecutionLimit (advanced)

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

1

int

includeAllJMSXProperties (advanced)

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

false

布尔值

jmsKeyFormatStrategy (advanced)

编码和解码 JMS 密钥的可插拔策略,以便它们能够符合 JMS 规范。Camel 提供了两个开箱即用实施:default 和 passthrough。默认策略将安全地 marshal dots 和连字符(. 和 -)。passthrough 策略将密钥保留原样。可用于不关心 JMS 标头键是否包含 illegal 字符的 JMS 代理。您可以自行提供 org.apache.camel.component.jms.JmsKeyFormatStrategy 实施,并使用 # 表示法引用它。

枚举值:

  • default
  • passthrough
 

JmsKeyFormatStrategy

mapJmsMessage (advanced)

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

true

布尔值

maxMessagesPerTask (advanced)

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

-1

int

messageConverter (advanced)

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

 

MessageConverter

messageCreatedStrategy (advanced)

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

 

MessageCreatedStrategy

messageIdEnabled (advanced)

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

true

布尔值

messageListenerContainerFactory (advanced)

用于决定使用消息的 org.springframework.jms.listener.AbstractMessageListenerContainer 的 registry ID。设置该操作将自动将 consumerType 设置为 Custom。

 

MessageListenerContainerFactory

messageTimestampEnabled (advanced)

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

true

布尔值

pubSubNoLocal (advanced)

指定是否阻止由其自己的连接发布的消息。

false

布尔值

queueBrowseStrategy (advanced)

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

 

QueueBrowseStrategy

receiveTimeout (advanced)

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

1000

long

recoveryInterval (advanced)

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

5000

long

requestTimeoutCheckerInterval (advanced)

配置 Camel 在进行请求时应多久检查与 JMS 进行超时交流的频率。默认情况下,Camel 会每秒检查一次。但是,如果在超时发生时必须更快地响应,那么您可以降低这个间隔,以更频繁地进行检查。超时由选项 requestTimeout 决定。

1000

long

同步 (高级)

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

false

布尔值

transferException (高级)

如果启用并且您使用的 Request Reply 消息传递(InOut)和 Exchange 在消费者一侧失败,则导致的 Exception 将发回作为 javax.jms.ObjectMessage 的响应。如果客户端是 Camel,返回的 Exception 会被重新浏览。这样,您可以将 Camel JMS 用作路由中的网桥 - 例如,使用持久队列启用可靠的路由。请注意,如果您也启用了 transferExchange,则此选项将具有优先权。捕获的异常需要被序列化。消费者一方上的原始例外可以嵌套在外面异常中,例如,在返回到制作者时 org.apache.camel.RuntimeCamelException。请谨慎使用数据,因为数据正在使用 Java 对象序列化,并且需要接收后才能在类级别上对数据进行反序列化,这将强迫在制作者和消费者之间强有力的合并!

false

布尔值

transferExchange (advanced)

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

false

布尔值

useMessageIDAsCorrelationID (advanced)

指定 JMSMessageID 是否始终用作 JMSCorrelationID 用于 InOut 消息。

false

布尔值

waitForProvisionCorrelationToBeUpdatedCounter (advanced)

在请求/重做 JMS 和选项 useMessageID 时,等待 provisional correlation id 更新为实际关联 id 的次数。

50

int

waitForProvisionCorrelationToBeUpdatedThreadSleepingTime (advanced)

每次处于休眠状态的时间间隔,同时等待 provisionalrrelation id 被更新。

100

long

headerFilterStrategy (filter)

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

 

HeaderFilterStrategy

errorHandlerLoggingLevel (logging)

允许配置默认的错误处理程序日志记录级别,以记录无法捕获的异常。

枚举值:

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

WARN

LoggingLevel

errorHandlerLogStackTrace (logging)

允许控制是否应该记录堆栈追踪(默认错误Handler)。

true

布尔值

密码 (安全性)

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

 

字符串

username (security)

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

 

字符串

transacted (transaction)

指定是否使用转换模式。

false

布尔值

transactedInOut (transaction)

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

false

布尔值

lazyCreateTransactionManager (transaction (advanced))

如果为 true,如果选项 transacted=true 时没有注入事务管理器,Camel 将创建一个 JmsTransactionManager。

true

布尔值

transactionManager (transaction (advanced))

要使用的 Spring 事务管理器。

 

PlatformTransactionManager

transactionName (transaction (advanced))

要使用的事务的名称。

 

字符串

transactionTimeout (transaction (advanced))

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

-1

int

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.