![[V8.0.0.4 2015 年 10 月]](ng8004.gif)
强制缩短到期时间
管理员可以使用在队列或主题的 CUSTOM 属性中指定的 CAPEXPRY 属性来限制放入队列或主题的任何消息的到期时间。
要在 z/OS®上启用此功能,必须应用 APAR PI50761 并使用 MQSC 命令 RECOVER QMGR (TUNE
CAPEXPRY ON)启用新功能。
您可以在控制台输入命令,也可以通过在队列管理器启动期间添加到 CSQINP2 并置中处理的文件来输入队列管理器配置。 请注意,该命令的效果不会在队列管理器重新启动时持久存在。
应用程序在 MQMD 的 Expiry 字段中指定的到期时间 (大于队列或主题的 CUSTOM 属性中指定的 CAPEXPRY 值) 将替换为该 CAPEXPRY 值。 将使用应用程序指定的低于 CAPEXPRY 值的到期时间。
请注意, CAPEXPRY 的值以十分之一秒为单位,因此一分钟的值为 600。
如果在解析路径上使用了多个对象 (例如,将消息放入别名或远程队列时) ,那么所有 CAPEXPRY 值中的最低值将用作消息到期的上限。
对 CAPEXPRY 值所作的更改将立即生效。 将对每个放入队列或主题的到期值进行求值,因此对对象解析很敏感,这可能在每个放入操作之间有所不同。
但是,请注意,在 CAPEXPRY中进行更改之前,队列中的现有消息不受更改影响 (即,其到期时间保持不变)。 只有在 CAPEXPRY 中的更改后放入队列中的新消息才具有新的到期时间。
例如,在对使用 MQOO_BIND_NOT_FIXED打开的队列执行 put 的集群中,可以根据为传输队列设置的 CAPEXPRY 值 (通道使用该值将消息发送到所选目标队列管理器) ,在每个 put 上分配不同的到期值。
请注意,如果传递延迟超过目标队列或主题的已解析到期时间,那么 JMS 应用程序指定传递延迟的放入队列或主题会失败,并返回 MQRC_EXPIRY_ERROR。 针对 JMS 目标解析的队列上设置的 CAPEXPRY 属性可能会导致此错误。