IBM MQ 佇列內容

您可以對佇列設定的內容取決於佇列的類型。 不同類型的 IBM® MQ 佇列具有不同的內容。 部分內容不適用於所有類型的佇列,部分內容專屬於叢集佇列,部分內容專屬於 z/OS® 佇列。

下表列出您可以對所有類型的佇列設定的內容:

每一項內容都有一個簡要說明,來說明您何時需要配置該內容。 這些表格也提供了 DEFINE、ALTER 及 DISPLAY QUEUE 指令的對等 MQSC 參數。 如需 MQSC 指令的相關資訊,請參閱 MQSC 指令

「一般」頁面

下表列出您可以在「 佇列內容 」對話框的 一般 頁面上設定的內容。

內容 說明 MQSC 參數
佇列名稱 唯讀。 在建立之後,您就不能變更佇列的名稱。 QNAME
佇列類型 唯讀。 在建立之後,您就不能變更佇列的類型。 QTYPE
QSG 性質 (只適用於 z/OS 共用佇列)唯讀。 佇列的佇列共用群組處置方式。 指定物件的處置方式(其定義的位置及其行為)。 在建立之後,您就不能變更佇列的處置方式。 Queue manager 表示物件定義只適用於管理它的佇列管理程式;Group 表示物件定義儲存在共用儲存庫中,且佇列共用群組中的每一個佇列管理程式都有定義副本;Copy 表示物件定義是佇列管理程式在共用儲存庫中的定義副本;Shared 表示物件定義儲存在佇列共用群組的連結機能中,且可供佇列共用群組中的所有佇列管理程式使用。 QSGDISP
說明 輸入佇列用途的有意義的說明。 請參閱 內容對話框中的字串 DESCR
放置訊息 如果可將訊息放入佇列中,請選取允許;如果不要將訊息放入佇列中,請選取禁止 PUT
取得訊息 如果可從佇列取得訊息,請選取允許;如果不要從佇列取得訊息,請選取禁止 GET
預設優先順序 輸入放到佇列中的訊息預設優先順序(0 到 9);0 是最低優先順序。 DEFPRTY
預設持續性 新佇列的預設持續性為非持續。 選取持續會指定由應用程式使用 MQPER_PERSISTENCE_AS_Q_DEF 所建立的訊息會成為持續的。 選取非持續則會指定由應用程式使用 MQPER_PERSISTENCE_AS_Q_DEF 所建立的訊息會成為非持續的。 DEFPSIST
範圍 若要將佇列放到 Cell 目錄中,並使 Cell 內的所有佇列管理程式都知道該佇列,請選取 Cell;若要限制佇列的範圍,使其不會擴充到其佇列管理程式外,請選取佇列管理程式 SCOPE
使用情形 若要使佇列成為本端佇列,請選取一般;若要使佇列成為傳輸佇列,請選取傳輸。 當佇列中有訊息時,請勿變更「用法」內容。 USAGE
基本類型 選取別名佇列所解析的物件類型(佇列主題)。 預設值為 佇列 TARGTYPE
遠端佇列 輸入遠端佇列定義所指的佇列名稱。 RNAME
遠端佇列管理程式 輸入管理遠端佇列的佇列管理程式名稱。 RQMNAME
傳輸佇列 輸入本端佇列管理程式用來傳送訊息至遠端佇列管理程式的傳輸佇列名稱。 XMITQ

「延伸事項」頁面

下表列出您可以在「 佇列內容 」對話框的 延伸事項 頁面上設定的內容。

