Эксклюзивная блокировка очереди передачи IBM MQ - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть WebSphere MQ Queue Manager с определенной очередью передачи, и я использую API для получения некоторой информации об очереди. При попытке запросить очередь (используя интерфейс .NET, но я считаю, что это здесь не важно), я всегда получаю исключение с причиной 2042: MQRC_OBJECT_IN_USE - согласно документации , это означает, что блокировка в очереди. По некоторым дальнейшим исследованиям я вижу, что процесс, удерживающий блокировку, является runmqchl - частью MQ Server.

  • Является ли эксклюзивная блокировка типичной для очередей передачи?
  • Или это означает, что что-то не так с очередью или передачей?
  • Еще лучше, может быть, есть способ сделать несколько запросов (только для чтения) в эту заблокированную очередь (то есть, чтобы получить ее глубину или просмотреть сообщения), используя API?

1 Ответ

2 голосов
/ 18 ноября 2010

Канал SDR или SVR всегда открывает очередь передачи для исключительного использования.Если клиент .Net получает ошибку из-за этого, он запрашивает права ввода и запрашивает.Вы можете проверить это с помощью WMQ Explorer, чтобы запросить очередь, и вы увидите, что у нее нет проблем с получением атрибутов очереди, глубин и т. Д. Так что открывайте для запроса, но не просматривайте и не получайте, и все будет в порядке.

...