Websphere MQ - 队列中所有消息占用的磁盘空间?

时间:2013-06-18 06:26:53

标签: ibm-mq

在Websphere MQ中,我们可以使用队列的CURDEPTH属性轻松找出本地队列中有多少消息。

但是如何找到这些消息占用的实际磁盘空间?由于队列中的消息可能具有不同的大小,即它们可能占用不同的磁盘空间。

提前致谢。

3 个答案:

答案 0 :(得分:1)

"队列的名称"磁盘上的文件不会精确映射到队列名称。

  1. 对于使用旧版IBM MQ创建的普通队列,文件将在q目录中调用/var/mqm/qmgrs/QMGR/queues/QUEUE_NAME,其中队列名称中的.字符将替换为! }。
  2. 对于使用较新版本的MQ创建的普通队列(我相信7.5及更高版本),实际文件称为/var/mqm/qmgrs/QMGR/queues/QUEUE_NAME,其中队列名称中的.字符替换为!,它不再是名为q的文件的目录。
  3. 对于动态队列,目录或文件名根本不包含实际的动态队列名称,与!!GHOST!DEADBEEF!0!DEADBEEF!99类似。
  4. 要查找队列文件的确切位置,请使用dspmqfls命令,如下例所示:

    dspmqfls -m QMGR -t ql SYSTEM.DEFAULT.LOCAL.QUEUE
    

    输出将如下所示:

    WebSphere MQ Display MQ Files
    
    QLOCAL    SYSTEM.DEFAULT.LOCAL.QUEUE
    /var/mqm/qmgrs/QMGR/queues/SYSTEM!DEFAULT!LOCAL!QUEUE
    

    请注意,无论位置是目录还是实际文件,输出都是相同的。如果你检查它是一个目录,你可以在目录中查找名为q的文件,如果它是一个实际的"队列"文件。

    队列目录的示例:

    $ls -ld /var/mqm/qmgrs/QMGR/queues/SYSTEM!DEFAULT!LOCAL!QUEUE
    drwxrwx--- 2 mqm mqm 96 Apr  7  2010 /var/mqm/qmgrs/QMGR/queues/SYSTEM!DEFAULT!LOCAL!QUEUE
    

    队列文件示例:

    $ls -ld /var/mqm/qmgrs/QMGR/queues/SYSTEM!DEFAULT!LOCAL!QUEUE
    -rw-rw---- 1 mqm mqm 2048 Jul 19 2016 /var/mqm/qmgrs/QMGR/queues/SYSTEM!DEFAULT!LOCAL!QUEUE
    

    注意 适用于IBM MQ v7.5.0.0到7.5.0.5的APAR IT09611会导致某些队列文件名被截断,这是固定在7.5.0.6。

答案 1 :(得分:0)

您查看队列文件的大小以确定队列中所有消息占用的磁盘空间。队列文件将位于/ qmgrs // queues文件夹下。队列文件名与队列名称相同。

答案 2 :(得分:0)

谢谢Shashi。 对于其他人,队列文件的完整路径是 的/ var / MQM / qmgrs / QMANAGER_FOLDER /队列/ QUEUE_You_Want / Q

QMANAGER_FOLDER - 队列管理器目录
QUEUE_You_Want - 你正在寻找的队列。

文件'q'的大小足以确定队列占用的总磁盘空间。因此,如果文件系统由于某些队列消息而变满,我们可以确定哪个队列占用了多少磁盘空间。