我正在将队列从一个QM迁移到另一个。我停止了应用程序读取队列,但是我无法控制将其放入队列中的应用程序。
我想做的是:
为此,我需要停止执行PUT的应用程序,因为它会使旧队列保持打开状态(尝试删除时出现“对象已打开”错误)。但是,由于某些SLA限制,无法轻松停止所讨论的应用程序。
我想找到一个命令,该命令将强制释放此队列并将其删除,从而强制客户端(执行PUT的应用程序)重新连接。还是有其他方法可以在运行时达到此目的?
具有打开句柄的队列无法删除。我建议停止从应用程序的连接,然后在应用程序建立新连接之前删除队列。另一种选择是停止通道实例,删除队列,然后启动通道实例。但是,对于SVRCONN通道,如果其他应用程序使用相同的通道,则会影响它们。
使用DISPLAY CONN识别连接:
http://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.ref.adm.doc/q086140_.htm
使用STOP CONN停止连接:http : //www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.ref.adm.doc/q086790_.htm
如果这没有帮助(例如,应用程序可能在删除队列之前启动了新的连接),则可以尝试使用STOP CHL。但是,如所示,其他应用程序可能会受到影响,具体取决于它们使用的是同一通道还是不同的通道。此外,如果以FASTPATH模式(受信任的侦听器)运行频道进程,则不能使用FORCE模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句