2017-06-19 140 views
1

我有一個隊列'SYSTEM.MANAGED.DURABLE.ABCD *** 109'一直在收取消息,沒有人消耗它。 我試圖獲取其訂閱,但得到以下結果,孤兒SYSTEM.MANAGED.DURABLE。*隊列中的Websphere MQ

dis sub(*) where (DEST LK 'SYSTEM.MANAGED.DURABLE.ABCD***109') 

AMQ8096: IBM MQ subscription inquired. 
    SUBID(414D5120******************44A0109) 
    SUB(false) 
    DEST(SYSTEM.MANAGED.DURABLE.ABCD***44A0108) 

然後我試圖通過列出的訂閱ID來查看訂閱,

 dis sbstatus(*) where (SUBID EQ '414D5120***44A0109') 
AMQ8099: IBM MQ subscription status inquired. 
    SUB(false) 
    SUBID(414D5120***44A0109) 

我沒有訂閱命名爲「假「。打開時,我無法清除或刪除此隊列。我也無法查看打開的連接。

dis conn(*) where (objname eq 'SYSTEM.MANAGED.DURABLE.ABCD***44A0108') 
AMQ8461: Connection identifier not found. 

我需要清理&刪除此隊列以避免磁盤空間問題。

+0

您可以添加當您看到SUB(false)時使用的MQ的版本和平臺,並且您是否可以使用runmqsc工具確認上面的輸出是可見的(這就是它看起來像的樣子,但我不想猜測)。這種行爲 - SUB(虛假) - 可重複使用嗎?我想深入瞭解它的底部。 –

+0

您能解決問題嗎?我同意SUB(false),我添加到我的答案中的命令應該在內部爲您提供MQ認爲SUB名稱的內容。 – JoshMc

回答

0

您可以刪除SUB對象僅與SUBID,嘗試使用此命令將其刪除:

DELETE SUB SUBID('414D5120***44A0109') 

注意,命令不指定SUB名字,只是Sub關鍵字。


在你刪除它,如果你有興趣看到的子名稱實際上是,你可能想嘗試運行以下命令轉儲訂閱:

amqldmpa -m <QueueManager> -c T -f /var/mqm/errors/amqldmpa_topic.out 

裏面的文件/var/mqm/errors/amqldmpa_topic.out搜索有問題的SUBID和查找類似這樣的文字:

Subscriber entry 
{ 
    SubId (414D5120***44A0109) 
    SubNameString (SUBNAME_HERE) 
    TopicString (TOPIC/STRING/HERE) 
    <more lines of information go here> 
} 

是什麼顯示了SubNameString場?請注意,在8.0.0.6版本中,我對此進行了反擊,似乎爲每個字段填充了前導空格和尾部空格,但沒有後綴空格的SubId除外。

+0

它顯示SUB(false)聽起來有缺陷的事實,你不覺得嗎? –

+0

@MoragHughson我同意這很奇怪。如果他與IBM開了一個PMR,他們可能會想要一個MQ跟蹤,也許是amqldmpa的輸出。 – JoshMc

+0

@Vignesh你解決了你的問題嗎? – JoshMc

相關問題