內容 說明 MQSC 參數
佇列深度上限 鍵入佇列上容許的訊息數上限。 指定 0 - 999999999 的值。 MAXDEPTH
訊息長度上限 輸入佇列中允許的訊息長度上限(以位元組計)。 在 z/OS以外的所有平台上,請指定從 0 到佇列管理程式訊息長度上限的值。 請參閱佇列管理程式內容中的 Maximum message length 內容。 在 z/OS上,指定 0-100 MB 的值。 MAXMSGL
共用性 若要共用佇列,使得應用程式的多個實例可以開啟這個佇列以供輸入,請選取可共用;若要限制佇列,使得一次只有一個應用程式實例可以開啟佇列,請選取不可共用 SHARE
預設的輸入開啟選項 若要允許開啟佇列以供輸入的應用程式對佇列中的訊息有專用存取權,請選取專用;若要允許開啟佇列以供輸入的任何數目的應用程式都可以存取佇列中的訊息,請選取共用 DEFSOPT
訊息遞送順序 若要指定依照訊息的優先順序,從佇列中取得訊息,請選取優先順序。 若要指定依照訊息放入佇列的順序,從佇列中取得訊息,請選取 FIFO(先進先出)。 MSGDLVSQ
保留間隔 鍵入從建立佇列的日期和時間起,可能需要該佇列的時數(0 - 999999999)。 您可以使用這項資訊來判斷何時不再需要該佇列。 當佇列不再需要時,並不會被刪除。 RETINTVL
索引類型 若要指定佇列管理程式所維護的索引類型(用於增加佇列上 MQGET 作業的速度),請選取下列五個選項之一:

:未維護索引。 若要依序擷取訊息,請使用這個項目。 這是預設值。

群組 ID:維護群組 ID 的索引。 如果您要對訊息群組進行邏輯排序,您必須使用這種索引類型。

相關性 ID:維護相關性 ID 的索引。 如果您在 MQGET 呼叫中使用 CorrelId 欄位作為選取準則來擷取訊息,請使用這個項目。

訊息 ID:維護訊息 ID 的索引。 如果您在 MQGET 呼叫中使用 MsgId 欄位作為選取準則來擷取訊息,請使用這個項目。

訊息記號:維護訊息記號的索引。

 
定義類型 對於本端佇列,此內容是唯讀的:Predefined 表示佇列是由操作員或將指令訊息傳送至服務佇列的授權應用程式所建立;Permanent dynamic 表示佇列是由發出 MQOPEN 呼叫且具有物件描述子 (MQOD) 中所指定模型佇列名稱的應用程式所建立,且佇列是永久的;Temporary dynamic 表示佇列是由發出 MQOPEN 呼叫的應用程式所建立,但佇列是暫時的;Shared dynamic(僅限 z/OS)也表示佇列是由發出 MQOPEN 呼叫的應用程式所建立,但佇列是永久的,且佇列共用群組性質為 Shared

對於模型佇列,此內容是可編輯的;若要指定從此模型佇列建立永久動態佇列,請選取永久動態(在 z/OS 上,動態佇列具有性質 Queue manager);若要指定建立暫時動態佇列,請選取暫時動態(在 z/OS 上,動態佇列具有性質 Queue manager);僅在 z/OS 上,若要指定建立永久動態佇列且所建立佇列具有性質 Shared,請選取共用動態

DEFTYPE
預設先讀 若要在佇列層次配置先讀,請選取。 用戶端會在應用程式要求之前,自動先讀取非持續訊息。 如果用戶端異常終止,或是用戶端應用程式未使用其傳送的所有訊息,非持續訊息可能會遺失。

如果要配置佇列,以便用戶端不會自動讀取非持續性訊息,請選取。 這是預設值。 用戶端不會在應用程式要求之前自動先讀取訊息。 只有在用戶端要求時,才會先讀取訊息。 如果用戶端異常終止,最多只有一則非持續訊息會遺失。

若要在佇列層次停用先讀,請選取停用。 用戶端不會在應用程式要求之前先讀取訊息,不管用戶端應用程式是否有要求先讀。

DEFREADA
預設放置回應類型 訊息放置的預設回應類型。 若要指定回應會同步放置,請選取同步。 若要指定回應是非同步放置,請選取非同步 DEFPRESP
分送清單 如果允許將分送清單訊息放在佇列中,請選取啟用。 如果不要將分送清單訊息放在佇列中,請選取停用 DISTL
內容控制

(只適用於本端佇列、別名佇列和模型佇列)

