308.2. 组件选项和配置


Simple JMS2 组件支持 15 个选项,如下所列。

名称描述默认值类型

connectionFactory (advanced)

需要 ConnectionFactory 才能启用 SjmsComponent。它可以直接设置,或设置为 ConnectionResource 的一部分。

 

ConnectionFactory

connectionResource (advanced)

ConnectionResource 是一个接口,允许对 ConnectionFactory 进行自定义和容器控制。详情请查看可插拔连接资源管理。

 

ConnectionResource

connectionCount (common)

此组件下启动的端点可用的最大连接数

1

整数

jmsKeyFormatStrategy (advanced)

用于编码和解码 JMS 密钥的可插拔策略,以便它们能够与 JMS 规范兼容。Camel 提供了一个开箱即用的实现:default。默认策略将安全地 marshal 句点和连字符(. 和 -)。可用于 JMS 代理,这些代理不关心 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。

 

JmsKeyFormatStrategy

transactionCommit Strategy (transaction)

要配置要使用的提交策略。Camel 开箱即用提供了两个实施,即 default 和 batch。

 

TransactionCommit Strategy

destinationCreation 策略 (advanced)

使用自定义 DestinationCreationStrategy。

 

DestinationCreation 策略

timedTaskManager (advanced)

使用自定义 TimedTaskManager

 

TimedTaskManager

messageCreatedStrategy (advanced)

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

 

MessageCreatedStrategy

connectionTestOnBorrow (advanced)

在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,应测试每个 javax.jms.Connection (调用启动),然后再从池返回。

true

布尔值

connectionUsername (security)

使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时创建 javax.jms.Connection 时使用的用户名。

 

字符串

connectionPassword (security)

使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时创建 javax.jms.Connection 时使用的密码。

 

字符串

connectionClientId (advanced)

使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时创建 javax.jms.Connection 时使用的客户端 ID。

 

字符串

connectionMaxWait (advanced)

当池使用默认 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,millis 中用于阻止和等待空闲连接的最大等待时间。

5000

long

headerFilterStrategy (filter)

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

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。

true

布尔值

Simple JMS2 端点使用 URI 语法进行配置:

Copy to Clipboard Toggle word wrap
sjms2:destinationType:destinationName

使用以下路径和查询参数:

308.2.1. 路径参数(2 参数):

名称描述默认值类型

destinationType

要使用的目标类型

queue

字符串

destinationName

必需 DestinationName 是一个 JMS 队列或主题名称。默认情况下,targetName 被解释为队列名称。

 

字符串

308.2.2. 查询参数(37 参数):

名称描述默认值类型

acknowledgementMode (common)

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

AUTO_ ACKNOWLEDGE

SessionAcknowledgement Type

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

consumerCount (consumer)

设置用于此端点的消费者监听程序数量。

1

int

durable (consumer)

将主题消费者设置为 durable。

false

布尔值

durableSubscriptionId (consumer)

设置持久主题所需的持久订阅 Id。

 

字符串

shared (consumer)

将消费者设置为共享。

false

布尔值

subscriptionId (consumer)

设置持久或共享主题所需的订阅 Id。

 

字符串

synchronous (consumer)

设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。

true

布尔值

exceptionHandler (consumer)

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在消费者创建交换时设置交换模式。

 

ExchangePattern

messageSelector (consumer)

设置 JMS Message 选择器语法。

 

字符串

namedReplyTo (producer)

设置用于 InOut producer 端点的回复目的地名称。

 

字符串

persistent (producer)

用于启用/禁用消息持久性的标志。

true

布尔值

producerCount (producer)

设置用于此端点的制作者数量。

1

int

ttl (producer)

用于调整生成消息的 Time To Live 值的标志。

-1

long

allowNullBody (producer)

是否允许发送不包含正文的消息。如果此选项为 false,并且消息正文为 null,则会抛出一个 JMSException。

true

布尔值

prefillPool (producer)

是否在启动时预先填充制作者连接池,或者在需要时创建连接 lazy。

true

布尔值

responseTimeOut (producer)

设置在超时超时响应前应等待的时间。

5000

long

asyncStartListener (advanced)

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

false

布尔值

asyncStopListener (advanced)

在停止路由时,是否异步停止消费者消息监听程序。

false

布尔值

connectionCount (advanced)

此端点可用连接的最大数量

 

整数

connectionFactory (advanced)

为端点初始化 connectionFactory,它优先于组件的 connectionFactory (若有)

 

ConnectionFactory

connectionResource (advanced)

初始化端点的 connectionResource,其优先于组件的 connectionResource (若有)

 

ConnectionResource

destinationCreationStrategy (advanced)

使用自定义 DestinationCreationStrategy。

 

DestinationCreation 策略

exceptionListener (advanced)

指定要收到任何底层 JMS 异常的 JMS Exception Listener。

 

ExceptionListener

headerFilterStrategy (advanced)

使用自定义 HeaderFilterStrategy 过滤标头到 Camel 消息。

 

HeaderFilterStrategy

includeAllJMSXProperties (advanced)

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

false

布尔值

jmsKeyFormatStrategy (advanced)

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

 

JmsKeyFormatStrategy

mapJmsMessage (advanced)

指定 Camel 是否将收到的 JMS 消息自动映射到适合的有效负载类型,如 javax.jms.TextMessage 到 String 等。如需了解更多详细信息,请参阅映射如何工作部分。

true

布尔值

messageCreatedStrategy (advanced)

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

 

MessageCreatedStrategy

errorHandlerLoggingLevel (logging)

允许为日志记录无法捕获的异常配置默认 errorHandler 日志记录级别。

WARN

LoggingLevel

errorHandlerLogStackTrace (logging)

允许默认 errorHandler 控制是否应记录 stacktrace。

true

布尔值

转换 (事务)

指定是否使用转换模式

false

布尔值

transactionBatchCount (transaction)

如果转换了,请在提交事务前将消息数量设置为进程。

-1

int

transactionBatchTimeout (transaction)

为批处理事务设置超时(在 millis 中),该值应该是 1000 或更高。

5000

long

transactionCommitStrategy (transaction)

设置提交策略。

 

TransactionCommit Strategy

sharedJMSSession (transaction)

指定是否与其他 SJMS 端点共享 JMS 会话。如果您的路由正在访问多个 JMS 提供程序,请关闭它。如果您需要对多个 JMS 提供程序进行事务,请使用 jms 组件来利用 XA 事务。

true

布尔值

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.