Sun Java System Message Queue 4.2 版本說明

分散式作業事件的 C-API 支援

根據 X/Open 分散式作業事件模型,分散式作業事件的支援仰賴於分散式作業事件管理程式,此管理程式會追蹤並管理一或多個資源管理程式所執行的作業。在 Message Queue 4.2 中,Message Queue C-API 現在支援 XA 介面 (介於分散式作業事件管理程式與 Message Queue 之間,作為 XA 相容資源管理員),可讓在分散式作業事件處理環境 (如 BEA Tuxedo) 中執行的 Message Queue C-API 用戶端,參與分散式作業事件。

此分散式作業事件支援包含實作 XA 介面規格時所使用的下列 C-API 新功能 (以及新參數與錯誤碼):

MQGetXAConnection()
MQCreateXASession()

若 C 用戶端應用程式將用於分散式作業事件環境中,則必須透過使用 MQGetXAConnection() 取得連線,並透過使用 MQCreateXASession() 建立產生與使用訊息的階段作業。管理所有分散式作業事件的啟動、確認與回復時,均透過分散式作業事件管理程式提供的 API。

公共資訊

X/Open XA 介面規格需要下列有關 Message Queue XA 相容資源管理員的公共資訊:

支援下列「名稱/值」對:

表 1–6 Message Queue 資源管理員「名稱/值」對

名稱 

值 

說明 

預設值 

address 

host:port

代理程式之連接埠對映器服務的 host:port。 

localhost:7676

username 

string 

連線至代理程式所使用的使用者名稱 

guest

password 

string 

使用者名稱的密碼 

guest

conntype 

TCP 或 SSL 

代理程式連線的協定類型 

TCP

trustedhost 

true/false 

是否信任代理程式主機 (僅適用於 conntype=SSL) 

true

certdbpath 

string 

包含 NSS 憑證與金鑰資料庫檔案之目錄的完整路徑 

未設定 

clientid 

string 

僅 JMS 長期訂閱才需要 

未設定 

reconnects 

integer 

對代理程式的重新連線嘗試次數 (0 表示不重新連線) 

0

程式設計範例

若要設計使用分散式作業事件的應用程式,可以建立在作業事件管理程式環境中執行的伺服器端服務,以及呼叫作業事件管理程式 API 的用戶端程式碼。Message Queue 4.2 根據 Tuxedo 作業事件管理程式提供程式設計範例。這些範例在每個平台上皆位於 ./C/tuxedo 目錄的程式範例目錄中。

此目錄包含 README 檔案,說明如何設定 Tuxedo 以使用 Message Queue 資源管理員,以及如何在 Tuxedo 環境中建立下列程式範例:

程式範例 

說明 

jmsserver.c

使用 Message Queue 實作傳送與接收訊息的 Tuxedo 服務。 

jmsclient_sender.c

jmsserver.c 程式中使用訊息產生服務的 Tuxedo 用戶端。

jmsclient_receiver.c

jmsserver.c 程式中使用訊息接收服務的 Tuxedo 用戶端。

async_jmsserver.c

使用 Message Queue 實作非同步使用訊息的 Tuxedo 服務。 

jmsclient_async_receiver.c

async_jmsserver.c 程式中使用非同步訊息使用服務的 Tuxedo 用戶端。