Show Table of Contents
20.5.4. 分页模式
当递送到某个地址的消息超过了指定的大小,该地址将进入分页模式(page/paging mode)。
注意
分页是针对单个地址的。如果您为某个地址配置了
max-size-bytes,就表示每个匹配的地址将有这个最大尺寸的限制。然而,这并不意味着所有匹配的地址的总共大小被限制为 max-size-bytes。
您可以在服务器配置文件(
standalone.xml 和 domain.xml)里为某个地址配置最大字节数(max-size-bytes)。
<address-settings>
<address-setting match="jms.someaddress">
<max-size-bytes>104857600</max-size-bytes>
<page-size-bytes>10485760</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
下表描述了地址设置的参数:
表 20.4. 分页地址设置
| 元素 | 默认值 | 描述 |
|---|---|---|
| max-size-bytes | 10485760 |
它用来指定进入分页模式前这个地址可以容纳的最大内存大小。
|
| page-size-bytes | 2097152 |
它用来指定分页系统上每个分页文件的大小。
|
| address-full-policy | PAGE |
这个属性的值用于分页决策。您可以设置为这些值:
PAGE:启用分页且将超过限额的消息转储在磁盘里,DROP:丢弃超过限制的消息,FAIL:丢弃消息并发送异常到客户消息生产者,BLOCK:当发送的消息超过限额时阻塞客户消息生产者。
|
| page-max-cache-size | 5 |
系统将保持内存里的分页文件为
page-max-cache-size 以优化分页导航过程中的输入/输出。
|
重要
如果当到达最大大小时您不想将消息分页,您可以选择设置某个地址的
address-full-policy 为 DROP、FAIL 和 BLOCK 分别来简单地丢弃消息、丢弃消息并在客户端抛出异常、或者阻止生产者发送更多的消息。在默认配置里,所有的地址都在达到 max-size-bytes 后开始对消息分页。
具有多个队列的地址
当消息被路由至某个绑定多个队列的地址时,这个消息在内存里只有一个备份。每个队列都只处理原始消息备份的引用。因此,只有当引用原始消息的所有队列已经递送消息后,内存才会被释放。
注意
单个的 lazy 队列/订阅可能降低整个地址的输入/输出性能,这是因为所有的队列都将消息通过分页系统上的额外存储进行发送。

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.