Sun Java System Message Queue 3.7 UR1 技術摘要

作業事件

作業事件是將一或多個訊息的產生和 (或) 使用動作,集合為不可分割單位的方法。先前所討論的用戶端與代理程式確認,亦屬於作業事件。在此情況下,用戶端執行階段與代理程式確認會隱含地在作業事件層級上執行。確定作業事件時,代理程式回應會被自動傳送。

階段作業可配置成作業事件,而 JMS API 則提供用於啟動、確認或回復作業事件的方法。

在作業事件中產生或使用訊息時,訊息服務會追蹤各種傳送和接收過程,而且只有在 JMS 用戶端發出確定作業事件的呼叫時,才完成這些作業。如果作業事件中特定的傳送或接收作業失敗,則會出現異常。用戶端程式碼可以透過忽略異常、重試作業或回復整個作業事件來處理異常。在作業事件確定後,將完成所有的作業。在作業事件回復後,將取消所有成功的作業。

作業事件的範圍一律為單一階段作業。亦即,可以將單一階段作業的環境中執行的一個或多個產生器或用戶作業歸類為一個作業事件。由於作業事件僅能是單一階段作業,因此不能有同時包含訊息生產和訊息使用的端對端作業事件。

JMS 規格也支援分散式作業事件。也就是說,訊息的產生和使用可成為較大分散式作業事件的一部分,其中包括涉及資料庫系統等其他資源管理程式的作業。這時必須有作業事件管理程式 (如 Java Systems Application Server 所提供),才能支援分散式作業事件。

在分散式作業事件中,分散式作業事件管理程式使用 Java Transaction API (JTA)、XA 資源 API 規格中定義的兩階段確定協定,追蹤和管理多個資源管理程式 (如訊息服務和資料庫管理員) 執行的作業。在 Java 中,JTA 規格描述了資源管理程式和分散式作業事件管理程式之間的互動。

支援分散式作業事件表示,訊息傳送用戶端可以透過 JTA 定義的 XAResource 介面參與分散式作業事件。此介面定義了實施兩階段確定的許多方法。當用戶端進行 API 呼叫時,JMS 訊息服務僅與 Java Transaction Service (JTS) 提供的分散式作業事件管理程式協作,來追蹤分散式作業事件中的各種傳送和接收作業以及作業事件狀態,並完成訊息傳送作業。處理本機作業事件時,用戶端可以藉由忽略異常、重試作業或回復整個分散式作業事件來處理異常。


備註 –

Message Queue 只有在 Java Enterprise Edition 平台中被當成 JMS 提供者使用時,才支援分散式作業事件。如需有關如何使用分散式作業事件的其他資訊,請參閱應用程式伺服器提供者所提供的文件。