IBM MQ 服務定義內容

您可以在建立新的服務定義或是在編輯現有服務定義時,設定服務定義的內容和屬性。

某些屬性只有當服務定義屬於某種特定連結類型或是訊息交換型樣時才適用。 請遵循下列鏈結,檢視服務定義個別內容頁面的內容:

每一個屬性都有關於您何時可能需要配置該屬性的簡要說明。

「一般」頁面

下表列出您可以在「 服務定義內容 」對話框的 一般 頁面中設定的屬性。

屬性 說明
名稱空間 指定服務的名稱空間。 其已指定暫時預設值。
姓名 新「服務定義」的唯一名稱。 服務定義名稱不會區分大小寫,但是會保留大小寫混合格式的服務定義名稱。
訊息交換型樣 「訊息交換型樣」說明在呼叫服務期間,傳送和接收訊息的方向。 有兩個可能的選項:
  • 單向表示訊息只會單向傳送。
  • 要求回應表示會傳送訊息並接收回應。
連結類型 指定 IBM® MQ 服務定義規格的版本。
備註 指定註解來標註 WSDL 檔中的服務。

「作業」頁面

下表列出您可以在「 服務定義內容 」對話框的 作業 頁面中設定的屬性。 每一個服務定義都只有一項作業。

屬性 說明
作業名稱 指定作業的名稱。 這個內容必須有值,才能建立服務定義。
動作 供服務提供者用來分派服務要求。 例如:允許使用單一目的地來部署多個服務,讓服務提供者能夠適當分派送達目的地的要求。

如果連結類型是 MQ動作會指定 targetAction

備註 指定註解來標註 WSDL 檔中的作業。

「輸入目的地」頁面

下表列出您可以在「 服務定義內容 」對話框的 輸入目的地 頁面中設定的屬性。 輸入頁面會定義服務預期之訊息的詳細資料,以及用來擷取訊息的目的地。

屬性 說明
輸入目的地名稱 指定傳送要求之目的地佇列或目的地主題的名稱,例如:
IBM MQ IRI 的 queue-dest 或 topic-dest 質點,例如:

msg/queue/INS.QUOTE.REPLY
目的地佇列管理程式名稱 指定目的地佇列管理程式的名稱。
連線佇列管理程式 指定發出要求的服務所連接的佇列管理程式名稱。 這個項目對應於 MQCONN() 和 MQCONNX() 呼叫中使用的 QmgrName 參數。
用戶端連線內容 用戶端連線內容會指定詳細的連結,其可包括服務要求者如何連結至特定機器或通道的相關資訊。 在某些情況下,如果可以指定用戶端連結和通道名稱會非常有用,不過,過度指定可能會使服務受限。 此問題的解決方案是將納入服務定義中的連結資訊量降至最低,並容許基礎架構或 IBM MQ 在可能時遞送訊息。
通道表格名稱 指定用戶端通道表檔案的名稱,該檔案會用來識別通道連線。
  • 如果未指定通道表名稱,則會忽略通道表程式庫
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略通道表名稱
通道表格程式庫 指定用戶端通道表的路徑。
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLLIB 其中一個環境變數,則會忽略通道表程式庫
  • 如果未指定通道表名稱,則會忽略通道表程式庫
用戶端通道連線名稱 指定當服務要求者建立 IBM MQ MQI 用戶端連結連線時,所使用的連線字串。 針對 TCP/IP,連線的格式是主機名稱後面接著埠號,例如:

OS2ROG3(1822)
如果未指定埠號,則會使用預設值 1414。
  • 如果指定用戶端通道連線名稱,也必須指定用戶端通道名稱用戶端通道傳輸類型
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略用戶端通道連線名稱
用戶端通道名稱 指定當 IBM MQ 服務要求者建立 IBM MQ MQI 用戶端連結連線時,所使用的通道。
  • 如果指定用戶端通道連線名稱,也必須指定用戶端通道名稱用戶端通道傳輸類型
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略用戶端通道名稱
用戶端通道傳輸類型 指定當 IBM MQ 服務要求者建立 IBM MQ MQI 用戶端連結連線時,所要使用的傳輸類型。
  • 如果指定用戶端通道連線名稱,也必須指定用戶端通道名稱用戶端通道傳輸類型
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略傳輸類型
有兩個不同的值可供選擇:
  • TCP。 用來指定 TCP/IP 傳輸通訊協定。 這是預設值。
  • LU62. 用來指定 LU6.2 傳輸通訊協定。

