307.2. 组件选项和配置


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

Expand
Name描述默认值类型

ConnectionFactory (advanced)

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

 

ConnectionFactory

connectionResource (advanced)

ConnectionResource 是一个接口,允许对 ConnectionFactory 进行自定义和容器控制。如需了解更多详细信息,请参阅 插件连接资源管理。

 

ConnectionResource

connectionCount (common)

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

1

整数

jmsKeyFormatStrategy (advanced)

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

 

JmsKeyFormatStrategy

transactionCommit 策略 (transaction)

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

 

TransactionCommit 策略

destinationCreation Strategy (advanced)

使用自定义 DestinationCreationStrategy。

 

DestinationCreation 策略

timedTaskManager (advanced)

使用自定义 TimedTaskManager

 

TimedTaskManager

messageCreatedStrategy (advanced)

要使用给定的 MessageCreatedStrategy,后者在 Camel 在 Camel 发送 JMS 消息时创建 javax.jms.Message 对象的新实例。

 

MessageCreatedStrategy

connectionTestOnBorrow (advanced)

在使用默认的 org.apache.camel.component.sjms.jms.ConnectionFactoryResource 时,在从池返回之前,每个 javax.jms.Connection 应经过测试(调用 start)。

true

布尔值

connectionUsername (security)

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

 

字符串

connectionPassword (security)

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

 

字符串

connectionClientId (advanced)

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

 

字符串

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 JMS 端点使用 URI 语法进行配置:

sjms:destinationType:destinationName

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

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

Expand
Name描述默认值类型

destinationType

要使用的目的地类型

queue

字符串

destinationName

required DestinationName 是 JMS 队列或主题名称。默认情况下,destinationName 解释为队列名称。

 

字符串

307.2.2. 查询参数(34 参数):

Expand
Name描述默认值类型

acknowledgementMode (common)

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

AUTO_ 确认

SessionAcknowledgement Type

bridgeErrorHandler (consumer)

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

false

布尔值

consumerCount (consumer)

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

1

int

durableSubscriptionId (consumer)

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

 

字符串

同步 (consumer)

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

true

布尔值

ExceptionHandler ( consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

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

 

ExchangePattern

messageSelector (consumer)

设置 JMS Message selector 语法。

 

字符串

namedReplyTo (producer)

将回复设置为用于 InOut producer 端点的目的地名称。回复目的地的类型可以通过其名称中的起始前缀(topic: 或 queue:)决定。

 

字符串

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)

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

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。默认策略可以安全地放入点和连字符(. 和 -)。passthrough 策略将密钥保留原样。可用于 JMS 代理,其不小心是 JMS 标头键是否包含非法字符。您可以提供自己的 org.apache.camel.component.jms.JmsKeyFormatStrategy 的实现,并使用 # 表示法引用它。

 

JmsKeyFormatStrategy

mapJmsMessage (advanced)

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

true

布尔值

messageCreatedStrategy (advanced)

要使用给定的 MessageCreatedStrategy,后者在 Camel 在 Camel 发送 JMS 消息时创建 javax.jms.Message 对象的新实例。

 

MessageCreatedStrategy

errorHandlerLoggingLevel (logging)

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

WARN

LoggingLevel

errorHandlerLogStackTrace (logging)

允许由默认的 errorHandler 控制是否应记录堆栈追踪。

true

布尔值

转换 (事务)

指定是否使用转换模式

false

布尔值

transactionBatchCount (transaction)

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

-1

int

transactionBatchTimeout (transaction)

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

5000

long

transactionCommitStrategy (transaction)

设置提交策略。

 

TransactionCommit 策略

sharedJMSSession (transaction)

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

true

布尔值

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部