[V8.0.0.4 2015 年 10 月]

强制缩短到期时间

管理员可以使用在队列或主题的 CUSTOM 属性中指定的 CAPEXPRY 属性来限制放入队列或主题的任何消息的到期时间。

[z/OS]要在 z/OS®上启用此功能,必须应用 APAR PI50761 并使用 MQSC 命令 RECOVER QMGR (TUNE CAPEXPRY ON)启用新功能。
重要信息: RECOVER QMGR 命令保留供 IBM®使用,通常仅应在 IBM 支持人员的指导下使用。

[z/OS]您可以在控制台输入命令,也可以通过在队列管理器启动期间添加到 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 属性可能会导致此错误。

注: CAPEXPRY 不得用于将保存 IBM MQ 内部生成的消息 (例如,任何 SYSTEM.CLUSTER.* 队列和 SYSTEM.PROTECTION.POLICY.QUEUE。