這定義當指定 MQGMO_PROPERTIES_AS_Q_DEF 選項時,使用 MQGET 指令從佇列擷取的訊息內容會發生什麼情況。

若要包含訊息的所有內容(訊息描述子或延伸中的除外),請選取全部全部值表示在傳送訊息至遠端佇列管理程式時,訊息的所有內容都會併入訊息中。 這些內容(訊息描述子或延伸中的除外)會放在訊息資料內的一個以上 MQRFH2 標頭中。

若要允許預期 JMS 相關內容位於訊息資料之 MQRFH2 中的應用程式,可以不需修改繼續運作,請選取相容性。 這是預設值。 相容性表示如果訊息包含字首為 mcd. 的內容, jms.usr., 或 mqext. 則會將所有訊息內容遞送至 MQRFH2 標頭中的應用程式。 否則訊息的所有內容(訊息描述子或延伸中的除外)都會被捨棄,而不再能供應用程式存取。

若要確保內容一律會在訊息資料的 MQRFH2 標頭中傳回,不管應用程式是否指定訊息控點,請選取強制使用 MQRFH2。 在 MQGET 呼叫中,MQGMO 結構之 MsgHandle 欄位中提供的有效訊息控點會被忽略。 訊息的內容無法透過訊息控點存取。

若要捨棄訊息的所有內容(訊息描述子或延伸中的除外),請選取。 這個值可避免不支援訊息內容的應用程式受到訊息中包含的任何內容所影響。

V6COMPAT - 內容碼不會修改 MQRFH2 標頭。 如果已提供訊息內容,但原始 MQRFH2 標頭中不含這些內容,則會在訊息控點中傳回這些內容,否則會將其捨棄。 透過提供其中一個 MQGMO_PROPERTIES 選項,可以置換此行為。

附註: 對於傳輸佇列 ( Usage 設為 傳輸的本端佇列) ,佇列的 Property Control 內容不相關,它是對應通道物件上控制訊息內容行為的 Property Control 內容。
PROPCTL
自訂 包含 Custom 參數僅供 IBM 使用,在引進個別內容之前保留用於新特性的配置。 可能的值是使用 MQSC 樣式語法,並以至少一個個空格分隔的零個以上內容/值配對清單。
內容名稱及值區分大小寫,且必須以大寫來指定。 這些值可包含空格、括弧以及單引號(必須使用另一個單引號跳出)。 如果要併入其他字元,包括巢狀括弧 (),則可以將其含括在兩個單引號中(每側各一個)。 有效的語法範例如下:
  • CUSTOM('')
  • CUSTOM('A(B)')
  • CUSTOM('C(D) E(F)')
  • CUSTOM('G(5000) H(''9.20.4.6(1415)'')')

佇列管理程式會剖析該值,但如果無法根據這些規則來剖析字串,或是字串包含無法辨識的內容或值,佇列管理程式將會忽略這些錯誤。

CUSTOM
叢集通道名稱 在叢集傳輸佇列上設定 Cluster channel names 參數,以置換叢集傳送端通道與叢集傳輸佇列的預設關聯。 您可以指定哪些叢集傳送端通道會從這個傳輸佇列傳送訊息。

所有叢集傳送端通道的預設值是從單一叢集傳輸佇列 SYSTEM.CLUSTER.TRANSMIT.QUEUE 傳送訊息。 您可以變更佇列管理程式的預設值,讓所有叢集傳送端通道都從個別傳輸佇列傳送訊息。 佇列管理程式內容為 Default cluster transmission queue。 佇列管理程式會於必要時,自動建立個別的傳輸佇列。 佇列管理程式未設定 Cluster channel name 參數

Cluster channel names 參數設為單一叢集傳送端通道的名稱,或設為通用名稱。 通用名稱會將多個叢集傳送端通道與這個傳輸佇列相關聯。 通用名稱可在名稱的任何位置包含萬用字元 *。 符合該名稱的所有叢集傳送端通道,都會從這個傳輸佇列傳送訊息,且不會有其他傳輸佇列。

