25.21. Spring Boot Auto-Configuration


将 jms 与 Spring Boot 搭配使用时,请确保使用以下 Maven 依赖项支持自动配置:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-jms-starter</artifactId>
  <version>{CamelSBProjectVersion}</version>
  <!-- Use your Camel Spring Boot version -->
</dependency>

组件支持 99 个选项,如下所示。

Name描述默认类型

camel.component.jms.accept-messages-while-stopping

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

false

布尔值

camel.component.jms.acknowledgement-mode-name

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

AUTO_ACKNOWLEDGE

字符串

camel.component.jms.allow-additional-headers

此选项用于允许其他标头,它们的值可能会根据 JMS 规格无效。例如,WMQ 等一些消息系统使用前缀 JMS_IBM_MQMD_(包含字节阵列或其他无效类型的值)进行标头名称。您可以指定多个标头名称,用逗号分开,使用 作为通配符匹配的后缀。

 

字符串

camel.component.jms.allow-auto-wired-connection-factory

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

true

布尔值

camel.component.jms.allow-auto-wired-destination-resolver

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

true

布尔值

camel.component.jms.allow-null-body

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

true

布尔值

camel.component.jms.allow-reply-manager-quick-stop

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

false

布尔值

camel.component.jms.allow-serialized-headers

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

false

布尔值

camel.component.jms.always-copy-message

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

false

布尔值

camel.component.jms.artemis-consumer-priority

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

 

整数

camel.component.jms.artemis-streaming-enabled

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

false

布尔值

camel.component.jms.async-consumer

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

false

布尔值

camel.component.jms.async-start-listener

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

false

布尔值

camel.component.jms.async-stop-listener

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

false

布尔值

camel.component.jms.auto-startup

指定使用者容器是否应该自动启动。

true

布尔值

camel.component.jms.autowired-enabled

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

true

布尔值

camel.component.jms.cache-level

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

 

整数

camel.component.jms.cache-level-name

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

CACHE_AUTO

字符串

camel.component.jms.client-id

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

 

字符串

camel.component.jms.concurrent-consumers

指定从 JMS 消耗时的默认并发用户数量(而非 JMS 请求/回复)。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/关闭。在对 JMS 进行请求时,会使用选项 replyToConcurrentConsumers 来控制回复消息侦听器上的并发消费者数量。

1

整数

camel.component.jms.configuration

使用共享的 JMS 配置。选项是 org.apache.camel.component.jms.JmsConfiguration 类型。

 

JmsConfiguration

camel.component.jms.connection-factory

要使用的连接工厂。在组件或端点上配置连接工厂。选项是 javax.jms.ConnectionFactory 类型。

 

ConnectionFactory

camel.component.jms.consumer-type

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

 

ConsumerType

camel.component.jms.correlation-property

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

 

字符串

camel.component.jms.default-task-executor-type

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

 

DefaultTaskExecutorType

camel.component.jms.delivery-delay

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

-1

Long

camel.component.jms.delivery-mode

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

 

整数

camel.component.jms.delivery-persistent

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

true

布尔值

camel.component.jms.destination-resolver

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

 

DestinationResolver

camel.component.jms.disable-reply-to

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

false

布尔值

camel.component.jms.disable-time-to-live

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

false

布尔值

camel.component.jms.durable-subscription-name

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

 

字符串

camel.component.jms.eager-loading-of-properties

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

false

布尔值

camel.component.jms.eager-poison-body

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

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

字符串

camel.component.jms.enabled

是否启用 jms 组件的自动配置。默认启用。

 

布尔值

camel.component.jms.error-handler

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

 

ErrorHandler

camel.component.jms.error-handler-log-stack-trace

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

true

布尔值

camel.component.jms.error-handler-logging-level

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

 

LoggingLevel

camel.component.jms.exception-listener

指定 JMS Exception Listener,它将被通知任何底层 JMS 例外。选项是 javax.jms.ExceptionListener 类型。

 

ExceptionListener

camel.component.jms.explicit-qos-enabled

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

false

布尔值

camel.component.jms.expose-listener-session

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

false

布尔值

camel.component.jms.force-send-original-message

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

false

布尔值

camel.component.jms.format-date-headers-to-iso8601

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

false

布尔值

camel.component.jms.header-filter-strategy

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

 

HeaderFilterStrategy

camel.component.jms.idle-consumer-limit

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

1

整数

camel.component.jms.idle-task-execution-limit

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

1

整数

camel.component.jms.include-all-j-m-s-x-properties

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

false

布尔值

camel.component.jms.include-sent-j-m-s-message-i-d

仅在使用 InOnly(如 fire and forget)发送到 JMS 目的地时适用。启用此选项将增强 Camel Exchange 和实际 JMSMessageID,当消息发送到 JMS 目的地时,JMS 客户端将使用的实际 JMSMessageID。

false

布尔值

camel.component.jms.jms-key-format-strategy

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

 

JmsKeyFormatStrategy

camel.component.jms.jms-message-type

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

 

JmsMessageType

camel.component.jms.lazy-create-transaction-manager

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

true

布尔值

camel.component.jms.lazy-start-producer

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

false

布尔值

camel.component.jms.map-jms-message

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

true

布尔值

camel.component.jms.max-concurrent-consumers

