Multiplatforms 上的廣域工作單元
當您也需要包含屬於其他資源管理程式之資源的更新項目時,請使用廣域工作單元。
在這裡,協調可以是佇列管理程式的內部或外部:
內部同步點協調
IBM® MQ for IBM i 或 IBM MQ for z/OS®不支援廣域工作單元的佇列管理程式協調。 在 IBM MQ MQI client 環境中不支援。
在這裡, IBM MQ 執行協調。 若要啟動廣域工作單元,應用程式會發出 MQBEGIN 呼叫。
作為 MQBEGIN 呼叫的輸入,您必須提供 MQCONN 或 MQCONNX 呼叫傳回的連線控點 (Hconn)。 此控點代表與 IBM MQ 佇列管理程式的連線。
應用程式會指定適當的同步點選項來發出 MQGET、MQPUT 或 MQPUT1 要求。 這表示您可以使用 MQBEGIN 來起始廣域工作單元,以更新本端資源及/或屬於其他資源管理程式的資源。 對屬於其他資源管理程式的資源所做的更新,是利用該資源管理程式的 API 來進行。 不過,您無法使用 MQI 來更新屬於其他佇列管理程式的佇列。 在啟動進一步工作單元 (區域或廣域) 之前,請先發出 MQCMIT 或 MQBACK。
使用 MQCMIT 來確定廣域工作單元; 這會對工作單元中涉及的所有資源管理程式起始兩段式確定。 使用兩段式確定處理程序,首先會要求資源管理程式 (例如,符合 XA 標準的資料庫管理程式,例如 Db2®、 Oracle及 Sybase) 準備確定。 只有在所有準備就緒的情況下,才會要求他們確定。 如果有任何資源管理程式發出無法確定的信號,則會要求每一個都取消。 或者,您可以使用 MQBACK 來回復所有資源管理程式的更新項目。
當廣域工作單元仍在作用中時,如果應用程式中斷連接 (MQDISC) ,則會確定工作單元。 不過,如果應用程式在未中斷連線的情況下終止,則會回復工作單元,因為應用程式會被視為異常終止。
MQBEGIN 的輸出是完成碼和原因碼。
- 沒有參與的資源管理程式 (亦即,沒有使用佇列管理程式來配置任何資源管理程式)
- 一或多個資源管理程式無法使用。
在這些情況下,工作單元必須只包含工作單元啟動時可用的那些資源管理程式的更新項目。
如果其中一個資源管理程式無法確定其更新項目,則會指示所有資源管理程式回復其更新項目,且 MQCMIT 會完成並產生警告。 在不尋常的情況下 (通常是操作員介入) ,如果部分資源管理程式確定其更新項目,但其他資源管理程式回復它們,則 MQCMIT 呼叫可能會失敗; 工作被視為已完成,並產生 混合 結果。 在佇列管理程式的錯誤日誌中診斷此類事件,以便可以採取補救動作。
如果所有涉及的資源管理程式都確定其更新項目,則廣域工作單元的 MQCMIT 會成功。
如需 MQBEGIN 呼叫的說明,請參閱 MQBEGIN。
外部同步點協調
當選取 IBM MQ 以外的同步點協調程式時,即會發生此情況; 例如 CICS®、Encina 或 Tuxedo。
在此狀況下, IBM MQ for AIX®, Linux®, and Windows 系統會向同步點協調程式登錄他們對工作單元結果的興趣,以便他們可以根據需要確定或回復任何未確定的取得或放置作業。 外部同步點協調程式決定是否提供一或兩階段確定通訊協定。
當您使用外部協調程式時,無法發出 MQCMIT、MQBACK 及 MQBEGIN。 呼叫這些函數失敗,原因碼為 MQRC_ENVIRONMENT_ERROR。
外部協調工作單元的啟動方式取決於同步點協調程式所提供的程式設計介面。 可能需要明確呼叫。 如果需要明確呼叫,且您在工作單元未啟動時發出指定 MQPMO_SYNCPOINT 選項的 MQPUT 呼叫,則會傳回完成碼 MQRC_SYNCPOINT_NOT_AVAILABLE。
工作單元的範圍由同步點協調程式決定。 應用程式與佇列管理程式之間的連線狀態會影響應用程式所發出 MQI 呼叫的成功或失敗,而不是工作單元的狀態。 例如,應用程式可以在作用中工作單元期間中斷連線並重新連接至佇列管理程式,並在相同工作單元內進一步執行 MQGET 及 MQPUT 作業。 這稱為擱置斷線。
不論您是否選擇使用 CICS的 XA 功能,您都可以在 CICS 程式中使用 IBM MQ API 呼叫。 如果您不使用 XA ,則不會在 CICS 基本工作單元內管理與佇列之間的訊息放置及取得。 選擇此方法的一個原因是工作單元的整體一致性對您而言並不重要。
如果工作單元的完整性對您很重要,則您必須使用 XA。 當您使用 XA 時, CICS 會使用兩階段確定通訊協定來確保工作單元內的所有資源一起更新。
如需設定交易式支援的相關資訊,請參閱 交易式支援實務範例,以及 TXSeries® CICS 文件,例如 TXSeries for Multiplatforms CICS Administration Guide for Open Systems。