搜索

31.21. Spring Boot Auto-Configuration

download PDF

当在 Spring Boot 中使用 jms 时,请确保使用以下 Maven 依赖项来支持自动配置:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-jms-starter</artifactId>
</dependency>

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

Name描述默认值类型

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

指定消费者在停止时是否接受消息。如果您在运行时启动和停止 JMS 路由,则可能会考虑启用此选项,同时仍然在队列中排队消息。如果此选项为 false,并且您停止 JMS 路由,则消息可能会被拒绝,并且 JMS 代理必须尝试 redeliveries (但可能会再次拒绝),最终消息可能会移到 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,允许 DefaultMessageListenerContainer.runningAllowed 标志在 JmsConfigurationVirtualMachineisAcceptMessagesWhileStopping 时快速停止,并且 org.apache.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 时(如果设置了 replyToDestinationSelectorName,则 Camel 会将 alwaysCopyMessage 选项设置为 true)。

false

布尔值

camel.component.jms.artemis-consumer-priority

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

 

整数

camel.component.jms.artemis-streaming-enabled

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

false

布尔值

camel.component.jms.async-consumer

JmsConsumer 是否异步处理交换。如果启用,JmsConsumer 可以从 JMS 队列中提取下一个消息,而上一个消息则异步处理(通过 Asynchronous Routing Engine)。这意味着消息可能没有完全严格按照顺序进行处理。如果禁用(作为默认),则在 JmsConsumer 会从 JMS 队列中提取下一个消息前,会完全处理交换。请注意,如果启用了 transacted,则 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

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

true

布尔值

camel.component.jms.cache-level

根据 ID 为底层 JMS 资源设置缓存级别。如需了解更多详细信息,请参阅 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,您可能更喜欢使用 Virtual Topics。

 

字符串

camel.component.jms.concurrent-consumers

指定从 JMS 消耗时的默认并发消费者数量(而不是通过 JMS 请求/回复)。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/缩减。当通过 JMS 执行 request/reply 时,选项 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,Simple 将使用 org.springframework.jms.listener.SimpleMessageListenerContainer。指定 Custom 时,由 messageListenerContainerFactory 选项定义的 MessageListenerContainerFactory 将决定要使用的 org.springframework.jms.listener.AbstractMessageListenerContainer。

 

ConsumerType

camel.component.jms.correlation-property

当使用 InOut 交换模式时,使用此 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 registry 中查找实际目的地)。选项是一个 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

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

 

字符串

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

加载消息时立即启用 JMS 属性和有效负载的 eager 加载,因为 JMS 属性可能并不是必需的,但有时可能会捕获与底层 JMS 提供程序和使用 JMS 属性的早期问题。另请参阅选项 eagerPoisonBody。

false

布尔值

camel.component.jms.eager-poison-body

如果启用了 eagerLoadingOfProperties,并且 JMS 消息有效负载(JMS 正文或 JMS 属性)是 poison (无法读取/映射),然后将这个文本设置为消息正文,因此可以处理消息( poison 的原因)已作为交换异常保存。这可以通过设置 eagerPoisonBody=false 来关闭。另请参阅 eagerLoadingOfProperties 选项。

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

字符串

camel.component.jms.enabled

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

 

布尔值

camel.component.jms.error-handler

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

 

ErrorHandler

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

允许通过默认错误处理程序来控制是否应记录 stacktraces。

true

布尔值

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

允许为日志记录 uncaught 异常配置默认 errorHandler 日志记录级别。

 

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 消息标头中读取 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

根据 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 提供了额外的文档。

1

整数

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

在从 JMS 到 Camel Message 映射时,是否包含所有 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 提供两个开箱即用的实现:default 和 passthrough。默认策略将安全地使用句点和连字符(. 和 -)。passthrough 策略将密钥保留原样。可用于不负责 JMS 标头密钥是否包含非法字符的 JMS 代理。您可以自行提供 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 sVirt 表示法引用它。

 

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,Camel 将创建一个 JmsTransactionManager,如果没有在选项 transacted=true 时注入 transactionManager。

