我們正試圖將我們企業中的DLQ全面整合到一個Q中(如果您願意...)。我們在各種平臺上混合使用QM - 大型機,各種Unix風格 - Linux,AIX,Solaris等,Windows,AS/400 .... 想法是在QM上配置DLQ(將DEADQ屬性設置爲質量管理)與作爲羣集Q的ENTERPRISE_DLQ的QM進行比較。企業中的所有QM都是羣集的成員。但是,當我們測試它時,這種方法似乎不起作用。 我已經通過設置一個具有4個QM的簡單集羣來測試這個。在質量管理中的一個,定義的QREMOTE到一個不存在的QM和不存在的Q,但有效的XMITQ和配置QMS之間的requsite SDR CHL如下:隊列管理器*上的DLQ是否必須是QM上的本地隊列?
QM_FR - Full_Repos QM1,QM2,QM3 - 羣集
QM_FR承載ENTERPRISE_DLQ其通告給羣集
在QM3設置的成員以下: QM3.QM1 - SDR到QM1,QL(QM1)隨着使用XMITQ,QR(qr.not_exist )rqmname(not_exist)rname(not_exist)xmitq(qm1),設置QM1觸發啓動QM3.QM1,當msg到達QM1時
在QM1: QM3.QM1 - RCVR CHL,QL(local_dlq),QL(qa.enterise_dlq),QR(qr.enterprise.dlq)
測試1: 對QM1設置deadq到ENTERPRISE_DLQ,寫msg到QM3上的QR.NOT_EXIST 結果:Msg停留在QM1,QM3.QM1正在重試,QM1錯誤日誌抱怨無法MQOPEN Q - ENTERPRISE_DLQ!
QL(QM1)CURDEPTH(1)
測試2: 對QM1設置deadq到qr.enterprise.dlq,寫了味精在QM3 QR.NOT_EXIST 結果:消息原地踏步上QM1,QM3 QM1正在重試,QM1錯誤日誌抱怨無法MQOPEN Q - qr.enterprise.dlq(全部大寫)!!
QL(QM1)CURDEPTH(2)
測試3: 上QM1設置deadq到qa.enterise_dlq,寫了味精在QM3 QR.NOT_EXIST 結果:消息原地踏步上QM1,QM3.QM1正在重試,QM1錯誤日誌抱怨不能MQOPEN Q - qa.enterise_dlq(全部大寫)!
QL(QM1)CURDEPTH(3)
測試4: 上QM1設置deadq到local_dlq,寫了味精在QM3 QR.NOT_EXIST 結果:消息原地踏步上QM1,QM3.QM1是RUNNING ,QM3上的所有消息ql(QM1)將其轉換爲QM3上的local_dlq。
QL(QM1)CURDEPTH(0)
現在的問題是:看起來在QM 像DLQ必須是本地隊列。這是一個正確的結論嗎?如果沒有,我如何才能讓所有DLQ msg都轉到上面的單個Q-Enterprise_DLQ?
一個明顯的解決方案是在QM3上的local_dlq上定義觸發器(並在其他QM上執行相同的操作),它將讀取消息並將其寫入羣集Q - ENTERPRISE_DLQ。但是這涉及到額外的移動部件 - 觸發,觸發每個QM上的監視器。能夠將Q/QRemote/QAlias配置爲QM上的DLQ是最理想的。思考/想法?
感謝 -Ravi
感謝羅布 - 爲您的及時迴應。 – 2012-03-15 19:53:44