z/OS上,如果設定此參數,則佇列必須可共用、依相關性 ID 編製索引,且不得為動態或共用佇列。

CLCHNAME
[MQ 9.3.1 Oct 2022]限制期限 在解析路徑中使用此物件的物件控點所放置的訊息符合期限處理資格之前的時間上限 (以十分之一秒為單位)。
如需訊息到期處理的相關資訊,請參閱 強制縮短有效期限
整數
該值必須在 1 到 999 999 999 的範圍內。
NOLIMIT
使用此物件放置訊息的到期時間沒有限制。 這是預設值。

請注意,在 CAPEXPRY中變更之前,佇列中的現有訊息不受變更影響 (亦即,其到期時間保持不變)。 只有在 CAPEXPRY 中變更之後放入佇列中的新訊息才會有新的到期時間。

CAPEXPRY

「叢集」頁面

下表列出您可以在「 佇列內容 」對話框的 叢集 頁面上設定的內容。 若要在一或多個叢集中共用佇列,請編輯叢集頁面上的內容。

內容 說明 MQSC 參數
不在叢集中共用 若要指定這個佇列不可透過叢集連線供其他佇列管理程式使用,請選取這個選項。 (不適用。)
在叢集中共用 若要使這個佇列只可供一個叢集中的其他佇列管理程式使用,請選取這個選項,然後輸入叢集的名稱。 CLUSTER
在一列叢集中共用 若要使這個佇列可供多個叢集中的其他佇列管理程式使用,請選取這個選項,然後輸入包含該叢集清單之名稱清單的名稱。 CLUSNL
預設連結類型 這個內容會指定當應用程式在 MQOPEN 呼叫上指定 MQ00_BIND_AS_Q_DEF,且佇列為叢集佇列時,所要使用的連結。 若要在佇列開啟時,將佇列控點連結到叢集佇列的特定實例,請選取開啟時;如果允許佇列管理程式在使用 MQPUT 放置訊息時,選取特定的佇列實例,且可在之後需要時變更選擇,請選取不固定 DEFBIND
CLWL 佇列等級 此內容是「叢集工作量 (CLWL)」佇列等級。 輸入叢集中的佇列等級(0 到 9);0 是最低優先順序。 如需相關資訊,請參閱 分散式佇列及叢集 CLWLRANK
CLWL 佇列優先順序 此內容是「叢集工作量 (CLWL)」佇列優先順序。 輸入叢集中的佇列優先順序(0 到 9);0 是最低優先順序。 如需相關資訊,請參閱 分散式佇列及叢集 CLWLPRTY
CLWL 使用佇列 「叢集工作量 (CLWL)」使用佇列內容。 它會定義當目標佇列同時有本端實例和至少一個遠端叢集實例時,MQPUT 的行為。 如果放置源自叢集通道,則這個內容不適用。 請選取下列其中一個選項:

選取佇列管理程式,以使用所選取佇列所屬之佇列管理程式的 CLWL use queue 內容所指定的值。 這是預設值。

選取任何可以使用本端和遠端佇列。

選取本端只能使用本端佇列。

如需相關資訊,請參閱分散式佇列和叢集

CLWLUSEQ

「觸發」頁面

下表列出您可以在「 佇列內容 」對話框的 觸發 頁面上設定的內容。 若要配置佇列來進行觸發作業,請編輯觸發頁面上的內容。

