Sun Java System Message Queue 3.7 UR1 技术概述

管理内存

因为目的地可能使用大量的资源(取决于它们处理的消息的数量和大小以及注册的使用方数量和长期性),所以需要对它们进行严格的管理,以保证消息传送服务具有良好的性能和可靠性。

可以设置一些属性,以防止向代理传入过多的消息并防止代理内存不足。代理使用以下三级内存保护,使消息服务在资源不足时仍可正常运行:目的地限制、系统范围限制以及系统内存阈值。理想情况下,如果目的地限制和系统范围限制设置得当,则应当不会达到紧急系统内存阈值。

目的地消息限制

可以设置用来管理每个目的地的内存和消息流的目的地属性。例如,可指定目的地允许的生成方的最大数量、目的地允许的消息的最大数量或最大大小以及任何一条消息的最大大小。

还可以指定在达到上述任何限制时代理的响应方式:降低生成方的速度、丢弃最旧的消息、丢弃优先级最低的消息或者拒绝最新的消息。

系统范围消息限制

还可以使用属性来设置应用于代理中所有目的地的限制:可以指定消息总数和所有消息占用的内存。如果达到了任何系统范围消息限制,代理将拒绝新消息。

系统内存阈值

最后,可以使用属性来设置阈值。当达到阈值时,代理会采取越来越严格的措施来防止内存过载。采取的操作取决于内存资源的状态:green(可用内存充足)、yellow(代理内存不足)、orange(代理内存严重不足)、red(代理无可用内存)。随着代理的内存状态从 green 变为 red,代理所采取的措施也会越来越严格: