變更、複製及建立訂閱
「變更訂閱」指令會變更現有的訂閱定義。 「複製訂閱」和「建立訂閱」指令會建立新的訂閱定義-「複製」指令會使用現有訂閱定義的屬性值。
「變更訂閱 (MQCMD_CHANGE_SUBSCRIPTION)」指令會變更現有 IBM® MQ 訂閱的指定屬性。 對於任何省略的選用參數,值不會變更。
「複製訂閱 (MQCMD_COPY_SUBSCRIPTION)」指令會針對未在指令中指定的屬性,使用現有訂閱的屬性值來建立 IBM MQ 訂閱。
「建立訂閱 (MQCMD_CREATE_SUBSCRIPTION)」指令會建立 IBM MQ 管理訂閱,以便現有應用程式可以參與發佈/訂閱應用程式。
必要參數 (變更訂閱)
- SubName (MQCFST)
- 要變更的訂閱定義名稱 (參數 ID :MQCACF_SUB_NAME)。
字串的長度上限為 MQ_SUB_NAME_LENGTH。
or
- SubId (MQCFBS)
- 要變更之訂閱定義的唯一 ID (參數 ID :MQBACF_SUB_ID)。
字串的長度上限為 MQ_CORREL_ID_LENGTH。
必要參數 (複製訂閱)
- ToSubscription名稱 (MQCFBS)
- 要複製到其中的訂閱名稱 (參數 ID :MQCACF_TO_SUB_NAME)。
字串的長度上限為 MQ_SUBSCRIPTION_NAME_LENGTH。
您至少需要 FromSubscriptionName 或 SubId之一。
- FromSubscription名稱 (MQCFST)
- 要從中複製的訂閱定義名稱 (參數 ID :MQCACF_FROM_SUB_NAME)。
在 z/OS®上,佇列管理程式會搜尋具有您指定名稱的物件,以及要從中複製的 MQQSGD_Q_MGR 或 MQQSGD_COPY 的處置。 如果為 QSGDisposition指定 MQQSGD_COPY 值,則會忽略此參數。 在此情況下,會使用名稱由ToSubscriptionName指定且處置 MQQSGD_GROUP 的物件。字串的長度上限為 MQ_SUBSCRIPTION_NAME_LENGTH。
- SubId (MQCFBS)
- 要變更之訂閱定義的唯一 ID (參數 ID :MQBACF_SUB_ID)。
字串的長度上限為 MQ_CORREL_ID_LENGTH。
必要參數 (建立訂閱)
您必須提供 SubName。
- SubName (MQCFST)
- 要變更的訂閱定義名稱 (參數 ID :MQCACF_SUB_NAME)。
字串的長度上限為 MQ_SUB_NAME_LENGTH。
您至少需要 TopicObject 或 TopicString之一。
- TopicObject (MQCFST)
- 先前定義的主題物件名稱,可從中取得訂閱的主題名稱 (參數 ID :MQCA_TOPIC_NAME)。 雖然接受參數,但指定的值不能與「變更訂閱」的原始值不同。
字串的長度上限為 MQ_TOPIC_NAME_LENGTH。
- TopicString (MQCFST)
- 已解析的主題字串 (參數 ID:MQCA_TOPIC_STRING)。
字串的長度上限為 MQ_TOPIC_STR_LENGTH。
選用參數 (變更、複製及建立訂閱)
![[z/OS]](ngzos.gif)
- CommandScope (MQCFST)
- 指令範圍 (參數 ID:MQCACF_COMMAND_SCOPE)。 此參數僅適用於 z/OS 。指定當佇列管理程式是佇列共用群組的成員時,如何處理指令。 您可以指定下列其中一項:
- 空白 (或完全省略參數)。 在輸入指令的佇列管理程式上處理該指令。
- 佇列管理程式名稱。 指令會在您指定的佇列管理程式上處理,前提是它在佇列共用群組內處於作用中。 如果您指定的佇列管理程式名稱不是所輸入的佇列管理程式,則必須使用佇列共用群組環境,且必須啟用指令伺服器。
- 星號 (*)。 指令在本端佇列管理程式上處理,也會傳遞至佇列共用群組中的每個作用中佇列管理程式。
長度上限為 MQ_QSG_NAME_LENGTH。
- 目的地 (MQCFST)
- 目的地 (參數 ID:MQCACF_XX_ENCODE_CASE_ONE destination)。
指定要放置此訂閱訊息的別名、本端、遠端或叢集佇列的名稱。
如果 DestinationClass 設為 MQDC_PROVIDED ,則此參數是必要的,但如果 DestinationClass 設為 MQDC_MANAGED ,則此參數不適用。
- DestinationClass (MQCFIN)
- 目的地類別 (參數 ID :MQIACF_DESTINATION_CLASS)。
指定是否管理目的地。
指定下列任一項:- MQDC_MANAGED
- 目的地受到管理。
- MQDC_PROVIDED
- 目的地佇列如
Destination欄位中所指定。
- DestinationCorrelID (MQCFBS)
- 目的地相關性 ID (參數 ID :MQBACF_DESTINATION_CORREL_ID)。
針對傳送至此訂閱的所有訊息,提供置於訊息描述子的
CorrelId欄位中的相關性 ID。長度上限為 MQ_CORREL_ID_LENGTH。
- DestinationQueue管理程式 (MQCFST)
- 目的地佇列管理程式 (參數 ID:MQCACF_DESTINATION_Q_MGR)。
指定將訂閱訊息轉遞至其中的目的地佇列管理程式 (本端或遠端) 名稱。
字串的長度上限為 MQ_Q_MGR_NAME_LENGTH。
- 期限 (MQCFIN)
- 訂閱在建立日期和時間之後到期的時間 (以十分之一秒為單位) (參數 IDXX_ENCODE_CASE_ONE :mqiacf_expiry)。
預設值 MQEI_UNLIMITED 表示訂閱永不到期。
訂閱過期之後,即可由佇列管理程式捨棄,且不會收到進一步的發佈。
- PublishedAccounting記號 (MQCFBS)
- 在訊息描述子的
AccountingToken欄位中使用的帳戶記號值 (參數ID:MQBACF_ACCOUNTING_記號)。字串的長度上限為 MQ_ACCOUNTING_TOKEN_LENGTH。
- PublishedApplicationID (MQCFST)
- 在訊息描述子的
ApplIdentityData欄位中使用的應用程式身分資料值 (參數 ID :MQCACF_APPL_IDENTITY_DATA。字串的長度上限為 MQ_APPL_IDENTITY_DATA_LENGTH。
- PublishPriority (MQCFIN)
- 傳送至此訂閱之訊息的優先順序 (參數 ID :MQIACF_PUB_PRIORITY)。值可以為:
- 已發佈 MQPRI_PRIORITY_AS_PUBLISHED
- 傳送給此訂閱的訊息優先順序是從提供給已發佈訊息的優先順序中取得。 此值是提供的預設值。
- MQPRI_PRIORITY_AS_QDEF
- 傳送至此訂閱的訊息優先順序由定義為目的地之佇列的預設優先順序決定。
- 0-9
- 為傳送至此訂閱的訊息提供明確優先順序的整數值。
- PublishSubscribe內容 (MQCFIN)
- 指定如何將發佈/訂閱相關訊息內容新增至傳送至此訂閱的訊息 (參數 ID :MQIACF_PUBSUB_XX_ENCODE_CASE_ONE properties)。值可以為:
- MQPSPROP_COMPAT
- 如果原始發佈是 PCF 訊息,則發佈/訂閱內容會新增為 PCF 屬性。 否則,會在 MQRFH 第 1 版標頭內新增發佈/訂閱內容。 此方法與編碼為與舊版 IBM MQ搭配使用的應用程式相容。
- MQPSPROP_NONE
- 請勿將發佈/訂閱內容新增至訊息。 此值是提供的預設值。
- MQPSPROP_RFH2
- 發佈/訂閱內容會新增在 MQRFH 第 2 版標頭內。 此方法與撰寫以與 IBM Integration Bus(先前稱為 WebSphere® Message Broker) 搭配使用的應用程式相容。
- 選取器 (MQCFST)
- 指定套用至發佈至主題之訊息的選取器 (參數 ID :MQCACF_SUB_SELECTOR)。 雖然接受參數,但指定的值不能與「變更訂閱」的原始值不同。
只有那些符合選取準則的訊息才會放入此訂閱指定的目的地。
字串的長度上限為 MQ_SELECTOR_LENGTH。
- SubscriptionLevel (MQCFIN)
- 在訂閱攔截階層中建立此訂閱的層次 (參數 ID :MQIACF_SUB_LEVEL)。 若要確保截取應用程式在任何其他訂閱者之前接收訊息,請確定它具有所有訂閱者的最高訂閱層次。值可以為:
- 0 - 9
- 0-9 範圍內的整數。 預設值為 1。 訂閱層次為 9 的訂閱者在到達訂閱層次較低的訂閱者之前會截取發佈。
- SubscriptionScope (MQCFIN)
- 判定是否將此訂閱傳遞至網路中的其他佇列管理程式 (參數 ID :MQIACF_SUBSCRIPTION_SCOPE)。 雖然接受參數,但指定的值不能與「變更訂閱」的原始值不同。值可以為:
- MQTSCOPE_ALL
- 訂閱將轉遞給直接透過發佈/訂閱群體或階層連接的所有佇列管理程式。 此值是提供的預設值。
- MQTSCOPE_QMGR
- 訂閱只會在此佇列管理程式內轉遞針對主題發佈的訊息。
- SubscriptionUser (MQCFST)
- 「擁有」此訂閱的使用者 ID。 此參數是與訂閱建立者相關聯的使用者 ID ,或者如果允許訂閱接管,則是前次接管訂閱的使用者 ID。 (參數 ID:MQCACF_SUB_USER_ID)。
字串的長度上限為 MQ_USER_ID_LENGTH。
- TopicString (MQCFST)
- 已解析的主題字串 (參數 ID :MQCA_TOPIC_STRING)。 雖然接受參數,但指定的值不能與「變更訂閱」的原始值不同。
字串的長度上限為 MQ_TOPIC_STR_LENGTH。
- 使用者資料 (MQCFST)
- 使用者資料 (參數 ID:MQCACF_SUB_USER_DATA)。
指定與訂閱相關聯的使用者資料
字串的長度上限為 MQ_USER_DATA_LENGTH。
- VariableUser (MQCFST)
- 指定非建立訂閱的使用者 (即
SubscriptionUser中顯示的使用者) 是否可以接管訂閱的所有權 (參數 ID :MQIACF_VARIABLE_USER_ID)。值可以為:- MQVU_ANY_USER
- 任何使用者都可以接管所有權。 此值是提供的預設值。
- MQVU_FIXED_USER
- 沒有其他使用者可以接管所有權。
- WildcardSchema (MQCFIN)
- 指定在解譯
TopicString中包含的任何萬用字元時要使用的綱目 (參數 ID :MQIACF_WILDCARD_SCHEMA)。 雖然接受參數,但指定的值不能與「變更訂閱」的原始值不同。值可以為:- MQWS_CHAR
- 萬用字元代表字串的部分,以與 IBM MQ 6.0 分配管理系統相容。
- MQWS_TOPIC
- 萬用字元代表主題階層中與 IBM Integration Bus相容的部分。 此值是提供的預設值。