「輸入訊息綱目」頁面

下表列出您可以在「 服務定義內容 」對話框的 輸入訊息綱目 頁面中設定的屬性。 其可讓您定義訊息內容的綱目。

屬性 說明
入埠資料類型 指定預期的入埠資料類型。 如果是簡式類型,這可以利用內建 XML xsd 類型(如:xsd:stringxsd:int)來建立模型。 如果是較複雜的類型,您可以針對該資料類型指定匯入綱目檔匯入名稱空間,從外部檔匯入資料類型。
匯入綱目檔 指定要匯入的綱目檔。
匯入名稱空間 指定要匯入的名稱空間。

「輸入訊息標頭」頁面

下表列出您可以在「 服務定義內容 」對話框的 輸入訊息標頭 頁面中設定的屬性。 輸入頁面會定義服務預期之訊息的詳細資料,以及用來擷取訊息的目的地。 某些內容只適用於 MQ 連結類型的服務定義。

屬性 說明
CCSID 指定對應於 MQMD 結構中 CodedCharSetId 欄位的「編碼字集 ID」。 如果未指定這個值,服務要求者和服務提供者會使用對應於訊息資料字集的值。
格式 指定訊息資料的格式名稱。 這個內容對應於 MQRFH2 格式欄位,或是 MQMD 格式欄位(如果沒有 MQRFH2 存在)。 該值必須是長度介於 0 到 8 個字元之間的字元字串,且由 A-Z 和 0-9 等字元所組成。

根據 格式欄位中的準則, 格式 可以設為任何值。

使用者內容 指定 IBM MQ 服務訊息中所包含的使用者定義資料。 這些值必須以 RFH2 資料夾元素所允許的格式來指定;利用類似 XML 的語法來編碼一連串的 Triplet,如:

<name dt="datatype">value</name>
dt="datatype" 元素是選用的;如果省略,其會被視為字串,而允許依下列方式指定元素:

<name>value</name>
例如:

<myprop1>value1</myProp1><myprop2>value2</myProp2><myprop3 dt="i4">99</myProp3>
如需容許的資料類型及格式的進一步資訊,請參閱 IBM Documentation中的 NameValueData (MQCHARn) 不建議您併入重視安全性的內容,如:使用者 ID 或密碼。
訊息類型 指定傳送的訊息類型。 這個內容對應於 MQMD 結構中的 MsgType。 可能的值有五個:
  • 未指定,表示未設定值,因此會從訊息交換型樣的值來取得這個值。 這是預設值。
  • 要求,表示該訊息需要回覆。 這個值表示服務使用了「要求回應」的訊息交換型樣。
  • 回覆,表示該訊息是要求的回覆。
  • 報告,表示該訊息是報告。
  • 資料包,表示服務是單向訊息交換,不會有回覆。
如果未指定值,則會根據訊息交換型樣來設定該值。
持續性 指定訊息是否為持續性,且對應於 MQMD 結構中的 持續性 欄位。 可能的值有三個:
  • 非持續性,表示該訊息不是持續性。
  • 持續性,表示該訊息為持續性。
  • 佇列預設值,表示佇列管理程式會從放置訊息之目的地的定義,來決定訊息持續性。 這是預設值。
訊息 ID 指定對應於 MQMD 結構中 MsgId 欄位的「訊息 ID」。

「訊息 ID」容許將某些特殊化 IBM MQ 應用程式說明為服務 (例如: 共用輸入佇列並根據預先定義的 msgId 值選取其預期訊息的應用程式)。 在服務定義中預先定義的 msgIds,可能會在要求回應「訊息交換型樣」傳回要求的 msgId 這類情況下導致問題。