內容 說明 MQSC 參數
觸發控制 若要啟用佇列的觸發作業,請選取開啟,然後配置佇列的其他觸發內容;若要停用佇列的觸發作業,請選取關閉 TRIGGER
觸發類型 若要在現行佇列深度從 0 變成 1 時觸發事件,請選取第一次;若要在超出佇列深度臨界值時觸發事件,請選取深度;若要在每次放置訊息到佇列時觸發事件,請選取每次 TRIGTYPE
觸發深度 輸入必須放到佇列中以觸發事件的訊息數。 TRIGDEPTH
觸發訊息優先順序 輸入訊息計數有關觸發事件而必須具有的最低優先順序(1 到 9)。 在判斷是否要建立觸發訊息時,佇列管理程式會忽略優先順序較低的訊息。 若要計數所有訊息以接近觸發事件,請輸入 0。 TRIGMPRI
觸發資料 輸入任意形式的資料,於這個佇列造成觸發事件時,供佇列管理程式插入觸發訊息中。 這些資料對佇列管理程式而言並不重要。 這些資料對於處理起始佇列的觸發監視器應用程式,或是由觸發監視器啟動的應用程式而言,是有意義的。 TRIGDATA
起始佇列 鍵入起始佇列的名稱。 當觸發事件的準則符合時,佇列管理程式就會將觸發訊息放到起始佇列中。 INITQ
處理程序名稱 IBM MQ 處理程序的本端名稱。 這個參數僅在本端和模型佇列上支援。

這是程序實例的名稱,識別 當發生事件時由佇列管理程式啟動的應用程式。 定義本端佇列時,不一定要定義程序,但是在發生觸發事件時必須可用。

如果佇列是傳輸佇列,則程序定義包含要啟動的通道名稱。 這個參數是選用的,如果您不指定程序名稱,則會採用指定給 TRIGDATA 參數的值之中的通道名稱。
PROCESS

「事件」頁面

下表列出您可以在「 佇列內容 」對話框的 事件 頁面上設定的內容。 若要配置佇列管理程式來產生事件以回應佇列的某些準則,請編輯事件頁面上的內容。

內容 說明 MQSC 參數
佇列深度事件上限 若要在將訊息放到佇列中,但因佇列已滿而被拒絕時產生「佇列已滿」事件,請選取啟用 QDPMAXEV
佇列深度高事件 若要在將訊息放入佇列導致佇列深度大於或等於 Queue depth high limit 內容值時產生「佇列深度高值」事件,請選取已啟用 QDPHIEV
佇列深度上限 這是佇列深度上限的百分比值,作為佇列深度上限。 輸入佇列管理程式會用來比較現行佇列深度,以決定是否要產生「佇列深度高」事件的佇列深度上限百分比。 QDEPTHHI
佇列深度低事件 若要在從佇列擷取訊息導致佇列深度小於或等於 Queue depth low limit 內容值時產生「佇列深度低值」事件,請選取已啟用 QDPLOEV
佇列深度下限 這是佇列深度下限的百分比值,作為佇列深度下限。 輸入佇列管理程式會用來比較現行佇列深度,以決定是否要產生「佇列深度低」事件的佇列深度下限百分比。 QDEPTHLO
佇列服務間隔事件 若要在檢查指出至少在 Queue service interval 內容所指示的時間內未從佇列擷取任何訊息時產生「佇列服務間隔高值」事件,請選取;若要在檢查指出已在 Queue service interval 內容所指示的時間內從佇列擷取訊息時產生「佇列服務間隔確定」事件,請選取確定;若要停用「佇列服務間隔」事件,請選取 QSVCIEV
佇列服務間隔 鍵入服務間隔(0 - 999999999 毫秒)。 佇列管理程式會使用這個值來決定是要產生「佇列服務間隔高值」或「佇列服務間隔確定」事件。 QSVCINT

「儲存體」頁面

下表列出您可以在「 佇列內容 」對話框的 儲存體 頁面上設定的內容。 若要配置 IBM MQ 如何處理已取消的訊息,請編輯儲存體頁面上的內容。

