2012-01-13 208 views
3

我們正在使用IBM的WebSphere MQ,並且在通過腳本創建管理訂閱時遇到問題。其中一個參數需要一個現有的模型隊列,但由於某種原因,它在我們的環境中缺失。也許這完全是個問題,但是想知道有沒有辦法繞過模型隊列並創建訂閱?定義WebSphere MQ管理訂閱

我在看的鏈接是包含AMQ8464的消息&代碼手冊部分。 請向下滾動查看AMQ8464。我想我們錯過了Insert_3,但希望有一個解決辦法沒有它。錯誤全文如下:

如果輸入的命令是Change或Display,則指定的訂購 不存在。如果輸入的命令是複製, 源訂閱不存在。如果輸入的命令是 Create,系統默認的MQ預訂不存在。

感謝您的任何想法。

+0

我重新標記爲[標籤:WebSphere的MQ]所以它會更容易爲人們WMQ找到。 [tag:websphere]標籤獲取應用服務器管理員和開發人員。 – 2012-01-14 19:58:08

回答

2

嘗試複製或刪除訂閱並未找到預期的現有訂閱時,可能會引發此錯誤。由於您正在嘗試定義訂閱,因此我們可以假設錯誤手冊中描述的最後一種情況是我們想要的 - SYSTEM.DEFAULT.SUB不存在。此訂閱是在QMgr創建時定義的(假設WMV版本爲v7.0或更高版本)。有兩種方法可以恢復。

  1. 手動定義訂閱。所有這些工作都需要指定訂閱中的所有字段。
  2. 使用strmqm -c命令as described here。這將重新定義任何已被手動刪除的默認系統對象,包括默認訂閱。

之所以#1作品是WMQ將使用您提供您DEFINE命令,然後任你離開了它着眼於SYSTEM.DEFAULT.SUB對象,以確定系統的本地默認值任何參數。如果您提供所有的值,則無需查看默認對象,只需定義您所說的任何內容即可。這意味着您可以定義自己的訂閱,或者您可以通過指定所有參數來定義SYSTEM.DEFAULT.SUB。下面DEFINE聲明再現SYSTEM.DEFAULT.SUB,而無需使用-c選項停止和重新啓動QMGR:

DEFINE SUB(SYSTEM.DEFAULT.SUB) + 
     TOPICSTR('') + 
     TOPICOBJ('') + 
     DEST('') + 
     DESTQMGR('') + 
     PUBAPPID('') + 
     SELECTOR('') + 
     USERDATA('') + 
     PUBACCT(0000000000000000000000000000000000000000000000000000000000000000) + 
     DESTCORL(000000000000000000000000000000000000000000000000) + 
     DESTCLAS(PROVIDED) + 
     EXPIRY(UNLIMITED) + 
     PSPROP(MSGPROP) + 
     PUBPRTY(ASPUB) + 
     REQONLY(NO) + 
     SUBSCOPE(ALL) + 
     SUBLEVEL(1) + 
     VARUSER(ANY) + 
     WSCHEMA(TOPIC) + 
     SUBUSER('')