事务日志文件系统(/ var / mqm / log)已满,并且在尝试客户端连接到此队列管理器时,我正在使用队列管理器获得MQRC 2102资源问题。我们可以采取什么行动来解决这个问题?
LogPrimaryFiles=2
LogSecondaryFiles=8
LogFilePages=16384
LogType=CIRCULAR
LogBufferPages=0
LogPath=/var/mqm/log/QMGRA/
LogWriteIntegrity=TripleWrite
向/ var / mqm / log添加额外的磁盘空间是唯一的解决方案吗?
我有几个已满的队列,但队列存储文件系统只使用了60%。
请给我一些想法。
答案 0 :(得分:3)
日志文件页面各为4096字节,因此设置LogFilePages=16384
会导致每个日志文件范围为64MB。设置为LogPrimaryFiles=2
和LogSecondaryFiles=8
时,最多可以有10个日志文件,总计640MB。如果循环日志所在的文件系统小于此数量,则可能会填满。
此处的最佳解决方案是将日志文件磁盘分配的大小增加到比日志文件范围所需的大一点。如果这不可能或者您需要临时修复,则需要通过减少扩展数量并重新启动QMgr来更改日志文件要求的大小。请注意,您可以调整日志范围的数量,但不能调整范围的大小。如果有必要更改LogFilePages=16384
参数,则需要重建QMgr。
范围的数量和大小表示一次可以在同步点下的数据总量,但在大多数情况下640MB是慷慨的。就时间而言,它还限制了活动QMgr上工作单元的最长可能持续时间。这是因为如果日志文件中的头指针曾经超过尾指针,则会回滚未完成的事务。例如,假设某个频道进入重试状态。它在同步点下保存一批消息,并保持该日志范围处于活动状态。当应用程序和其他通道执行其正常操作时,附加事务驱动头指针向前。最终将使用所有范围,尽管可能只有很少的未完成事务,但最旧的事务将被回滚以释放该范围并向前推进尾部指针。如果错误日志显示许多事务被回滚到空闲日志空间,那么您真的需要为日志文件分区分配更多空间并减少扩展数量。