2010-11-18 123 views
2

我有一个定义了传输队列的WebSphere MQ队列管理器,我使用API​​来获取有关队列的一些信息。当试图查询队列时(使用.NET接口,但我认为这并不重要),我总是会收到一个异常,原因2042: MQRC_OBJECT_IN_USE - 根据the documentation,这意味着在队列中存在排它锁。通过一些进一步的调查,我可以看到持有该锁的进程是runmqchl - MQ Server的一部分。IBM MQ传输队列独占锁定

  • 是传输队列的典型独占锁吗?
  • 或者这意味着队列或传输有问题?
  • 更好的是,也许有一种方法可以使用API​​对该锁定队列(即获取其深度或浏览消息)进行一些查询(只读)?

回答

2

SDR或SVR通道将始终打开专用的传输队列。如果.Net客户端因此发生错误,那么它会要求输入权限以及查询。您可以通过使用WMQ资源管理器查询队列来验证这一点,并且您将看到获取队列属性,深度等没有问题。因此打开询问而不是浏览或获取,您应该没问题。