2010-11-18 181 views
2

我有一個定義了傳輸隊列的WebSphere MQ隊列管理器,我使用API​​來獲取有關隊列的一些信息。當試圖查詢隊列時(使用.NET接口,但我認爲這並不重要),我總是會收到一個異常,原因2042: MQRC_OBJECT_IN_USE - 根據the documentation,這意味着在隊列中存在排它鎖。通過一些進一步的調查,我可以看到持有該鎖的進程是runmqchl - MQ Server的一部分。IBM MQ傳輸隊列獨佔鎖定

  • 是傳輸隊列的典型獨佔鎖嗎?
  • 或者這意味着隊列或傳輸有問題?
  • 更好的是,也許有一種方法可以使用API​​對該鎖定隊列(即獲取其深度或瀏覽消息)進行一些查詢(只讀)?

回答

2

SDR或SVR通道將始終打開專用的傳輸隊列。如果.Net客戶端因此發生錯誤,那麼它會要求輸入權限以及查詢。您可以通過使用WMQ資源管理器查詢隊列來驗證這一點,並且您將看到獲取隊列屬性,深度等沒有問題。因此打開詢問而不是瀏覽或獲取,您應該沒問題。