true

布尔值

camel.component.jms.lazy-start-producer

生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。

false

布尔值

camel.component.jms.map-jms-message

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

true

布尔值

camel.component.jms.max-concurrent-consumers

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

 

整数

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

每个任务的消息数量。-1 代表没有限制。如果您为并发消费者使用范围(例如 min max),则可以使用此选项将值设为 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;如果提供程序忽略提示,则必须将消息 ID 设置为其普通唯一值。

true

布尔值

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

MessageListenerContainerFactory 的 registry ID,用于决定要使用消息的 org.springframework.jms.listener.AbstractMessageListenerContainer。设置此项将自动将 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

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

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.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。和 CACHE_SESSION 用于没有 replyToSelectorName 的共享。IBM WebSphere 等 JMS 代理可能需要设置 replyToCacheLevelName=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

允许明确指定在执行 request/reply 时要用于 replyTo 队列的策略类型。可能的值有:Temporary、share 或 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

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

1000

Long

camel.component.jms.selector

设置要使用的 JMS 选择器。

 

字符串

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

设置 StreamMessage 类型是否已启用。流类型的消息有效负载(如 files、InStream 等)将通过作为 BytesMessage 或 StreamMessage 发送。此选项控制将使用哪种类型。默认情况下,使用 BytesMessage 来强制整个消息有效负载读取到内存中。通过启用此选项,消息有效负载以块的形式读取到内存中,然后每个块都会写入 StreamMessage,直到没有更多数据。

false

布尔值

camel.component.jms.subscription-durable

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

false

布尔值

camel.component.jms.subscription-name

设置要创建的订阅名称。在带有共享或可升级订阅的主题(公共域)中应用。订阅名称需要在此客户端的 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

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

 

TaskExecutor

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

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

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,而 confirmMode 作为转换用于 InOut 操作。请注意:在 JTA 事务中,传递给 createQueue 的参数不会考虑 createTopic 方法。根据 Java EE 事务上下文,容器对这些值做出自己的决策。类似地,这些参数不会考虑本地管理的事务,因为 Spring JMS 在这种情况下在现有 JMS 会话上运行。在受管事务外运行时,将此标志设置为 true 将使用简短的本地 JMS 事务,并在存在受管事务(除 XA 事务之外)时同步的本地 JMS 事务。这与主事务一起管理本地 JMS 事务(可能是原生 JDBC 事务)的影响,在主事务后 JMS 事务提交右侧的 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 失败在消费者端,则原因例外将作为 javax.jms.ObjectMessage 发回的响应。如果客户端是 Camel,则返回的例外将重新箭头。这样,您可以使用 Camel JMS 作为路由中的桥接 - 例如,使用持久性队列来启用强大的路由。请注意,如果您也启用了 transferExchange,这个选项将具有优先权。caught 异常需要可以被序列化。消费者端的原始例外可以嵌套在外部异常中,如 org.apache.camel.RuntimeCamelException。请谨慎使用它,因为数据正在使用 Java 对象序列化,要求接收者在类级别反序列化数据,这会强制在生产者和消费者之间进行强校准。

false

布尔值

camel.component.jms.transfer-exchange

您可以在有线线上传输交换,而不只是正文和标头。以下字段会被传输: 在 body, Out body, Fault body, In headers, Out headers, Fault header, Exchange properties, exchange exception.这要求对象可以序列化。Camel 将排除任何不可序列化的对象,并将它记录在 WARN 级别。您必须在制作者和消费者端启用这个选项,因此 Camel 知道有效负载是一个交换,而不是常规有效负载。请谨慎使用它,因为数据正在使用 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

在执行 request/reply over JMS 以及启用了 useMessageIDAsCorrelationID 时,等待 provisional correlation id 被更新到实际关联 ID 的次数。

50

整数

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

等待置备关联 ID 时每次休眠的时间间隔(以秒为单位)。选项是一个长类型。

100

Long

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.