指定从 JMS 消耗时的最大并发用户数量(而非 JMS 请求/回复)。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/关闭。在对 JMS 进行请求/恢复时,会使用选项 replyToMaxConcurrentConsumers 控制回复消息侦听器上的并发消费者数量。

 

整数

camel.component.jms.max-messages-per-task

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

-1

整数

camel.component.jms.message-converter

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

 

MessageConverter

camel.component.jms.message-created-strategy

要使用在 Camel 发送 JMS 消息时,在 Camel 创建 javax.jms.Message 对象的新实例 javax.jms.Message 对象时调用的 MessageCreatedStrategy。选项是 org.apache.camel.component.MessageCreatedStrategy 类型。

 

MessageCreatedStrategy

camel.component.jms.message-id-enabled

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

true

布尔值

camel.component.jms.message-listener-container-factory

用于决定使用消息的 org.springframework.jms.listener.AbstractMessageListenerContainer 的 registry ID。设置该操作将自动将 consumerType 设置为 Custom。选项是 org.apache.camel.component.MessageListenerContainerFactory 类型。

 

MessageListenerContainerFactory

camel.component.jms.message-timestamp-enabled

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

true

布尔值

camel.component.jms.password

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

 

字符串

camel.component.jms.preserve-message-qos

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

false

布尔值

camel.component.jms.priority

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

4

整数

camel.component.jms.pub-sub-no-local

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

false

布尔值

camel.component.jms.queue-browse-strategy

在浏览队列时,要使用自定义 QueueBrowseStrategy。选项是 org.apache.camel.component.QueueBrowseStrategy 类型。

 

QueueBrowseStrategy

camel.component.jms.receive-timeout

接收消息的超时(以毫秒为单位)。选项是一个长类型。

1000

Long

camel.component.jms.recovery-interval

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

5000

Long

camel.component.jms.reply-to

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

 

字符串

camel.component.jms.reply-to-cache-level-name

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

 

字符串

camel.component.jms.reply-to-concurrent-consumers

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

1

整数

camel.component.jms.reply-to-delivery-persistent

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

true

布尔值

camel.component.jms.reply-to-destination-selector-name

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

 

字符串

camel.component.jms.reply-to-max-concurrent-consumers

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

 

整数

camel.component.jms.reply-to-on-timeout-max-concurrent-consumers

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

1

整数

camel.component.jms.reply-to-override

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

 

字符串

camel.component.jms.reply-to-same-destination-allowed

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

false

布尔值

camel.component.jms.reply-to-type

允许显式指定在对 JMS 进行请求/回复队列时用于回复队列的策略。可能的值有: Temporary、Shared 或 Exclusive。默认情况下,Camel 将使用临时队列。但是,如果配置了 replyTo,则默认使用 Shared。此选项允许您使用专用队列而不是共享队列。如需更多详细信息,请参阅 Camel JMS 文档,特别是在集群环境中运行时的意义的注释,而共享回复队列的性能比其 alternatives Temporary 和 Exclusive 和 Exclusive 的性能降低。

 

ReplyToType

camel.component.jms.request-timeout

在使用 InOut Exchange Pattern(毫秒)时等待回复的超时时间。默认值为 20 秒。您可以包括标头 CamelJmsRequestTimeout 覆盖这个端点配置的超时值,因此可以为每个消息独立的超时值。另请参阅 requestTimeoutCheckerInterval 选项。选项是一个长类型。

20000

Long

camel.component.jms.request-timeout-checker-interval

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

1000

Long

camel.component.jms.selector

设置要使用的 JMS 选择器。

 

字符串

camel.component.jms.stream-message-type-enabled

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

false

布尔值

camel.component.jms.subscription-durable

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

false

布尔值

camel.component.jms.subscription-name

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

 

字符串

camel.component.jms.subscription-shared

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

false

布尔值

camel.component.jms.synchronous

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

false

布尔值

camel.component.jms.task-executor

允许您指定使用消息的自定义任务执行器。选项是 org.springframework.core.task.TaskExecutor 类型。

 

TaskExecutor

camel.component.jms.test-connection-on-startup

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

false

布尔值

camel.component.jms.time-to-live

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

-1

Long

camel.component.jms.transacted

指定是否使用转换模式。

false

布尔值

camel.component.jms.transacted-in-out

如果此标志被设置为 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

布尔值

camel.component.jms.transaction-manager

要使用的 Spring 事务管理器。选项是 org.springframework.transaction.PlatformTransactionManager 类型。

 

PlatformTransactionManager

camel.component.jms.transaction-name

要使用的事务的名称。

 

字符串

camel.component.jms.transaction-timeout

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

-1

整数

camel.component.jms.transfer-exception

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

false

布尔值

camel.component.jms.transfer-exchange

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

false

布尔值

camel.component.jms.use-message-i-d-as-correlation-i-d

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

false

布尔值

camel.component.jms.username

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

 

字符串

camel.component.jms.wait-for-provision-correlation-to-be-updated-counter

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

50

整数

camel.component.jms.wait-for-provision-correlation-to-be-updated-thread-sleeping-time

每次处于休眠状态的时间间隔,同时等待 provisionalrrelation id 被更新。选项是一个长类型。

100

Long

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.