Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm mq 磁盘已满,导致MQ死机_Ibm Mq - Fatal编程技术网

Ibm mq 磁盘已满,导致MQ死机

Ibm mq 磁盘已满,导致MQ死机,ibm-mq,Ibm Mq,我们有一个使用WebSphere MQ 7.0.1.3的应用程序。在我们的阶段环境中进行广泛测试期间,磁盘已满 在此之后,MQ将挂起。我们删除了应用程序日志(与MQ无关)并添加了更多磁盘,但这并没有解决问题 我们尝试重新启动队列管理器: $ endmqlsr $ endmqm XYZ $ strmqm XYZ WebSphere MQ queue manager 'XYZ' starting. WebSphere MQ was unable to display an error message

我们有一个使用WebSphere MQ 7.0.1.3的应用程序。在我们的阶段环境中进行广泛测试期间,磁盘已满

在此之后,MQ将挂起。我们删除了应用程序日志(与MQ无关)并添加了更多磁盘,但这并没有解决问题

我们尝试重新启动队列管理器:

$ endmqlsr
$ endmqm XYZ
$ strmqm XYZ
WebSphere MQ queue manager 'XYZ' starting.
WebSphere MQ was unable to display an error message 893.
磁盘已满且发生错误时的日志:

----- amqxfdcx.c : 828 --------------------------------------------------------
06/08/2018 03:36:44 AM - Process(8832.5) User(mqm) Program(amqzlaa0)
AMQ6119: An internal WebSphere MQ error has occurred (Rc=28 from write)
----- amqxfdcx.c : 783 --------------------------------------------------------
06/08/2018 03:36:44 AM - Process(8832.5) User(mqm) Program(amqzlaa0)
AMQ6184: An internal WebSphere MQ error has occurred on queue manager XYZ.
----- amqxfdcx.c : 822 --------------------------------------------------------
06/08/2018 03:36:46 AM - Process(8832.5) User(mqm) Program(amqzlaa0)
AMQ6119: An internal WebSphere MQ error has occurred (Rc=28 from write)
----- amqxfdcx.c : 783 --------------------------------------------------------
06/08/2018 03:36:46 AM - Process(8832.5) User(mqm) Program(amqzlaa0)
AMQ6184: An internal WebSphere MQ error has occurred on queue manager XYZ.
AMQ6119: An internal WebSphere MQ error has occurred ('28 - No space left on device' from semget.)
----- amqxfdcx.c : 783 --------------------------------------------------------
06/14/2018 02:35:46 PM - Process(6794.1) User(mqm) Program(amqzxma0)
AMQ6184: An internal WebSphere MQ error has occurred on queue manager XYZ.
----- amqxfdcx.c : 822 --------------------------------------------------------
06/14/2018 02:35:46 PM - Process(6794.1) User(mqm) Program(amqzxma0)
AMQ6118: An internal WebSphere MQ error has occurred (20006037)
尝试连接IBM WebSphere MQ资源管理器时

Queue manager not available for connection - reason 2059. (AMQ4043)
Severity: 20 (Error)
Explanation: The attempt to connect to the queue manager failed. This could be because the queue manager is incorrectly configured to allow a connection from this system, or the connection has been broken.
Response: Ensure that the queue manager is running. If the queue manager is running on another computer, ensure it is configured to accept remote connections.
是否有一种方法可以清除队列中的所有消息并重置所有标志,以便队列管理器将启动,队列将再次工作

队列中只有旧的测试数据,没有任何有价值的数据


或者您对如何解决此问题还有其他建议吗?

您可以使用
mqrc
命令提供有关错误的更多信息。大多数情况下,MQ将返回代码报告为四位十进制数。在这种情况下,由于返回码是三位数字,因此通常(总是?)表示它是十六进制返回码

$ mqrc 2195

      2195  0x00000893  MQRC_UNEXPECTED_ERROR
当MQ遇到意外的错误条件时,会引发此错误。通常,您会发现FDC文件是在
/var/mqm/errors
目录中创建的,可以提供更多细节


当您收到此类错误时,最好的做法是与IBM一起打开PMR,并让他们提供恢复指导,以确保您有最好的机会保留队列中可能存在的消息,但是您使用的MQ(7.0)版本自2015年9月30日起就不再受支持。您所使用的特定补丁包(7.0.1.3)于2010年8月发布。IBM最新发布的v7.0是2016年8月的7.0.1.14

如果您向IBM支付扩展支持的费用,您可以与他们一起打开PMR以获得进一步的支持

解决问题后,最好的方法是迁移到受支持的IBM MQ版本。目前,v8.0和v9.0是目前唯一受支持的IBM MQ版本


假设您没有扩展支持并且无法从IBM获得帮助,以下是一些建议的步骤:

  • 即使更新到最新的补丁包(7.0.1.14)也可能有所帮助,如果不能解决问题,最好是使用不受支持的IBM MQ版本的最新补丁包

  • 您可以尝试冷启动队列管理器,看看这是否有帮助。从演示文稿的第4页开始记录

    • 创建与失败队列管理器完全相同的队列管理器

      • 使用qm.ini计算crtmqm命令的参数

        Log:
          LogPrimaryFiles=10
          LogSecondaryFiles=10
          LogFilePages=65535
          LogType=CIRCULAR
        
    • 发出crtmqm命令

      Log:
        LogPrimaryFiles=10
        LogSecondaryFiles=10
        LogFilePages=65535
        LogType=CIRCULAR
      
      • crtmqm-lc-lf 65535-lp 10-ls 10-ld/tmp/mqlogs TEMP.QMGR
      • 确保该目录中有足够的空间存放新日志文件
    • 虚拟队列管理器的名称不相关

      • 只关心获取日志文件
    • 不要启动这个虚拟队列管理器,只需创建它

    • 用新日志替换旧日志和amqhlctl.lfh

      • 注意“损坏”的目录名…这是正常的

    • 如果消息是持久的,队列中的数据将被保留

    • 对象定义也被保留

      • 对象在其文件中包含自己的定义
      • QMQMOBJCAT中保存的文件和对象名称之间的映射

    完成上述所有操作后,请尝试启动队列管理器。

    是否检查了生成的FDC文件?也许它提供了更多关于错误的细节。@JoshMc你的第二个建议成功了。这就是我问题的答案。在遇到很多问题之后,我开始将MQ更新到7.0.1.14。之后,我跟随了您链接到的演示文稿,这就是解决方案。@buzztr我添加了一个答案,其中包含了我之前给您留下的评论中的详细信息(以及更多)。如果你觉得这很有帮助,请接受答案,并投票给你认为合适的人。我认为第二个项目符号“使用qm.ini…”可能更清楚,如果它说“使用您现有的qm.ini来计算crtmqm命令的参数,例如:“可能显示logPrimaryFiles部分是从“$cat/var/mqm/qmgrs/_oldQmgrName\uqm.ini”输出的”?