26.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>
Copy to Clipboard Toggle word wrap

组件支持 99 个选项,它们如下所列。

Expand
Name描述默认类型

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

指定使用者接受消息在停止时是否指定。如果您在运行时启动和停止 JMS 路由,则请考虑启用这个选项,同时队列上仍有消息 enqueued。如果这个选项为 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

如果尚未配置连接工厂,是否从注册表自动发现 ConnectionFactory。如果找到了一个 ConnectionFactory 实例,则会使用它。这会被默认启用。

true

布尔值

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

如果还没有配置目的地解析器,是否从 registry 中自动发现 DestinationResolver。如果只找到 DestinationResolver 的一个实例,则会使用它。这会被默认启用。

true

布尔值

camel.component.jms.allow-null-body

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

true

布尔值

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

如果 JmsConfiguration#isAcceptMessagesWhileStopping 在启用 JmsConfiguration#isAcceptMessagesWhileStopping 时,并且 org.apache.camel.Camel.CamelContext 当前已经停止。常规 JMS 用户默认启用这一快速停止功能,但为了回复经理,您必须启用此标志。

false

布尔值

camel.component.jms.allow-serialized-headers

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

false

布尔值

camel.component.jms.always-copy-message

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

false

布尔值

camel.component.jms.artemis-consumer-priority

通过消费者优先级,您可以确保高优先级消费者在处于活动状态时接收消息。通常,与队列连接的活跃使用者会以轮循方式从该队列接收消息。当消费者优先级正在使用时,如果多个活跃消费者具有相同高优先级,则传递消息。只有高优先级消费者无法使用该消息时,消息才会降低优先级消费者,或者具有高优先级使用者已拒绝接受消息(例如,因为它不满足与使用者关联的任何选择器的条件)。

 

整数

camel.component.jms.artemis-streaming-enabled

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

false

布尔值

camel.component.jms.async-consumer

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

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

是否启用了 autowiring。这用于自动自动选项( 选项必须标记为自动线),方法是在 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 时,选项回复ToConcurrentConsumers 用于控制回复消息监听器上的并发用户数量。

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

要使用的使用者类型,可以是:简单、默认或 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 的 ThreadPoolTaskExecutor)。如果没有设置,则默认为之前的行为,它将缓存的线程池用于消费者端点和 SimpleAsync 回复消费者消费者。建议使用 ThreadPool 以减少弹性配置中的线程回收,并动态增加和减少并发用户。

 

DefaultTaskExecutorType

camel.component.jms.delivery-delay

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

-1

Long

camel.component.jms.delivery-mode

指定要使用的交付模式。可能的值可能是 javax.jms.DeliveryMode 定义。NON_PERSISTENT = 1 和 PERSISTENT = 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 将发送消息中的时间设置为 live 值。然后,信息不会在接收方系统中过期。如需了解更多详细信息,请参阅关于时间至 live 的部分。

false

布尔值

camel.component.jms.durable-subscription-name

指定持久主题订阅的持久订阅者名称。还必须配置 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。

由于 $\{exception.message} 造成的 Poison JMS 消息

字符串

camel.component.jms.enabled

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

 

布尔值

camel.component.jms.error-handler

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

 

ErrorHandler

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

允许控制是否应该记录堆栈追踪,默认错误处理程序。

true

布尔值

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

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

 

LoggingLevel

camel.component.jms.exception-listener

指定任何底层 JMS 异常通知的 JMS Exception Listener。选项是 javax.jms.ExceptionListener 类型。

 

ExceptionListener

camel.component.jms.explicit-qos-enabled

设定在发送消息时应使用 deliveryMode、priority 或 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 时,如果您在路由期间接触标头(get 或 set)时,将创建一个新的 JMS 消息来发送到新的 JMS 目标。将这个选项设置为 true 以强制 Camel 发送收到的原始 JMS 消息。

false

布尔值

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

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

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 还有额外的文档。

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 发送到 JMS 目的地(请触发和忘记)。启用此选项将丰富的 Camel Exchange 与 JMS 客户端在消息发送到 JMS 目的地时使用的实际 JMSMessageID 一起丰富。

false

布尔值

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

用于编码和解码 JMS 密钥的可插拔策略,以便它们符合 JMS 规范。Camel 提供了两个开箱即用的实现:默认和直通。默认策略将安全汇总点和连字符(. 和 -)。passthrough 策略会保留密钥,即:可用于不小心 JMS 标头键是否包含非法字符的 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 到字符串等。

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 类型。

 

MessageConverter

camel.component.jms.message-created-strategy

要使用给定的 MessageCreatedStrategy,在 Camel 发送 JMS 消息时,将在 Camel 创建新实例 javax.jms.Message 对象时来调用。选项是一个 org.apache.camel.component.jms.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.jms.MessageListenerContainerFactory 类型。

 

