跳到主要内容

标准JMS API的扩展

Solace JMS 使用以下对标准 JMS API 的扩展。这些扩展包括 JMS 属性和实用函数。

有关可以通过哪些各种属性源设置 JMS 属性、它们如何定义以及每个潜在属性源如何优先级排序的信息,请参阅 JMS 属性参考。

标准 JMS 的扩展描述
认证方案 (SOLACE_JMS_AUTHENTICATION_SCHEME)指定客户端连接要使用的认证方案的数据和 JNDI 连接属性。有关详细信息,请参阅认证方案。
压缩级别 (SOLACE_JMS_COMPRESSION_LEVEL)一个数据连接属性,用于启用生产者、消费者和事件代理之间消息流量的压缩。
创建 JNDI 对象实用函数可以使用以下实用函数来编程创建 JNDI 对象:
  • SolJmsUtility.createConnectionFactory(...) — 创建 Solace 专有的 ConnectionFactory 实现。
  • SolJmsUtility.createQueue(...) — 给定主题名称,创建 Solace 专有的队列实现。
  • SolJmsUtility.createTopic(...) — 给定主题名称,创建 Solace 专有的主题实现。 | | 死信队列(DMQ)合格 (SOLACE_JMS_PROP_DEAD_MSG_QUEUE_ELIGIBLE)| 一个 API 属性,允许 Solace JMS API 在保证消息的生存时间(TTL)值到期时,将其从队列或主题端点移动到 DMQ。
    DMQ 是一种特殊的消息队列,可以在事件代理上配置,用于暂存具有到期 TTL 的 DMQ 合格消息,而不是丢弃这些消息。
    有关详细信息,请参阅死信队列资格。 | | 传递给一个 (SOLACE_JMS_PROP_DELIVER_TO_ONE)| 一个消息属性,用于指定如果发布的消息与事件代理上的多个直接传输客户端匹配,则只能将消息传递给其中的一个客户端。
    有关详细信息,请参阅向单个消费者传递消息。 | | 传递给一个覆盖 (SOLACE_JMS_DELIVER_TO_ONE_OVERRIDE)| 一个消息属性,允许 API 覆盖为消息设置的传递给一个标志。此可选设置允许客户端接收所有标记为传递给一个的消息。
    有关详细信息,请参阅向单个消费者传递消息。 | | 丢弃指示 (SOLACE_JMS_PROP_MSG_DISCARD_INDICATION)| 一个消息属性,提供当前消息之前的消息已被丢弃的指示。
    有关详细信息,请参阅消息丢弃通知。 | | 动态持久端点 (SOLACE_JMS_DYNAMIC_DURABLES) | 一个 API 属性,允许 Solace JMS API 在事件代理上动态配置持久端点,而不是依赖管理员通过 CLI 或 SolAdmin 静态配置它们。参阅动态持久端点。 | | 省略合格 (SOLACE_JMS_PROP_ELIDING_ELIGIBLE) | 一个消息属性,指定发布的消息符合消息省略的条件。 参阅省略资格。 | | 获取消息大小实用函数 (SolJmsUtility.getMessageSize()) | 一个实用函数,用于获取消息负载的编码大小(以字节为单位)。 | | JMS 客户端描述 (SOLACE_JMS_CLIENT_DESCRIPTION) | 一个 JNDI 连接属性,用于设置 JMS 连接(即数据连接)的客户端描述。 | | JNDI 客户端描述 (SOLACE_JMS_JNDI_CLIENT_DESCRIPTION) | 一个数据连接属性,用于设置 JNDI 连接的客户端描述。 | | JMS 消息序列化实用函数 | 可以使用以下实用函数来序列化和反序列化 JMS 消息:
  • SolJmsUtility.fromByteArray() — 将表示序列化 JMS 消息的字节数组转换为 JMS 消息。
  • SolJmsUtility.toByteArray() — 将 JMS 消息序列化为字节数组。 | | 消息回调在 I/O 线程 (SOLACE_JMS_MSG_CALLBACK_ON_IO_THREAD) | 一个 API 属性,允许 Solace JMS API 从 I/O 线程而不是从消费者通知线程异步传递直接传输模式发送的消息给消费者。 此选项提供更低的延迟;然而,最大消息吞吐量会降低。 | | XML 负载 (SOLACE_JMS_PROP_ISXML) | 一个消息属性,指定文本消息包含 XML 内容,以便可以根据其 XML 内容而不是目的地进行路由。 | | 消息转储实用函数 (SolJmsUtility.dumpMessage()) | 一个实用函数,用于生成消息属性和内容的人类可读转储。参阅显示消息。 | | 消息 VPN (SOLACE_JMS_VPN) | 一个数据连接属性,指定会话应尝试连接到的事件代理上的消息 VPN。如果未指定,会话将尝试将客户端加入事件代理配置的默认消息 VPN。 | | OAuth 2.0 访问令牌 (SOLACE_JMS_OAUTH2_ACCESS_TOKEN) | 一个数据连接属性,指定 OAuth 2.0 访问令牌。参阅 OAuth2 访问令牌。 | | OAuth 2.0 发行者标识符 (SOLACE_JMS_OAUTH2_ISSUER_IDENTIFIER) | 一个数据连接属性,指定 OAuth 2.0 发行者标识符。参阅 OAuth 发行者标识符。 | | OIDC ID 令牌 (SOLACE_JMS_OIDC_ID_TOKEN) | 一个数据连接属性,指定 OIDC ID 令牌。参阅 OIDC ID 令牌。 | | 优化直接传输 (SOLACE_JMS_OPTIMIZE_DIRECT) | 一个数据连接属性,可用于仅允许每个连接创建一个生产者和一个消费者,以优化使用直接消息传递时的消息速率。 | | 尊重 TTL (SOLACE_JMS_RESPECT_TIME_TO_LIVE) | 一个 API 属性,允许端点尊重接收到的消息的 TTL 值。 有关详细信息,请参阅生存时间。 | | Solace 客户端确认模式 (SOL_CLIENT_ACKNOWLEDGE) | Solace 定义的消息确认模式。参阅确认模式。 | | Solace 事件监听器 (com.solacesystems.jms.SolEventSource) | 一个接口,允许客户端应用程序为感兴趣的事件(例如,活动流指示)注册监听器。 | | 订阅者本地 DTO 优先级 (SOLACE_JMS_SUBSCRIBER_LOCAL_DTO_PRIORITY) | 一个数据连接属性,设置客户端订阅在直接连接到的事件代理上接收传递给一个消息的优先级。 有关详细信息,请参阅向单个消费者传递消息。 | | 订阅者网络 DTO 优先级 (SOLACE_JMS_SUBSCRIBER_NETWORK_DTO_PRIORITY) | 一个数据连接属性,设置客户端订阅接收其他 Solace PubSub+ 事件代理发布的传递给一个消息的优先级。 网络 DTO 优先级订阅标志目前被 Solace JNDI 忽略。它们保留用于未来发展。 | | 使用默认上下文 (SOLACE_JMS_USE_DEFAULT_CONTEXT) | 一个数据连接属性,设置是否每个 JMS 连接到事件代理都在单个默认上下文中创建,或者是否为每个连接创建一个新上下文(默认)。请注意,每个创建的上下文都使用一个单独的处理线程。有关详细信息,请参阅管理会话。 | | 通配符目的地 | 支持消费者目的地名称中的通配符。参阅主题支持和语法。 |

Solace JMS 扩展