「訊息 ID」可以是字串或二進位值。 二進位值必須是兩個字元的十六進位值(至多 24 對)的字串。

請按一下編輯來開啟對話框,然後輸入文字或位元組的值。

相關性 ID 指定對應於 MQMD 結構中 CorrelId 欄位的「相關性 ID」。 「相關性 ID」可以是字串或二進位值。 二進位值必須是兩個字元的十六進位值(至多 24 對)的字串。

請按一下編輯來開啟對話框,然後輸入文字或位元組的值。

期限 指定訊息期限。 其必須是帶正負號的整數,且是以十分之一秒來測量。 期限的範圍是從 1 到 2 147 483 647。

特殊值 無限制 是用來表示訊息不會到期。 系統會將 -1 值寫入 WSDL 檔。

未指定 的值表示沒有值寫入 WSDL 檔。 這是預設值。

優先順序 指定與訊息相關聯的優先順序,並對應於 MQMD 結構中的 priority 欄位。 其必須指定為 0 和 9 之間的整數,其中 0 表示最低優先順序,而 9 表示最高優先順序。

特殊值 無限制 是用來表示會從放置訊息之第一個佇列的定義中,取得訊息優先順序。 系統會將 -1 值寫入 WSDL 檔。

未指定 的值表示沒有值寫入 WSDL 檔。 這是預設值。

編碼 指定訊息資料的數值編碼,其對應於 MQMD 結構中的編碼欄位:
  • 整數可讓您選取「一般」或「反向」
  • 十進位可讓您選取「一般」或「反向」
  • 浮點數可讓您選取「一般」、「反向」或 S390
  • 助記鍵可根據其他選定的值來指定 3 個字元助記鍵。 R = 反向、N = 一般,以及 3 = S390。
  • 指定選項與助記鍵的數值。
報告選項 指定服務提供者如何設定回覆訊息或錯誤訊息中的訊息和相關性 ID。 這個內容對應於 MQMD 結構中的「報告」欄位。 有四個可能的值:
  • 新的訊息 ID,表示如果這則訊息產生報告或回覆時,會針對該報告或回覆訊息產生新的 msgId
  • 傳遞訊息 ID,表示如果這則訊息產生報告或回覆,這則訊息的 msgId 會複製到報告或回覆訊息的 msgId
  • 複製訊息 ID 至相關性 ID,表示如果這則訊息產生報告或回覆,這則訊息的 msgId 會複製到報告或回覆訊息的 correlId
  • 傳遞相關性 ID,表示如果這則訊息產生報告或回覆,這則訊息的 correlId 會複製到報告或回覆訊息的 correlId

「輸出目的地」頁面

下表列出您可以在「 服務定義內容 」對話框的 輸出目的地 頁面中設定的屬性。 輸出頁面會定義服務會在回應中傳給輸入訊息之訊息的詳細資料,以及放置該訊息的目的地。 輸出目的地名稱的字首必須是 'msg/queue/'(表示佇列)或 'msg/topic/'(表示主題)。

屬性 說明
輸出目的地名稱 指定傳送回應訊息之目的地佇列或目的地主題的名稱,且對應於 MQMD 結構的 ReplyToQ 和 ReplyToQMgr 欄位。 「目的地名稱」必須採用 IBM MQ URI 的 queue-dest 或 topic-dest 質點形式,例如:

msg/queue/INS.QUOTE.REPLY
目的地佇列管理程式名稱 指定目的地佇列管理程式的名稱。
連線佇列管理程式 指定發出要求的服務所連接的佇列管理程式名稱。 這個項目對應於 MQCONN() 和 MQCONNX() 呼叫中使用的 QmgrName 參數。
用戶端連線內容 用戶端連線內容會指定詳細的連結,其可包括服務要求者如何連結至特定機器或通道的相關資訊。 在某些情況下,如果可以指定用戶端連結和通道名稱會非常有用,不過,過度指定可能會使服務受限。 此問題的解決方案是將納入服務定義中的連結資訊量降至最低,並容許基礎架構或 IBM MQ 在可能時遞送訊息。
通道表格名稱 指定用戶端通道表檔案的名稱,該檔案會用來識別通道連線。
  • 如果未指定通道表名稱,則會忽略通道表程式庫
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略通道表名稱
通道表格程式庫 指定用戶端通道表的路徑。
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLLIB 其中一個環境變數,則會忽略通道表程式庫
  • 如果未指定通道表名稱,則會忽略通道表程式庫
用戶端通道名稱 指定當服務要求者建立 IBM MQ MQI 用戶端連結連線時,所使用的連線字串。 針對 TCP/IP,連線的格式是主機名稱後面接著埠號,例如:

OS2ROG3(1822)
如果未指定埠號,則會使用預設值 1414。
  • 如果指定用戶端通道連線名稱,也必須指定用戶端通道名稱用戶端通道傳輸類型
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略用戶端通道連線名稱
用戶端通道連線名稱 指定當 IBM MQ 服務要求者建立 IBM MQ MQI 用戶端連結連線時,所使用的通道。
  • 如果指定用戶端通道連線名稱,也必須指定用戶端通道名稱用戶端通道傳輸類型
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略用戶端通道名稱
用戶端通道傳輸類型 指定當 IBM MQ 服務要求者建立 IBM MQ MQI 用戶端連結連線時,所要使用的傳輸類型。
  • 如果指定用戶端通道連線名稱,也必須指定用戶端通道名稱用戶端通道傳輸類型
  • 如果執行用戶端應用程式的環境中設定了 MQSERVER 或 MQCHLTAB 其中一個環境變數,則會忽略傳輸類型
有兩個不同的值可供選擇:
  • TCP。 用來指定 TCP/IP 傳輸通訊協定。 這是預設值。
  • LU62. 用來指定 LU6.2 傳輸通訊協定。

「輸出訊息綱目」頁面

下表列出您可以在「 服務定義內容 」對話框的 輸出訊息綱目 頁面中設定的屬性。 其可讓您定義訊息內容的綱目。

屬性 說明
離埠資料類型 指定預期的離埠資料類型
匯入綱目檔 指定要匯入的綱目檔
匯入名稱空間 指定要匯入的名稱空間

「輸出訊息標頭」頁面

下表列出您可以在「 服務定義內容 」對話框的 輸出訊息標頭 頁面中設定的屬性。 輸出頁面會定義服務會在回應中傳給輸入訊息之訊息的詳細資料,以及放置該訊息的目的地。 某些內容只適用於 MQ 連結類型的服務定義。

屬性 說明
CCSID 指定對應於 MQMD 結構中 CodedCharSetId 欄位的「編碼字集 ID」。 如果未指定這個值,服務要求者和服務提供者會使用對應於訊息資料字集的值。
格式 指定訊息資料的格式名稱。 這個內容對應於 MQRFH2 格式欄位,或是 MQMD 格式欄位(如果沒有 MQRFH2 存在)。 該值必須是長度介於 0 到 8 個字元之間的字元字串,且由 A-Z 和 0-9 等字元所組成。

根據 格式欄位中的準則, 格式 可以設為任何值。

使用者內容 指定 IBM MQ 服務訊息中所包含的使用者定義資料。 這些值必須以 RFH2 資料夾元素所允許的格式來指定;利用類似 XML 的語法來編碼一連串的 Triplet,如:

<name dt="datatype">value</name>
dt="datatype" 元素是選用的;如果省略,其會被視為字串,而允許依下列方式指定元素:

<name>value</name>
例如:

<myprop1>value1</myProp1><myprop2>value2</myProp2><myprop3 dt="i4">99</myProp3>
如需容許的資料類型及格式的進一步資訊,請參閱 IBM Documentation中的 NameValueData (MQCHARn) 不建議您併入重視安全性的內容,如:使用者 ID 或密碼。
訊息類型 指定傳送的訊息類型。 這個內容對應於 MQMD 結構中的 MsgType。 可能的值有五個:
  • 未指定,表示未設定值,因此會從訊息交換型樣的值來取得這個值。 這是預設值。
  • 要求,表示該訊息需要回覆。 這個值表示服務使用了「要求回應」的訊息交換型樣。
  • 回覆,表示該訊息是要求的回覆。
  • 報告,表示該訊息是報告。
  • 資料包,表示服務是單向訊息交換,不會有回覆。
如果未指定值,則會根據訊息交換型樣來設定該值。
持續性 指定訊息是否為持續性,且對應於 MQMD 結構中的 持續性 欄位。 可能的值有三個:
  • 非持續性,表示該訊息不是持續性。
  • 持續性,表示該訊息為持續性。
  • 佇列預設值,表示佇列管理程式會從放置訊息之目的地的定義,來決定訊息持續性。 這是預設值。
訊息 ID 指定對應於 MQMD 結構中 MsgId 欄位的「訊息 ID」。

「訊息 ID」容許將某些特殊化 IBM MQ 應用程式說明為服務 (例如: 共用輸入佇列並根據預先定義的 msgId 值選取其預期訊息的應用程式)。 在服務定義中預先定義的 msgIds,可能會在要求回應「訊息交換型樣」傳回要求的 msgId 這類情況下導致問題。

「訊息 ID」可以是字串或二進位值。 二進位值必須是兩個字元的十六進位值(至多 24 對)的字串。

請按一下編輯來開啟對話框,然後輸入文字或位元組的值。

相關性 ID 指定對應於 MQMD 結構中 CorrelId 欄位的「相關性 ID」。 「相關性 ID」可以是字串或二進位值。 二進位值必須是兩個字元的十六進位值(至多 24 對)的字串。

請按一下編輯來開啟對話框,然後輸入文字或位元組的值。

期限 指定訊息期限。 其必須是帶正負號的整數,且是以十分之一秒來測量。 期限的範圍是從 1 到 2 147 483 647。

特殊值 無限制 是用來表示訊息不會到期。 系統會將 -1 值寫入 WSDL 檔。

未指定 的值表示沒有值寫入 WSDL 檔。 這是預設值。

優先順序 指定與訊息關聯的優先順序,並對應於 MQMD 結構中的優先順序欄位。 其必須指定為 0 和 9 之間的整數,其中 0 表示最低優先順序,而 9 表示最高優先順序。

特殊值 無限制 是用來表示會從放置訊息之第一個佇列的定義中,取得訊息優先順序。 系統會將 -1 值寫入 WSDL 檔。

未指定 的值表示沒有值寫入 WSDL 檔。 這是預設值。

編碼 指定訊息資料的數值編碼,其對應於 MQMD 結構中的編碼欄位:
  • 整數可讓您選取「一般」或「反向」
  • 十進位可讓您選取「一般」或「反向」
  • 浮點數可讓您選取「一般」、「反向」或 S390
  • 助記鍵可根據其他選定的值來指定 3 個字元助記鍵。 R = 反向、N = 一般,以及 3 = S390。
  • 指定選項與助記鍵的數值。
報告選項 指定服務提供者如何設定回覆訊息或錯誤訊息中的訊息和相關性 ID。 這個內容對應於 MQMD 結構中的「報告」欄位。 有四個可能的值:
  • 新的訊息 ID,表示這則訊息產生報告或回覆時,會針對該報告或回覆訊息產生新的 msgId
  • 傳遞訊息 ID,表示如果這則訊息產生報告或回覆,這則訊息的 msgId 會複製到報告或回覆訊息的 msgId
  • 複製訊息 ID 至相關性 ID,表示如果這則訊息產生報告或回覆,這則訊息的 msgId 會複製到報告或回覆訊息的 correlId
  • 傳遞相關性 ID,表示如果這則訊息產生報告或回覆,這則訊息的 correlId 會複製到報告或回覆訊息的 correlId