MessageListenerContainerFactory

camel.component.jms.message-timestamp-enabled

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

true

布尔值

camel.component.jms.password

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

 

字符串

camel.component.jms.preserve-message-qos

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

false

布尔值

camel.component.jms.priority

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

4

整数

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

指定是否禁止交付其自身连接发布的消息。

false

布尔值

camel.component.jms.queue-browse-strategy

在浏览队列时使用自定义 QueueBrowseStrategy。选项是一个 org.apache.camel.component.jms.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。以及在没有 replyToSelectorName 的情况下共享的 CACHE_SESSION。有些 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

指定在使用 request/reply over JMS 时超时发生时持续路由的并发使用者的最大数量。

1

整数

camel.component.jms.reply-to-override

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

 

字符串

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

JMS 使用者是否允许回复消息到消费者用于使用的同一目的地。这可防止消耗和将相同的消息发回到自身来防止死循环。

false

布尔值

camel.component.jms.reply-to-type

允许显式指定在进行请求/恢复 JMS 时用于回复队列的策略。可能的值有:Trimporary、Shared 或 Exclusive。默认情况下,Camel 将使用临时队列。但是,如果已经配置了 replyTo,则默认使用 Shared。此选项允许您使用专用队列而不是共享队列。请参阅 Camel JMS 文档了解更多详情,特别是有关在集群环境中运行时所造成影响的备注,以及共享回复队列的性能比其 alternatives Temporary 和 Exclusive 的性能有不同。

 

ReplyToType

camel.component.jms.request-timeout

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

20000

Long

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

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

1000

Long

camel.component.jms.selector

设置要使用的 JMS 选择器。

 

字符串

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

设定是否启用 StreamMessage 类型。消息有效负载的流传输类型(如文件、InputStream 等)将作为 BytesMessage 或 StreamMessage 发送。此选项控制将使用哪一种类型。默认情况下使用 BytesMessage,它强制读取到内存中的完整消息有效负载。通过启用此选项,消息有效负载在块中读取到内存中,每个块都会写入 StreamMessage,直到没有更多数据。

false

布尔值

camel.component.jms.subscription-durable

设置是否使订阅持久。要使用的持久订阅名称可以通过 subscriptionName 属性指定。默认为 false。将其设置为 true 以注册持久的订阅,通常与 subscriptionName 值结合使用(除非您的消息监听器类名称足够好作为订阅名称)。只有侦听主题(pub-sub 域)时,这种方法才会切换到 pubSubDomain 标志。

false

布尔值

camel.component.jms.subscription-name

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

 

字符串

camel.component.jms.subscription-shared

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

false

布尔值

camel.component.jms.synchronous

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

false

布尔值

camel.component.jms.task-executor

允许您指定自定义任务 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

指定 InOut 操作(请求回复)默认使用 transacted 模式(如果此标记被设置为 true),则 Spring JmsTemplate 会将 sessionTransacted 设置为 true,在用于 InOut 操作的 JmsTemplate 上被标记为 transacted。注意来自 Spring JMS:在 JTA 事务中,传递给 createQueue 的参数不会考虑 createTopic 方法。根据 Java EE 事务上下文,容器根据这些值做出自己的决定。简而言之,这些参数不会在本地管理的事务中考虑,因为 Spring JMS 以现有 JMS 会话在现有的 JMS 会话上运行。将这个标志设置为 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 messaging (InOut),并且一个 Exchange 在使用者端失败,则会导致 Exception 发回为 javax.jms.ObjectMessage。如果客户端是 Camel,则返回的 Exception 会被重新箭头。这样,您可以使用 Camel JMS 作为路由中的网桥 - 例如,使用持久性队列来启用可靠的路由。请注意,如果您也启用了 transferExchange,则此选项将具有优先权。请注意的异常需要是序列化的。使用者端的原始例外可以包装在外部异常中,如 org.apache.camel.RuntimeCamelException (返回到制作者)。请小心,因为数据使用 Java 对象序列化,并且要求收到收到的类级别对数据进行反序列化,这强制在制作者和消费者之间形成强大的耦合!

false

布尔值

camel.component.jms.transfer-exchange

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

false

布尔值

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

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

false

布尔值

camel.component.jms.username

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

 

字符串

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

在对 JMS 进行请求/恢复请求时,等待 provisional 关联 id 会被更新为实际关联 id 的次数,以及选项 useMessageIDAsCorrelationID。

50

整数

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

millis 在等待 provisional correlation id 被更新期间,每次处于睡眠状态的时间间隔。选项是一个长类型。

100

Long

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat