20.6.2. 配置 JMS 地址设置
<address-settings> 配置元素里。
地址通配符可用来映射多个类似的地址到单个语句,就像多个系统使用星号( *)字符来映射多个文件或字符串。下面的字符在通配符语句里都有特定的含义。
表 20.5. JMS 通配符语法
| 字符 | 描述 |
|---|---|
| . (单个句号) | 表示通配符表达式里单词间的空格。 |
| # (井字键) | 匹配零或多个单词的任意序列。 |
| * (星号) | 匹配单个单词。 |
表 20.6. JMS 通配符示例
| 实例 | 描述 |
|---|---|
| news.europe.# |
匹配
news.europe、news.europe.sport、news.europe.politic,但不匹配 news.usa 或 europe。
|
| news.* |
匹配
news.europe 但不匹配 news.europe.sport。
|
| news.*.sport |
匹配
news.europe.sport 和 news.usa.sport 但不匹配 news.europe.politics。
|
例 20.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>
表 20.7. 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 配置地址设置。添加新的模式
如果有需要,请使用add操作来创建新的地址设置。您可以在管理 CLI 会话的根目录里运行这个命令,下面的例子创建了一个名为 patternname 的模式,它的max-delivery-attempts属性声明为 5。下面展示了对独立服务器和受管域的full配置集的编辑。[standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/address-setting=patternname/:add(max-delivery-attempts=5)
[domain@localhost:9999 /] /profile=full/subsystem=messaging/hornetq-server=default/address-setting=patternname/:add(max-delivery-attempts=5)
编辑模式属性
使用write操作来编写新的属性的值。您可以使用 tab completion 来帮助输入并提示所有可用的值。下面的例子将max-delivery-attempts的值更新为 10。[standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/address-setting=patternname/:write-attribute(name=max-delivery-attempts,value=10)
[domain@localhost:9999 /] /profile=full/subsystem=messaging/hornetq-server=default/address-setting=patternname/:write-attribute(name=max-delivery-attempts,value=10)
确认模式属性
通过include-runtime=true参数运行read-resource操作来确认值已修改以开放服务器模型里所有当前的值。[standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/address-setting=patternname/:read-resource
[domain@localhost:9999 /] /profile=full/subsystem=messaging/hornetq-server=default/address-setting=patternname/:read-resource
用管理控制台配置地址设置
使用管理控制台配置地址设置。- 登录至受管域或独立服务器的管理控制台。
- 选择屏幕顶部的 Configuration 标签页。对于域模式,在屏幕左上角的 Profile 菜单里选择配置集。只有
full和full-ha配置集启用了messaging子系统。 - 展开 Messaging 菜单,然后选择 Destinations。
- JMS 供应商列表将会出现。在 default 配置里只有一个供应商,就是
default。点击 View 链接查看这个供应商的详细设置。 - 点击 Addressing Settings 标签页。点击 按钮添加新模式,或者选择已有模式并点击 按钮更新设置。
- 如果您在添加新的模式,Pattern 字段引用
address-setting元素的match参数。您也可以编辑e Dead Letter Address, Expiry Address, Redelivery Delay 和 Max Delivery Attempts。其他选项需要用管理 CLI 进行配置。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.