1.3. 组件选项
AMQP 组件支持 100 个选项,如下所列。
名称 | Description | 默认 | 类型 |
---|---|---|---|
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 消息类型。此选项允许您指定它。 枚举值:
| 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. 枚举值:
| AUTO_ACKNOWLEDGE | 字符串 |
artemisConsumerPriority (consumer) | 通过消费者优先级,您可以确保高优先级消费者在处于活动状态时接收消息。通常,与队列连接的活跃使用者会以轮循方式从该队列接收消息。当消费者优先级正在使用时,如果多个活跃消费者具有相同高优先级,则传递消息。只有高优先级消费者无法使用该消息时,消息才会降低优先级消费者,或者具有高优先级使用者已拒绝接受消息(例如,因为它不满足与使用者关联的任何选择器的条件)。 | int | |
asyncConsumer (consumer) | JmsConsumer 是否异步处理 Exchange。如果启用,则 JmsConsumer 可能会从 JMS 队列获取下一个消息,而上一消息正在异步处理(通过异步路由引擎)。这意味着,消息可以被严格处理,按顺序处理。如果禁用(默认),则在 JmsConsumer 将从 JMS 队列中获取下一个消息之前,将完全处理 Exchange。请注意,如果已启用翻译,则 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 文档和事务缓存级别。 枚举值:
| CACHE_AUTO | 字符串 |
concurrentConsumers (consumer) | 指定使用 JMS 时的默认并发用户数(不用于请求/相对 JMS)。另请参阅 maxMessagesPerTask 选项来控制线程的动态扩展/关闭。当执行请求/相对于 JMS 时,选项回复ToConcurrentConsumers 用于控制回复消息监听器上的并发用户数量。 | 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) | 设置要创建的订阅的名称。要应用一个带有共享或 durable 订阅的主题(pub-sub 域)。订阅名称需要在这个客户端的 JMS 客户端 ID 中唯一。default 是指定消息监听程序的类名称。注:每个订阅只允许 1 个并发使用者(默认是此消息监听器容器),但共享订阅除外(需要 JMS 2.0)。 | 字符串 | |
subscriptionShared (consumer) | 设置是否使订阅共享。可以通过 subscriptionName 属性指定要使用的共享订阅名称。默认为 false。将其设置为 true 以注册共享订阅,通常与 subscriptionName 值结合使用(除非您的消息监听程序类名称已足够符合订阅名称)。请注意,共享订阅也可能是持久的,因此此标志也可以(并经常将)与订阅相整合。只有侦听主题(pub-sub 域)时,这种方法才会切换到 pubSubDomain 标志。需要 JMS 2.0 兼容消息代理。 | false | 布尔值 |
acceptMessagesWhileStopping (consumer (advanced)) | 指定使用者接受消息在停止时是否指定。如果您在运行时启动和停止 JMS 路由,则请考虑启用这个选项,同时队列上仍有消息 enqueued。如果这个选项为 false,并且您停止了 JMS 路由,则消息可能会被拒绝,并且 JMS 代理必须尝试重定位,但再次再次可能被拒绝,最后消息可能会在 JMS 代理上的死信队列移动。为了避免这一建议启用这个选项。 | false | 布尔值 |
allowReplyManagerQuickStop (consumer (advanced)) | 如果 JmsConfiguration#isAcceptMessagesWhileStopping 在启用 JmsConfiguration#isAcceptMessagesWhileStopping 时,并且 org.apache.camel.Camel.CamelContext 当前已经停止。常规 JMS 用户默认启用这一快速停止功能,但为了回复经理,您必须启用此标志。 | false | 布尔值 |
consumerType (consumer (advanced)) | 要使用的使用者类型,可以是:简单、默认或 Custom。使用者类型决定要使用的 Spring JMS 侦听器。默认情况下,将使用 org.springframework.jms.listener.DefaultMessageListenerContainer,SimpleMessageListenerContainer 将使用 org.springframework.jms.listener.SimpleMessageListenerContainer。指定 Custom 时,由 messageListenerContainerFactory 选项定义的 MessageListenerContainerFactory 将决定要使用的 org.springframework.jms.listener.AbstractMessageListenerContainer。 枚举值:
| 默认 | ConsumerType |
defaultTaskExecutorType (consumer (advanced)) | 指定在 DefaultMessageListenerContainer 中使用哪些默认 TaskExecutor 类型,用于使用者端点和制作者端点的 ReplyTo consumer。可能的值有: SimpleAsync (使用 Spring 的 SimpleAsyncTaskExecutor)或 ThreadPool (使用具有最优值的 Spring 的 ThreadPoolTaskExecutor)。如果没有设置,则默认为之前的行为,它将缓存的线程池用于消费者端点和 SimpleAsync 回复消费者消费者。建议使用 ThreadPool 以减少弹性配置中的线程回收,并动态增加和减少并发用户。 枚举值:
| 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 | 布尔值 |
replyToConsumerType (consumer (advanced)) | 回复消费者的消费者(在发出请求/回复时),可以是一个简单的、默认或 Custom 之一。使用者类型决定要使用的 Spring JMS 侦听器。默认情况下,将使用 org.springframework.jms.listener.DefaultMessageListenerContainer,SimpleMessageListenerContainer 将使用 org.springframework.jms.listener.SimpleMessageListenerContainer。指定 Custom 时,由 messageListenerContainerFactory 选项定义的 MessageListenerContainerFactory 将决定要使用的 org.springframework.jms.listener.AbstractMessageListenerContainer。 枚举值:
| 默认 | ConsumerType |
replyToSameDestinationAllowed (consumer (advanced)) | JMS 使用者是否允许回复消息到消费者用于使用的同一目的地。这可防止消耗和将相同的消息发回到自身来防止死循环。 | false | 布尔值 |
TaskExecutor (consumer(advanced) | 允许您指定自定义任务 executor 来使用消息。 | TaskExecutor | |
deliveryDelay (producer) | 设置用于 JMS 的发送调用的交付延迟。这个选项需要 JMS 2.0 兼容代理。 | -1 | long |
deliveryMode (producer) | 指定要使用的交付模式。可能的值可能是 javax.jms.DeliveryMode 定义。NON_PERSISTENT = 1 和 PERSISTENT = 2. 枚举值:
| 整数 | |
deliveryPersistent (producer) | 指定是否默认使用持久交付。 | true | 布尔值 |
explicitQosEnabled (producer) | 设定在发送消息时应使用 deliveryMode、priority 或 timeToLive 服务质量。这个选项基于 Spring 的 JmsTemplate。deliveryMode、priority 和 timeToLive 选项应用到当前的端点。这与 preserveMessageQos 选项不同,该选项以消息粒度运行,从 Camel In message 标头专门读取 QoS 属性。 | false | 布尔值 |
formatDateHeadersToIso8601 (producer) | 设置 JMS date 属性是否应该根据 ISO 8601 标准进行格式化。 | false | 布尔值 |
lazyStartProducer (producer) | 制作者是否应该启动 lazy(在第一个消息上)。通过启动 lazy,您可以使用它来允许 CamelContext 和路由在启动期间启动,否则在启动期间出现问题,并导致路由启动失败。通过将这个启动延迟到 lazy 后,可以在通过 Camel 的路由错误处理程序路由消息期间处理启动失败。注意在处理第一个消息时,创建并启动制作者可能花费较少的时间,从而延长处理的总处理时间。 | false | 布尔值 |
preserveMessageQos (producer) | 设置为 true,如果要使用消息中指定的 QoS 设置发送消息,而不是 JMS 端点上的 QoS 设置。以下三个标头被视为 JMSPriority、JMSDeliveryMode 和 JMSExpiration。您可以提供全部或部分功能。如果没有提供,Camel 将回退为使用来自端点的值。因此,在使用这个选项时,标头会覆盖端点中的值。相反,显式QosEnabled 选项只会使用在端点上设置的选项,而不是消息标头中的值。 | false | 布尔值 |
priority (producer) | 高于 1 的值在发送时指定消息优先级(其中 1 是最低优先级,9 是最高)。还必须启用显式QosEnabled 选项,才能使此选项生效。 枚举值:
| 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 目标,可覆盖回复商的设置。如果要将消息转发到远程队列并接收来自 ReplyTo 目的地的回复消息,这很有用。 | 字符串 | |
replyToType (producer) | 允许显式指定在进行请求/恢复 JMS 时用于回复队列的策略。可能的值有:Trimporary、Shared 或 Exclusive。默认情况下,Camel 将使用临时队列。但是,如果已经配置了 replyTo,则默认使用 Shared。此选项允许您使用专用队列而不是共享队列。请参阅 Camel JMS 文档了解更多详情,特别是有关在集群环境中运行时所造成影响的备注,以及共享回复队列的性能比其 alternatives Temporary 和 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,并且消息正文为空,则将引发 JMSException。 | true | 布尔值 |
alwaysCopyMessage (producer (advanced)) | 如果为 true,则 Camel 将始终将消息的 JMS 消息副本传递给发送的制作者。在某些情况下,需要复制消息,例如当设置了 replyToDestinationSelectorName 时(通常,Camel 会将 alwaysCopyMessage 选项设置为 true),如设置了 replyToDestinationSelectorName )。 | false | 布尔值 |
correlationProperty (producer (advanced)) | 使用 InOut Exchange 模式使用此 JMS 属性而不是 JMSCorrelationID JMS 属性来关联消息。如果设置消息将被仅与此属性 JMSCorrelationID 属性的值关联,则 Camel 不会设置。 | 字符串 | |
disableTimeToLive (producer (advanced)) | 使用这个选项强制禁用时间实时。例如,当您通过 JMS 进行请求/推荐时,Camel 默认将使用 requestTimeout 值作为正在发送的消息上的实时。问题是发送者和接收器系统必须同步其时钟,因此它们正在同步。这不是始终如此容易的归档。因此,您可以使用 disableTimeToLive=true 将发送消息中的时间设置为 live 值。然后,信息不会在接收方系统中过期。如需了解更多详细信息,请参阅关于时间至 live 的部分。 | 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。以及在没有 replyToSelectorName 的情况下共享的 CACHE_SESSION。有些 JMS 代理(如 IBM WebSphere)可能需要设置 replyToCacheLevelName=CACHE_NONE 才能工作。注:如果使用临时队列,则不允许使用 CACHE_NONE,且必须使用更高的值,如 CACHE_CONSUMER 或 CACHE_SESSION。 枚举值:
| 字符串 | |
replyToDestinationSelectorName (producer (advanced)) | 使用固定名称来设置 JMS Selector,以便在使用共享队列时过滤您自己的回复(也就是说,如果您不使用临时回复队列)。 | 字符串 | |
streamMessageTypeEnabled (producer (advanced)) | 设定是否启用 StreamMessage 类型。消息有效负载的流传输类型(如文件、InputStream 等)将作为 BytesMessage 或 StreamMessage 发送。此选项控制将使用哪一种类型。默认情况下使用 BytesMessage,它强制读取到内存中的完整消息有效负载。通过启用此选项,消息有效负载在块中读取到内存中,每个块都会写入 StreamMessage,直到没有更多数据。 | false | 布尔值 |
allowAutoWiredConnectionFactory (advanced) | 如果尚未配置连接工厂,是否从注册表自动发现 ConnectionFactory。如果找到了一个 ConnectionFactory 实例,则会使用它。默认启用。 | true | 布尔值 |
allowAutoWiredDestinationResolver (advanced) | 如果还没有配置目的地解析器,是否从 registry 中自动发现 DestinationResolver。如果只找到 DestinationResolver 的一个实例,则会使用它。默认启用。 | true | 布尔值 |
allowSerializedHeaders (advanced) | 控制是否包含序列化标头。仅在 transferExchange 为 true 时才适用。这要求对象是序列化的。Camel 将排除任何非序列化对象,并在 WARN 级别记录它。 | false | 布尔值 |
artemisStreamingEnabled (advanced) | 是否对 Apache Artemis streaming 模式进行优化。在将 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 级别。您可以配置日志记录级别,以及是否应使用 errorHandlerLoggingLevel 和 errorHandlerLogStackTrace 选项记录堆栈追踪。这样可以更容易配置,而不是对自定义错误处理程序进行编码。 | ErrorHandler | |
exceptionListener (advanced) | 指定任何底层 JMS 异常通知的 JMS Exception Listener。 | ExceptionListener | |
idleConsumerLimit (advanced) | 指定允许在任何给定时间闲置的用户数量的限制。 | 1 | int |
idleTaskExecutionLimit (advanced) | 指定接收任务的空闲执行的限制,没有在其执行过程中收到任何信息。如果达到这个限制,任务将关闭并离开其他执行任务(在出现动态调度的情况下),请参阅 maxConcurrentConsumers 设置。Spring 还有额外的文档。 | 1 | int |
includeAllJMSXProperties (advanced) | 从 JMS 到 Camel 消息映射时是否包括所有 JMSXxxx 属性。将其设置为 true 将包括 JMSXAppID 和 JMSXUserID 等属性。注:如果您使用自定义 headerFilterStrategy,则这个选项不会应用。 | false | 布尔值 |
jmsKeyFormatStrategy (advanced) | 用于编码和解码 JMS 密钥的可插拔策略,以便它们符合 JMS 规范。Camel 提供了两个开箱即用的实现:默认和直通。默认策略将安全汇总点和连字符(. 和 -)。passthrough 策略会保留密钥,即:可用于不小心 JMS 标头键是否包含非法字符的 JMS 代理。您可以自行实施 org.apache.camel.component.jms.JmsKeyFormatStrategy,并使用 # 表示法引用它。 枚举值:
| JmsKeyFormatStrategy | |
mapJmsMessage (advanced) | 指定 Camel 是否应将收到的 JMS 消息自动映射到合适的载荷类型,如 javax.jms.TextMessage 到字符串等。 | 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) | 要使用给定的 MessageCreatedStrategy,在 Camel 发送 JMS 消息时,将在 Camel 创建新实例 javax.jms.Message 对象时来调用。 | 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 提供程序接受此提示,这些消息必须将时间戳设置为零。如果提供程序忽略了提示,时间戳必须设置为其正常值。 | true | 布尔值 |
pubSubNoLocal (advanced) | 指定是否禁止交付其自身连接发布的消息。 | false | 布尔值 |
queueBrowseStrategy (advanced) | 在浏览队列时使用自定义 QueueBrowseStrategy。 | QueueBrowseStrategy | |
receiveTimeout (advanced) | 接收消息的超时时间(以毫秒为单位)。 | 1000 | long |
recoveryInterval (advanced) | 指定恢复尝试之间的间隔,即当连接被刷新时(以毫秒为单位)。默认值为 5000 ms,即 5 秒。 | 5000 | long |
requestTimeoutCheckerInterval (advanced) | 配置在通过 JMS 进行请求时,Camel 应该检查超时交换的频率。默认情况下,Camel 会检查每秒一次。但是,如果发生超时时您必须更快地做出反应,那么您可以降低这个间隔,以更频繁地检查。超时由选项 requestTimeout 决定。 | 1000 | long |
同步 (高级) | 设置同步处理是否应当严格使用。 | false | 布尔值 |
transferException (高级) | 如果启用并且您正在使用 Request Reply messaging (InOut),并且一个 Exchange 在使用者端失败,则会导致 Exception 发回为 javax.jms.ObjectMessage。如果客户端是 Camel,则返回的 Exception 会被重新箭头。这样,您可以使用 Camel JMS 作为路由中的网桥 - 例如,使用持久性队列来启用可靠的路由。请注意,如果您也启用了 transferExchange,则此选项将具有优先权。请注意的异常需要是序列化的。使用者端的原始例外可以包装在外部异常中,如 org.apache.camel.RuntimeCamelException (返回到制作者)。请谨慎使用数据,因为数据正在使用 Java 对象序列化,并且需要接收后才能在类级别上对数据进行反序列化,这将强迫在制作者和消费者之间强有力的合并! | false | 布尔值 |
transferExchange (advanced) | 您可以通过线路传输交换,而不只是正文和标头。传输以下字段如下:正文、出站正文、容错正文、入口、出口标头、容错标头、交换属性、交换异常。这要求对象是序列化的。Camel 将排除任何非序列化对象,并在 WARN 级别记录它。您必须在制作者和消费者端启用此选项,因此 Camel 知道有效负载是 Exchange,而非常规有效负载。请谨慎使用这些数据,因为数据正在使用 Java 对象序列化,并且要求接收器可以在类级别上对数据进行反序列化,这将强行在生产者和想要使用兼容 Camel 版本的用户之间进行强大的合作。 | false | 布尔值 |
useMessageIDAsCorrelationID (advanced) | 指定 JMSMessageID 是否应该始终用作 InOut 消息的 JMSCorrelationID。 | false | 布尔值 |
waitForProvisionCorrelationToBeUpdatedCounter (advanced) | 在对 JMS 进行请求/恢复请求时,等待 provisional 关联 id 会被更新为实际关联 id 的次数,以及选项 useMessageIDAsCorrelationID。 | 50 | int |
waitForProvisionCorrelationToBeUpdatedThreadSleepingTime (advanced) | millis 在等待 provisional correlation id 被更新期间,每次处于睡眠状态的时间间隔。 | 100 | long |
headerFilterStrategy (filter) | 使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤来自 Camel 消息的标头。 | HeaderFilterStrategy | |
errorHandlerLoggingLevel (logging) | 允许配置默认错误处理程序日志记录级别,以记录异常。 枚举值:
| WARN | LoggingLevel |
errorHandlerLogStackTrace (logging) | 允许控制是否应该记录堆栈追踪,默认错误处理程序。 | true | 布尔值 |
密码 (安全) | 要用于 ConnectionFactory 的密码。您还可以直接在 ConnectionFactory 上配置用户名/密码。 | 字符串 | |
username (security) | 用于 ConnectionFactory 的用户名。您还可以直接在 ConnectionFactory 上配置用户名/密码。 | 字符串 | |
transacted (transaction) | 指定是否使用已翻译的模式。 | false | 布尔值 |
transactedInOut (transaction) | 指定 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 | 布尔值 |
lazyCreateTransactionManager (transaction (advanced)) | 如果为 true,如果选项 transacted=true 中没有注入事务管理器,Camel 会创建一个 JmsTransactionManager。 | true | 布尔值 |
transactionManager (transaction (advanced)) | 要使用的 Spring 事务管理器。 | PlatformTransactionManager | |
transactionName (transaction (advanced)) | 要使用的事务的名称。 | 字符串 | |
transactionTimeout (transaction (advanced)) | 事务的超时值(以秒为单位)。 | -1 | int |