內容 說明 MQSC 參數
取消重新放回佇列 如果訊息取消的次數超過 Backout threshold 內容中指定的次數,請輸入訊息傳送目的地的佇列名稱。 BOQNAME
取消臨界值 輸入訊息在傳送至 Backout requeue queue 內容中指定的取消佇列之前可以取消的次數。 BOTHRESH
強制取消 若要確保當佇列管理程式重新啟動時,會正確地保留取消次數(訊息由 MQGET 呼叫所擷取,然後隨後又取消的次數),請選取強化。 強化計數不利於效能,因此請只有在計數正確很重要時,才選取強化。 如果計數正確並不重要,請選取不強化 HARDENBO
NPM 類別 這個內容會指定捨棄佇列中非持續訊息的情況。 若要指定在佇列管理程式重新啟動時捨棄非持續訊息,請選取一般;這只對非共用佇列有效。 若要指定佇列管理程式在佇列的有效期限內應嘗試持續保存非持續訊息,請選取;這對非共用和共用佇列都有效;如果發生失敗,非持續訊息仍然可能遺失。 NPMCLASS
儲存類別名稱 這是將佇列對映至頁集的儲存類別名稱。 佇列的訊息會儲存在頁集中。 您可以變更此內容,但佇列必須先是空的且已關閉。 儲存類別名稱必須以大寫輸入。 STGCLASS
連結機能結構名稱 (僅限z/OS 共用佇列) 這是儲存佇列訊息的連結機能結構名稱。 您可以變更此內容,但佇列必須先是空的且已關閉。 CFSTRUCT
[UNIX、Linux、Windows、IBM i]佇列檔大小上限 佇列檔可以增長到的大小上限 (MB)。 如果佇列檔達到此限制,則新訊息無法放入佇列,除非移除部分訊息。 MAXFSIZE

「統計資料」頁面

下表列出「 佇列內容 」對話框之 統計資料 頁面上的內容。 統計資料頁面會顯示佇列歷程的相關資訊。 並非所有內容都可以編輯。

內容 說明 MQSC 參數
建立日期 唯讀。 此為佇列的建立日期。 CRDATE
建立時間 唯讀。 這是建立佇列的時間。 CRTIME
開啟輸入計數 唯讀。 這是目前連接至佇列以從佇列取得訊息的應用程式數。 IPPROCS
開啟輸出計數 唯讀。 這是目前連接至佇列以將訊息放到佇列中的應用程式數。 OPPROCS
現行佇列深度 唯讀。 這是佇列目前的訊息數量。 CURDEPTH
變更日期 唯讀。 這是前次變更佇列內容的日期。 ALTDATE
變更時間 唯讀。 這是前次變更佇列內容的時間。 ALTTIME
監視佇列

您可以配置 IBM MQ,以收集關於佇列現行效能的線上監視資料。 若要繼承佇列管理程式之 Queue monitoring 內容的值 (請參閱 佇列管理程式內容) ,請選取 佇列管理程式。 如果佇列管理程式的 Queue monitoring 內容是 None,則會忽略佇列的 Queue monitoring 內容。

如果佇列管理程式的 Queue monitoring 內容不是 None
  • 若要置換佇列管理程式的設定值,且不要收集這個佇列的資料,請選取關閉
  • 若要以低速率收集資料,請選取
  • 若要以中速率收集資料,請選取
  • 若要以高速率收集資料,請選取

如需相關資訊,請參閱 監視及效能

MONQ
佇列統計資料 您可以配置 IBM MQ 以收集關於佇列活動的統計資料。 若要繼承佇列管理程式之 Queue statistics 內容的值 (請參閱 佇列管理程式內容) ,請選取 佇列管理程式。 如果佇列管理程式的 Queue statistics 內容是 None,則會忽略佇列的 Queue statistics 內容。 如果佇列管理程式的 Queue statistics 內容不是 None:若要置換佇列管理程式的設定並防止收集此佇列的資料,請選取關閉;若要置換佇列管理程式的設定並收集資料,請選取開啟如需相關資訊,請參閱 監視及效能 STATQ
佇列計數 您可以配置 IBM MQ 以收集關於此佇列的連線活動的統計資料。 若要繼承佇列管理程式之 Queue accounting 內容的值 (請參閱 佇列管理程式內容) ,請選取 佇列管理程式。 如果佇列管理程式的 Queue accounting 內容是 None,則會忽略佇列的 Queue accounting 內容。 如果佇列管理程式的 Queue accounting 內容不是 None:若要置換佇列管理程式的設定並防止收集此佇列的資料,請選取關閉;若要置換佇列管理程式的設定並收集資料,請選取開啟如需相關資訊,請參閱 監視及效能 ACCTQ