[MQ 9.2.0 2020 年 7 月][UNIX、Linux、Windows、IBM i]

更改 IBM MQ 队列文件的大小

您可以增大或减小队列文件的最大大小。

开始之前

在为队列文件设置新大小之前,使用 DISPLAY QLOCAL 命令查看要更改的队列文件大小。 例如,发出以下命令:
DISPLAY QLOCAL(SYSTEM.DEFAULT.LOCAL.QUEUE) MAXFSIZE
您将收到以下输出:
AMQ8409I: Display queue details
  QUEUE(SYSTEM.DEFAULT.LOCAL.QUEUE)        TYPE(QLOCAL)
  MAXFSIZE(DEFAULT)

显示队列文件的最大大小为缺省值 2,088,960 MB。

关于本任务

以下过程向您说明如何执行以下操作:
  • 减小队列文件可增长到的最大大小。
  • 增大队列文件可增长到的最大大小。
    注意: 您应该谨慎地增大队列文件的大小,而不考虑应用程序的写入方式以及对性能的可能影响。 在非常大的队列文件中随机访问消息可能非常慢。

    如果考虑增加队列文件的最大容量,使其超出默认值,则应谨慎使用相关 ID 和 IBM® MQ classes for JMS 选择器字符串等消息选择器。 较大的队列文件更适合先入先出访问队列。

    在单个队列文件中有大量数据应该仅在为循环日志记录配置的队列管理器上执行,或者在未对单个队列启用介质映像的情况下执行。

    不应限制 SYSTEM 队列的大小,因为这可能会影响队列管理器的操作。

过程

  1. 减小最大队列文件大小
    1. 执行以下命令创建名为 SMALLQUEUE 的本地文件,文件大小为 500 千兆字节:
      DEFINE QLOCAL(SMALLQUEUE) MAXFSIZE(512000)
           2 : DEFINE QLOCAL(SMALLQUEUE) MAXFSIZE(512000)
      AMQ8006I: IBM MQ queue created  
      您将收到以下消息: AMQ8006I:
      注: 如果配置的队列的值小于文件中已有的数据量,那么不能将新消息放入队列中。

      如果应用程序尝试将消息放入没有足够空间的队列文件,那么应用程序将接收到返回码 MQRC_Q_SPACE_NOT_AVAILABLE。 当从队列以破坏性方式读取足够的消息时,应用程序可以开始将新消息放入队列。

  2. 增大最大队列文件大小。
    1. 发出以下命令,创建一个名为 LARGEQUEUE 的本地文件,文件大小为 5 TB:
      DEFINE QLOCAL(LARGEQUEUE) MAXFSIZE(5242880)
           3 : DEFINE QLOCAL(LARGEQUEUE) MAXFSIZE(5242880)
      AMQ8006I: IBM MQ queue created