17.6.2. 配置 JMS 地址设置


JMS 子系统有几个可配置选项,它们控制消息如何和何时递送、可以多少次重试、何时过期。这些配置选项都存在于 <address-settings> 配置元素里。
地址配置的一个常见功能是映射多个地址的语法,也称作通配符。
通配符语法

地址通配符可用来映射多个类似的地址到单个语句,就像多个系统使用星号( *)字符来映射多个文件或字符串。下面的字符在通配符语句里都有特定的含义。

Expand
表 17.1. JMS 通配符语法
字符 描述
. (单个句号) 表示通配符表达式里单词间的空格。
# (井字键) 匹配零或多个单词的任意序列。
* (星号) 匹配单个单词。
Expand
表 17.2. JMS 通配符示例
示例 描述
news.europe.#
匹配 news.europenews.europe.sportnews.europe.politic,但不匹配 news.usaeurope
news.
匹配 news.europe 但不匹配 news.europe.sport
news.*.sport
匹配 news.europe.sportnews.usa.sport 但不匹配 news.europe.politics

例 17.2. 默认的地址设置配置

这个例子里的值适用于本节的剩余内容。
<address-settings>
    <!--default for catch all-->
    <address-setting match="#">
        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
        <redelivery-delay>0</redelivery-delay>
        <max-size-bytes>10485760</max-size-bytes>
        <address-full-policy>BLOCK</address-full-policy>
        <message-counter-history-day-limit>10</message-counter-history-day-limit>
    </address-setting>
</address-settings>

Copy to Clipboard Toggle word wrap
Expand
表 17.3. JMS 地址设置的描述
元素 描述 默认值 类型
address-full-policy
确定当已指定 max-size-bytes 的地址已满时发生的事情。
PAGE
STRING
dead-letter-address
如果指定了 Dead Letter 地址,如果 max-delivery-attempts 次递送尝试已失败,消息会移动到这个地址。否则,未递送的消息将被舍弃。这里允许使用通配符。
jms.queue.DLQ
STRING
expiry-address
如果指定了过期地址,过期的消息将被送到这个地址或匹配的地址,而不会被舍弃。这里允许使用通配符。
jms.queue.ExpiryQueue
STRING
last-value-queue
定义队列是否只使用最后的值。
false
BOOLEAN
max-delivery-attempts
在消息被发送到 dead-letter-address 或舍弃前重新递送的最多次数。
10
INT
max-size-bytes
最大值(字节)。
10485760L
LONG
message-counter-history-day-limit
消息计数器历史的每日限制。
10
INT
page-max-cache-size
在页面导航过程中保持在内存里以优化 IO 的页面文件的数量。
5
INT
page-size-bytes
页面大小。
5
INT
redelivery-delay
在重新递送消息间延迟的时间,单位为毫秒。如果为 0,重递送将无限期进行下去。
0L
LONG
redistribution-delay
当队列上最后一个消费者关闭时重新发布任何消息前等待的时间。
-1L
LONG
send-to-dla-on-no-route
设置消息不路由至任何队列而发送至 Dead Letter 地址(DLA)的条件的参数。
false
BOOLEAN
  • 配置地址设置和模式属性

    选择管理 CLI 或管理控制台来配置您的模式属性。
    • 用管理 CLI 配置地址设置

      使用管理 CLI 配置地址设置。
      1. 添加新的模式

        如果有需要,请使用 add 操作来创建新的地址设置。您可以在管理 CLI 会话的根目录里运行这个命令,下面的例子创建了一个名为 patternname 的模式,它的 max-delivery-attempts 属性声明为 5。下面展示了对独立服务器和受管域的 full 配置集的编辑。
        [domain@localhost:9999 /] /profile=full/subsystem=messaging/hornetq-server=default/address-setting=patternname/:add(max-delivery-attempts=5)
        Copy to Clipboard Toggle word wrap
        [standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/address-setting=patternname/:add(max-delivery-attempts=5)
        Copy to Clipboard Toggle word wrap
      2. 编辑模式属性

        使用 write 操作来编写新的属性的值。您可以使用 tab completion 来帮助输入并提示所有可用的值。下面的例子将 max-delivery-attempts 的值更新为 10
        [domain@localhost:9999 /] /profile=full/subsystem=messaging/hornetq-server=default/address-setting=patternname/:write-attribute(name=max-delivery-attempts,value=10)
        Copy to Clipboard Toggle word wrap
        [standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/address-setting=patternname/:write-attribute(name=max-delivery-attempts,value=10)
        Copy to Clipboard Toggle word wrap
      3. 确认模式属性

        使用 read-resource 操作和 include-runtime=true 参数来开放服务器模型里当前活动的所有值,确认值已被修改。
        [domain@localhost:9999 /] /profile=full/subsystem=messaging/hornetq-server=default/address-setting=patternname/:read-resource
        Copy to Clipboard Toggle word wrap
        [standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/address-setting=patternname/:read-resource
        Copy to Clipboard Toggle word wrap
    • 用管理控制台配置地址设置

      使用管理控制台配置地址设置。
      1. 登录到管理控制台。

        登录至受管域或独立服务器的管理控制台。
      2. 如果您使用受管域,请选择正确的配置集。

        选择右上角的 Profiles 标签,然后从下一屏幕左上角的 Profile 菜单里选择正确的配置集。只有 fullfull-ha 配置集启用了 messaging 子系统。
      3. 从导航菜单里选择 Messaging 条目。

        从导航菜单里展开 Messaging 菜单并点击 Destinations
      4. 查看 JMS 供应商。

        JMS 供应商列表将会出现。在 default 配置里只有一个供应商,就是default。点击 View 链接查看这个供应商的详细设置。
      5. 查看地址设置。

        点击 Addressing 标签页。点击 Add 按钮添加新模式,或者点击已有名称及 Edit 按钮进行编辑。
      6. 配置选项。

        如果您在添加新的模式,Pattern 字段引用 address-setting 元素的 match 参数。您也可以编辑e Dead Letter Address, Expiry Address, Redelivery DelayMax Delivery Attempts。其他选项需要用管理 CLI 进行配置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat